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