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; }
Confirmed, testcase which shows this is also a rejects valid: int f[.0e200000000 == 0?1:-1];
Subject: Bug 21781 Author: sayle Date: Thu Mar 16 16:34:05 2006 New Revision: 112136 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=112136 Log: PR middle-end/21781 * real.c (real_from_string): If the mantissa is zero, don't bother parsing the exponent as the result should always be zero. * gcc.dg/real-const-1.c: New test case. Added: trunk/gcc/testsuite/gcc.dg/real-const-1.c Modified: trunk/gcc/ChangeLog trunk/gcc/real.c trunk/gcc/testsuite/ChangeLog
Fixed.