1 /* PR middle-end/55094 */
2 /* { dg-do compile } */
3 /* { dg-options "-fcompare-debug -Os" } */
4 /* { dg-additional-options "-fomit-frame-pointer -fno-asynchronous-unwind-tables -mpreferred-stack-boundary=2" { target { { i?86-*-* x86_64-*-* } && ia32 } } } */
5 
6 extern int fn (long);
7 int v;
8 
9 int
foo(int x,long * y)10 foo (int x, long *y)
11 {
12   if (x)
13     {
14       fn (y[0]);
15       __builtin_trap ();
16     }
17   __builtin_trap ();
18 }
19 
20 int
bar(int x,long * y)21 bar (int x, long *y)
22 {
23   if (x)
24     {
25       fn (y[0]);
26       v = 1;
27       __builtin_unreachable ();
28     }
29   v = 1;
30   __builtin_unreachable ();
31 }
32 
33 int
baz(int x,long * y)34 baz (int x, long *y)
35 {
36   if (x)
37     {
38       fn (y[0]);
39       v = 1;
40       __builtin_unreachable ();
41     }
42   v = 1;
43   int w = 1;
44   __builtin_unreachable ();
45 }
46