blob: afd6f46ea385316e131be2efac93b899eed9703a [file] [log] [blame]
/* PR tree-optimization/95857 */
/* { dg-do compile } */
/* { dg-options "-O2" } */
/* { dg-require-effective-target label_values } */
struct E { int e; };
int bar (void), baz (void);
void qux (void *);
void
foo (int x)
{
struct E a = { 0 };
struct E i = { 0 };
qux (&&lab2);
if (baz ())
i.e = 1;
else
a.e = -2;
switch (a.e)
{
case -2:
lab1:
switch (i.e)
{
case -3:
case 2:
if (i.e-- != 2)
__builtin_unreachable ();
lab2:
baz ();
goto lab1;
case 0:
bar ();
}
break;
}
}