blob: 01a43883acc4b00340e44a8de7f50a5401c4bc02 [file] [log] [blame]
/* { dg-do compile } */
/* { dg-options "-Wimplicit-fallthrough" } */
void bar (int);
void
foo (int i)
{
switch (i)
{
case 1:
bar (1); /* { dg-bogus "this statement may \[laf]* through" } */
/* FALLTHROUGH */
case 2:
bar (2);
break;
case 3:
bar (3); /* { dg-bogus "this statement may \[laf]* through" } */
/* FALLS THRU. */
/* Some other comment. */
case 4:
bar (4);
break;
case 5:
bar (5); /* { dg-bogus "this statement may \[laf]* through" } */
/* Else Fall-Thru! */
case 6:
bar (6);
break;
case 7:
bar (7); /* { dg-bogus "this statement may \[laf]* through" } */
/* Some comment. */
/* ... fallthrough ... */
/* Some other comment. */
/* And yet another. */
case 8:
bar (8);
break;
case 9:
bar (9); /* { dg-bogus "this statement may \[laf]* through" } */
/* Intentional Fallthru */
case 10:
bar (10);
break;
case 11:
bar (11); /* { dg-bogus "this statement may \[laf]* through" } */
/* intentionally fall through */
case 12:
bar (12);
break;
case 13:
bar (13); /* { dg-bogus "this statement may \[laf]* through" } */
/* Falls Through - for reasons known only to the author. */
case 14:
bar (14);
break;
case 15:
bar (15); /* { dg-bogus "this statement may \[laf]* through" } */
/*-fallthrough*/
case 16:
bar (16);
break;
case 17:
bar (17); /* { dg-bogus "this statement may \[laf]* through" } */
/*@fallthrough@*/
case 18:
bar (18);
break;
case 19:
bar (19); /* { dg-bogus "this statement may \[laf]* through" } */
/*lint -fallthrough*/
case 20:
bar (20);
break;
case 21:
bar (21); /* { dg-bogus "this statement may \[laf]* through" } */
/*lint -fallthrough */
case 22:
bar (22);
break;
case 23:
bar (23); /* { dg-bogus "this statement may \[laf]* through" } */
/*fallthru*/
case 24:
bar (24);
break;
case 25:
bar (25); /* { dg-bogus "this statement may \[laf]* through" } */
/*Else fallthru*/
case 26:
bar (26);
break;
case 27:
bar (27); /* { dg-bogus "this statement may \[laf]* through" } */
/*Intentional fallthru*/
case 28:
bar (28);
break;
case 29:
bar (29); /* { dg-bogus "this statement may \[laf]* through" } */
/*Intentionally fallthru*/
case 30:
bar (30);
break;
case 31:
bar (31); /* { dg-bogus "this statement may \[laf]* through" } */
/*Falls thru*/
case 32:
bar (32);
break;
case 33:
bar (33); /* { dg-bogus "this statement may \[laf]* through" } */
/*Fall-through*/
case 34:
bar (34);
break;
case 35:
bar (35); /* { dg-bogus "this statement may \[laf]* through" } */
/* Else, fall-through. */
case 36:
bar (36);
break;
default:
break;
}
switch (i)
{
case 1:
bar (1); /* { dg-bogus "this statement may \[laf]* through" } */
// FALLTHROUGH
case 2:
bar (2);
break;
case 3:
bar (3); /* { dg-bogus "this statement may \[laf]* through" } */
// FALLS THRU.
// Some other comment.
case 4:
bar (4);
break;
case 5:
bar (5); /* { dg-bogus "this statement may \[laf]* through" } */
// Else Fall-Thru!
case 6:
bar (6);
break;
case 7:
bar (7); /* { dg-bogus "this statement may \[laf]* through" } */
// Some comment.
// ... fallthrough ...
// Some other comment.
// And yet another.
case 8:
bar (8);
break;
case 9:
bar (9); /* { dg-bogus "this statement may \[laf]* through" } */
// Intentional Fallthru
case 10:
bar (10);
break;
case 11:
bar (11); /* { dg-bogus "this statement may \[laf]* through" } */
// intentionally fall through
case 12:
bar (12);
break;
case 13:
bar (13); /* { dg-bogus "this statement may \[laf]* through" } */
// Falls Through - for reasons known only to the author.
case 14:
bar (14);
break;
case 15:
bar (15); /* { dg-bogus "this statement may \[laf]* through" } */
//-fallthrough
case 16:
bar (16);
break;
case 17:
bar (17); /* { dg-bogus "this statement may \[laf]* through" } */
//@fallthrough@
case 18:
bar (18);
break;
case 19:
bar (19); /* { dg-bogus "this statement may \[laf]* through" } */
//lint -fallthrough
case 20:
bar (20);
break;
case 21:
bar (21); /* { dg-bogus "this statement may \[laf]* through" } */
//lint -fallthrough
case 22:
bar (22);
break;
case 23:
bar (23); /* { dg-bogus "this statement may \[laf]* through" } */
//fallthru
case 24:
bar (24);
break;
case 25:
bar (25); /* { dg-bogus "this statement may \[laf]* through" } */
//Else fallthru
case 26:
bar (26);
break;
case 27:
bar (27); /* { dg-bogus "this statement may \[laf]* through" } */
//Intentional fallthru
case 28:
bar (28);
break;
case 29:
bar (29); /* { dg-bogus "this statement may \[laf]* through" } */
//Intentionally fallthru
case 30:
bar (30);
break;
case 31:
bar (31); /* { dg-bogus "this statement may \[laf]* through" } */
//Falls thru
case 32:
bar (32);
break;
case 33:
bar (33); /* { dg-bogus "this statement may \[laf]* through" } */
//Fall-through
case 34:
bar (34);
break;
case 35:
bar (35); /* { dg-bogus "this statement may \[laf]* through" } */
// Else, fall-through
case 36:
bar (36);
break;
default:
break;
}
}