/* { dg-do compile } */ /* { dg-options "-O2 -fdump-tree-ccp2 -fdump-tree-optimized -fno-ipa-vrp" } */ void foo(void); static int a = 1, c; static int *b = &a; static int **d = &b; static int ***e = &d; void __assert_fail() __attribute__((__noreturn__)); static int f() { if (a) return a; for (; c;) *e = 0; if (b) __assert_fail(); return 6; } int main() { if (f()) { *d = 0; if (b == 0) ; else { __builtin_unreachable(); __assert_fail(); } } if (b == 0) ; else foo(); ; } /* { dg-final { scan-tree-dump-times "Folding predicate" 2 "ccp2" } } */ /* { dg-final { scan-tree-dump-not "foo" "optimized" } } */