math.h: make __FLOAT_BITS and __DOUBLE_BITS C89
authorSzabolcs Nagy <nsz@port70.net>
Sun, 9 Mar 2014 18:29:41 +0000 (19:29 +0100)
committerSzabolcs Nagy <nsz@port70.net>
Sun, 9 Mar 2014 18:29:41 +0000 (19:29 +0100)
Remove non-constant aggregate initializer. (Still using long long, but
that is supported by ancient compilers without __extension__ anyway).

include/math.h

index bbee62e265831992c349ea8da90a28e6b3b406cd..6ac91da24f94365aa06bd904fb35036d1af21ac4 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;
 }