/* { dg-do compile } */ /* { dg-options "-O3 -fdump-tree-optimized" } */ static char b = 53; static unsigned c; void foo(void); static int(a)(int d, int e) { return (d ^ e) < 0 ? d : d - e; } int main() { { int f = 2; c = b; b = 0; for (; c <= 6;) { if (f >= 2) f = 0; for (; f >= -9; f = a(f, 8)) if (!(f >= -8 && f <= 0)) foo(); } } } /* { dg-final { scan-tree-dump-not "foo" "optimized" } } */