1 /* PR tree-optimization/95857 */
2 /* { dg-do compile } */
3 /* { dg-options "-O2" } */
4 /* { dg-require-effective-target label_values } */
5
6 struct E { int e; };
7 int bar (void), baz (void);
8 void qux (void *);
9
10 void
11 foo (int x)
12 {
13 struct E a = { 0 };
14 struct E i = { 0 };
15 qux (&&lab2);
16 if (baz ())
17 i.e = 1;
18 else
19 a.e = -2;
20 switch (a.e)
21 {
22 case -2:
23 lab1:
24 switch (i.e)
25 {
26 case -3:
27 case 2:
28 if (i.e-- != 2)
29 __builtin_unreachable ();
30 lab2:
31 baz ();
32 goto lab1;
33 case 0:
34 bar ();
35 }
36 break;
37 }
38 }