102 lines
1.1 KiB
C
102 lines
1.1 KiB
C
|
/* PR c/7652 */
|
||
|
/* { dg-do compile } */
|
||
|
/* { dg-options "-Wimplicit-fallthrough" } */
|
||
|
|
||
|
extern void grace (int);
|
||
|
|
||
|
void
|
||
|
fn1 (int i)
|
||
|
{
|
||
|
switch (i)
|
||
|
case 1:
|
||
|
if (i == 5)
|
||
|
grace (0);
|
||
|
else
|
||
|
goto done;
|
||
|
done:;
|
||
|
}
|
||
|
|
||
|
void
|
||
|
fn2 (int i)
|
||
|
{
|
||
|
switch (i)
|
||
|
{
|
||
|
case 1:
|
||
|
if (i == 5) /* { dg-warning "statement may fall through" } */
|
||
|
grace (0);
|
||
|
else
|
||
|
goto done;
|
||
|
case 2:
|
||
|
--i;
|
||
|
}
|
||
|
done:;
|
||
|
}
|
||
|
|
||
|
void
|
||
|
fn3 (int i)
|
||
|
{
|
||
|
switch (i)
|
||
|
{
|
||
|
case 1:
|
||
|
if (i == 5)
|
||
|
goto done;
|
||
|
else
|
||
|
goto done;
|
||
|
}
|
||
|
done:;
|
||
|
}
|
||
|
|
||
|
void
|
||
|
fn4 (int i)
|
||
|
{
|
||
|
switch (i)
|
||
|
{
|
||
|
case 1:
|
||
|
if (i == 5)
|
||
|
{
|
||
|
grace (1);
|
||
|
goto done;
|
||
|
}
|
||
|
else
|
||
|
goto done;
|
||
|
case 2:;
|
||
|
}
|
||
|
done:;
|
||
|
}
|
||
|
|
||
|
void
|
||
|
fn5 (int i)
|
||
|
{
|
||
|
switch (i)
|
||
|
{
|
||
|
case 1:
|
||
|
if (i == 5)
|
||
|
{
|
||
|
grace (1);
|
||
|
goto done;
|
||
|
}
|
||
|
else
|
||
|
grace (4); /* { dg-warning "statement may fall through" } */
|
||
|
case 2:
|
||
|
grace (9);
|
||
|
}
|
||
|
done:;
|
||
|
}
|
||
|
|
||
|
void
|
||
|
fn6 (int i)
|
||
|
{
|
||
|
switch (i)
|
||
|
{
|
||
|
case 1:
|
||
|
if (i == 5) /* { dg-warning "statement may fall through" } */
|
||
|
{
|
||
|
grace (1);
|
||
|
goto done;
|
||
|
}
|
||
|
case 2:
|
||
|
grace (8);
|
||
|
}
|
||
|
done:;
|
||
|
}
|