------- Comment #1 from christophe at saout dot de 2006-11-07 11:23 ------- The function "test" (even compiled with -O0, on i386 BTW) assumes that the condition can never occur, as the complete if condition is completely optimized away and the function always returns "1".
#include <stdlib.h> int test(int x) { if (((unsigned int)x >> 3) & 0x08000000) return 0; return 1; } int main(void) { if (test(-1)) abort(); return 0; } -- christophe at saout dot de changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |christophe at saout dot de http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29726