34 lines
1.1 KiB
C
34 lines
1.1 KiB
C
/* { dg-do compile } */
|
|
/* { dg-options "-Wimplicit-fallthrough=4" } */
|
|
|
|
void bar (int);
|
|
|
|
void
|
|
foo (int i)
|
|
{
|
|
switch (i)
|
|
{
|
|
case 1: /* { dg-warning "this statement may \[fla\]* through" "" { target *-*-* } .+1 } */
|
|
bar (1);
|
|
case 2: /* { dg-warning "this statement may \[fla\]* through" "" { target *-*-* } .+1 } */
|
|
bar (2);
|
|
/* Some comment. */
|
|
case 3: /* { dg-warning "this statement may \[fla\]* through" "" { target *-*-* } .+1 } */
|
|
bar (3);
|
|
/* Here we really do want to fALl tHRoUgh and we mean it! */
|
|
case 4: /* { dg-warning "this statement may \[fla\]* through" "" { target *-*-* } .+1 } */
|
|
bar (4);
|
|
/* Intentionally fall through. */
|
|
case 5: /* { dg-bogus "this statement may \[fla\]* through" "" { target *-*-* } .+1 } */
|
|
bar (5);
|
|
/* FALLTHROUGH */
|
|
case 6: /* { dg-bogus "this statement may \[fla\]* through" "" { target *-*-* } .+1 } */
|
|
bar (6);
|
|
__attribute__((fallthrough));
|
|
case 7: /* { dg-bogus "this statement may \[fla\]* through" "" { target *-*-* } .+1 } */
|
|
bar (7);
|
|
default:
|
|
break;
|
|
}
|
|
}
|