------- Comment #7 from rguenth at gcc dot gnu dot org 2007-03-10 22:04 ------- extern void abort(void); void foo (int e1) { if (e1 < 0) { e1 = -e1; if (e1 >>= 4) { if (e1 >= 1 << 5) abort(); } } }
int main() { foo(-(1<<5)); return 0; } -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=31115