fix broken cancellation on x32 due to incorrect saved-PC offset
[musl] / include / math.h
index bbee62e..6ac91da 100644 (file)
@@ -42,12 +42,14 @@ int __fpclassifyl(long double);
 
 static __inline unsigned __FLOAT_BITS(float __f)
 {
-       union {float __f; unsigned __i;} __u = {__f};
+       union {float __f; unsigned __i;} __u;
+       __u.__f = __f;
        return __u.__i;
 }
 static __inline unsigned long long __DOUBLE_BITS(double __f)
 {
-       union {double __f; unsigned long long __i;} __u = {__f};
+       union {double __f; unsigned long long __i;} __u;
+       __u.__f = __f;
        return __u.__i;
 }