From 9b0fcb441a44456c7b071c7cdaf90403f81ec05a Mon Sep 17 00:00:00 2001 From: Szabolcs Nagy Date: Fri, 6 Sep 2013 18:35:55 +0000 Subject: math: remove STRICT_ASSIGN macro gcc did not always drop excess precision according to c99 at assignments before version 4.5 even if -std=c99 was requested which caused badly broken mathematical functions on i386 when FLT_EVAL_METHOD!=0 but STRICT_ASSIGN was not used consistently and it is worked around for old compilers with -ffloat-store so it is no longer needed the new convention is to get the compiler respect c99 semantics and when excess precision is not harmful use float_t or double_t or to specialize code using FLT_EVAL_METHOD --- src/math/expm1f.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/math/expm1f.c') diff --git a/src/math/expm1f.c b/src/math/expm1f.c index 698ab45f..297e0b44 100644 --- a/src/math/expm1f.c +++ b/src/math/expm1f.c @@ -65,7 +65,7 @@ float expm1f(float x) hi = x - t*ln2_hi; /* t*ln2_hi is exact here */ lo = t*ln2_lo; } - STRICT_ASSIGN(float, x, hi - lo); + x = hi-lo; c = (hi-x)-lo; } else if (hx < 0x33000000) { /* when |x|<2**-25, return x */ if (hx < 0x00800000) -- cgit v1.2.1