------- Comment #4 from guillaume dot melquiond at ens-lyon dot fr 2007-01-04 11:25 ------- Just for the sake of completeness. Wrong code is also generated when addition and multiplication are mixed, because of distributivity:
int f(int a) { if (a > 0x7FFFFFF0) return 0; int b = (a - 20) * 2; return b > 0x7FFFFFF0; } -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=30364