| /* PR middle-end/55094 */ |
| /* { dg-do compile } */ |
| /* { dg-options "-fcompare-debug -Os" } */ |
| /* { dg-additional-options "-fomit-frame-pointer -fno-asynchronous-unwind-tables -mpreferred-stack-boundary=2" { target { { i?86-*-* x86_64-*-* } && ia32 } } } */ |
| |
| extern int fn (long); |
| int v; |
| |
| int |
| foo (int x, long *y) |
| { |
| if (x) |
| { |
| fn (y[0]); |
| __builtin_trap (); |
| } |
| __builtin_trap (); |
| } |
| |
| int |
| bar (int x, long *y) |
| { |
| if (x) |
| { |
| fn (y[0]); |
| v = 1; |
| __builtin_unreachable (); |
| } |
| v = 1; |
| __builtin_unreachable (); |
| } |
| |
| int |
| baz (int x, long *y) |
| { |
| if (x) |
| { |
| fn (y[0]); |
| v = 1; |
| __builtin_unreachable (); |
| } |
| v = 1; |
| int w = 1; |
| __builtin_unreachable (); |
| } |