make the definition of _Complex_I explicitly complex
authorRich Felker <dalias@aerifal.cx>
Wed, 17 Dec 2014 21:47:34 +0000 (16:47 -0500)
committerRich Felker <dalias@aerifal.cx>
Wed, 17 Dec 2014 21:47:34 +0000 (16:47 -0500)
it's unclear whether compilers which provide pure imaginary types
might produce a pure imaginary expression for 1.0fi. using 0.0f+1.0fi
ensures that the result is explicitly complex and makes this obvious
to human readers too.

include/complex.h

index bdddf87bbd312e1a901a7c529c4fa42ccbd02e1a..4d21728ea919de97592226ae7b3206016eef2974 100644 (file)
@@ -7,9 +7,9 @@ extern "C" {
 
 #define complex _Complex
 #ifdef __GNUC__
-#define _Complex_I (__extension__ 1.0fi)
+#define _Complex_I (__extension__ (0.0f+1.0fi))
 #else
-#define _Complex_I 1.0fi
+#define _Complex_I (0.0f+1.0fi)
 #endif
 #define I _Complex_I