The following snippet, if compiled with -Wall, complains about a missing return statement, indicating GCC is erroneously folding the comparison to false.
int foo(void) { if (.0e200000000 == 0 ) return 1; } -- Summary: real.c incorrectly values zero with a large exponent Product: gcc Version: 4.1.0 Status: UNCONFIRMED Severity: minor Priority: P3 Component: c AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: neil at gcc dot gnu dot org CC: gcc-bugs at gcc dot gnu dot org http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21781