[Bug c/92875] GCC ignores the floating-point 'f' suffix in C11 mode
anders at wahrzeichnen dot de
gcc-bugzilla@gcc.gnu.org
Mon Dec 9 22:40:00 GMT 2019
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92875
--- Comment #2 from anders at wahrzeichnen dot de <anders at wahrzeichnen dot de> ---
No, -ffloat-store does not help. And this has little if anything to do with
323, imho.
The asm generated for f3 is instructive: There, GCC wants to load a double
constant 0x3fb999999999999a into the 387 FPU, which is
0.10000000000000000555... The single-precision constant t passed as argument to
f0...f3 is 0x3dcccccd, which is 0.10000000149... So, it's no wonder that f3
returns 1; after all 0.10000000149 > 0.10000000000000000555.
The questions are: Why does the code generated for f2 try to load a double
constant even if it is explicitly suffixed 'f'? Why should casting to (float)
help? Why does std=c11 or c18 change the game?
More information about the Gcc-bugs
mailing list