| /* Check that __builtin_unreachable() is a no-return function thus |
| causing the dead call to foo() to be removed. The comparison is |
| dead too, and should be removed. */ |
| /* { dg-do compile } */ |
| /* { dg-options "-O2 -fdump-tree-optimized -fdump-rtl-cse1" } */ |
| void foo (void); |
| |
| int |
| f (int i) |
| { |
| if (i > 1) |
| __builtin_unreachable(); |
| if (i > 1) |
| foo (); |
| return 1; |
| } |
| /* { dg-final { scan-tree-dump-not "foo" "optimized" } } */ |
| /* { dg-final { scan-rtl-dump-not "\\(if_then_else" "cse1" } } */ |
| /* { dg-final { cleanup-tree-dump "optimized" } } */ |
| /* { dg-final { cleanup-rtl-dump "cse1" } } */ |