/* PR tree-optimization/55236 */ /* { dg-do run } */ /* { dg-options "-O2 -fwrapv" } */ extern void abort (); __attribute__((noinline, noclone)) void foo (int i) { if (i > 0) abort (); i = -i; if (i < 0) return; abort (); } __attribute__((noinline, noclone)) void bar (int i) { if (i > 0 || (-i) >= 0) abort (); } int main () { foo (-__INT_MAX__ - 1); bar (-__INT_MAX__ - 1); return 0; }