/* { dg-do compile } */
/* { dg-options "-Wimplicit-fallthrough=1" } */

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-bogus "this statement may \[fla\]* through" "" { target *-*-* } .+1 } */
      bar (2);
      /* Some comment.  */
    case 3:			/* { dg-bogus "this statement may \[fla\]* through" "" { target *-*-* } .+1 } */
      bar (3);
      /* Here we really do want to fALl   tHRoUgh and we mean it!  */
    case 4:			/* { dg-bogus "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;
    }
}
