------- Comment #1 from jakub at gcc dot gnu dot org 2010-07-06 09:25 ------- Shorter testcase:
extern void abort (void); static char foo (char si1, char si2) { return si1 * si2; } int a = 0x105F61CA; int main (void) { int b = 0x0332F5C8; if (foo (b, a) > 0) abort (); return 0; } Works with -O2 -fwrapv. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44828