c++ seems to want some casts in the float representation-access macros
authorRich Felker <dalias@aerifal.cx>
Sun, 18 Mar 2012 01:40:10 +0000 (21:40 -0400)
committerRich Felker <dalias@aerifal.cx>
Sun, 18 Mar 2012 01:40:10 +0000 (21:40 -0400)
include/math.h

index 9c06c96..ec4afa7 100644 (file)
@@ -41,8 +41,8 @@ int __fpclassify(double);
 int __fpclassifyf(float);
 int __fpclassifyl(long double);
 
 int __fpclassifyf(float);
 int __fpclassifyl(long double);
 
-#define __FLOAT_BITS(f) (((union { float __f; __uint32_t __i; }){ (f) }).__i)
-#define __DOUBLE_BITS(f) (((union { double __f; __uint64_t __i; }){ (f) }).__i)
+#define __FLOAT_BITS(f) (((union { float __f; __uint32_t __i; }){ (float)(f) }).__i)
+#define __DOUBLE_BITS(f) (((union { double __f; __uint64_t __i; }){ (double)(f) }).__i)
 
 #define fpclassify(x) ( \
        sizeof(x) == sizeof(float) ? __fpclassifyf(x) : \
 
 #define fpclassify(x) ( \
        sizeof(x) == sizeof(float) ? __fpclassifyf(x) : \