/* { 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; } }