https://gcc.gnu.org/bugzilla/show_bug.cgi?id=57245
--- Comment #3 from nsz at gcc dot gnu.org --- note that this may cause the omission of underflow, overflow and inexact exceptions too (so in principle it's an invalid transformation even without -frounding-math but with -ftrapping-math ): float x,y; void f(void) { x = 0x1p-1000; // truncated to 0 y = 0x1p1000; // truncated to inf }