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
This commit is contained in:
@@ -155,15 +155,4 @@ long double __tanl(long double, long double, int);
|
||||
long double __polevll(long double, const long double *, int);
|
||||
long double __p1evll(long double, const long double *, int);
|
||||
|
||||
#if 0
|
||||
/* Attempt to get strict C99 semantics for assignment with non-C99 compilers. */
|
||||
#define STRICT_ASSIGN(type, lval, rval) do { \
|
||||
volatile type __v = (rval); \
|
||||
(lval) = __v; \
|
||||
} while (0)
|
||||
#else
|
||||
/* Should work with -fexcess-precision=standard (>=gcc-4.5) or -ffloat-store */
|
||||
#define STRICT_ASSIGN(type, lval, rval) ((lval) = (type)(rval))
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user