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/__rem_pio2.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
(limited to 'src/math/__rem_pio2.c')
diff --git a/src/math/__rem_pio2.c b/src/math/__rem_pio2.c
index 0ef57fb5..9305be5f 100644
--- a/src/math/__rem_pio2.c
+++ b/src/math/__rem_pio2.c
@@ -112,7 +112,7 @@ int __rem_pio2(double x, double *y)
uint32_t high;
medium:
/* Use a specialized rint() to get fn. Assume round-to-nearest. */
- STRICT_ASSIGN(double, fn, x*invpio2 + 0x1.8p52);
+ fn = x*invpio2 + 0x1.8p52;
fn = fn - 0x1.8p52;
// FIXME
#ifdef HAVE_EFFICIENT_IRINT
--
cgit v1.2.1