Ver código fonte

math: turn off the STRICT_ASSIGN workaround by default

the volatile hack in STRICT_ASSIGN is only needed if
assignment is not respected and excess precision is kept.
gcc -fexcess-precision=standard and -ffloat-store both
respect assignment and musl use these flags by default.
i kept the macro for now so the workaround may be used
for bad compilers in the future.
Szabolcs Nagy 12 anos atrás
pai
commit
6d3f1a39c1
1 arquivos alterados com 3 adições e 5 exclusões
  1. 3 5
      src/internal/libm.h

+ 3 - 5
src/internal/libm.h

@@ -157,16 +157,14 @@ 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);
 
-// FIXME: not needed when -fexcess-precision=standard is supported (>=gcc4.5)
-/*
- * Attempt to get strict C99 semantics for assignment with non-C99 compilers.
- */
-#if 1
+#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