32 lines
642 B
C
32 lines
642 B
C
/* { dg-do link } */
|
|
/* { dg-options "-O2" } */
|
|
|
|
/* PR middle-end/18628 exposed a problem in which cse folded a load
|
|
from a jump table into the label that was the target of the branch.
|
|
Unfortunately, the indirect jump was moved to a different basic
|
|
block, and the LABEL_REF copied to the register wasn't enough to
|
|
keep the cfg from optimizing the otherwise-unused label away. So
|
|
we ended up with a dangling reference to the label. */
|
|
|
|
int i;
|
|
|
|
int main()
|
|
{
|
|
for (;;)
|
|
{
|
|
switch (i)
|
|
{
|
|
case 0:
|
|
case 1:
|
|
return 1;
|
|
|
|
case 2:
|
|
case 3:
|
|
return 0;
|
|
|
|
case 5:
|
|
--i;
|
|
}
|
|
}
|
|
}
|