text: /* PR c/7652 */
  /* { dg-do compile } */
  /* { dg-options "-Wimplicit-fallthrough" } */
  
  /* Test various falls through comments.  */
  
  extern void bar (int);
  
  void
  fn (int i)
  {
    switch (i)
      {
      case -1:
        bar (-1);
        /*-fallthrough*/
      case 0:
        bar (0);
        /*@fallthrough@*/
      case 1:
        bar (1);
        /* FALL THRU */
      case 2:
         bar (2);
        /* FALLTHRU */
      case 3:
        bar (3);
        /* FALLS THRU */
      case 4:
        bar (4);
        /* FALL-THRU */
      case 5:
        bar (5);
        /* FALL THROUGH */
      case 6:
         bar (6);
        /* FALLTHROUGH */
      case 7:
        bar (7);
        /* FALLS THROUGH */
      case 8:
        bar (8);
        /* FALL-THROUGH */
      case 9:
        bar (9);
        /*FALLTHRU*/
      case 10:
        bar (10);
        /* FALLTHRU.*/
      case 11:
         bar (11);
        /* FALLTHROUGH.  */
      case 12:
         bar (12);
        /* Fall thru */
      case 13:
         bar (13);
        /* Falls thru */
      case 14:
         bar (14);
        /* Fall-thru */
      case 15:
         bar (15);
        /* Fall Thru */
      case 16:
         bar (16);
        /* Falls Thru */
      case 17:
         bar (17);
        /* Fall-Thru */
      case 18:
         bar (18);
        /* Fall through */
      case 19:
         bar (19);
        /* Falls through */
      case 20:
         bar (20);
        /* Fall-through */
      case 21:
         bar (21);
        /* Fall Through */
      case 22:
         bar (22);
        /* Falls Through */
      case 23:
         bar (23);
        /* Fall-Through */
      case 24:
         bar (24);
        /* Falls through.  */
      case 25:
         bar (25);
        /*     Falls through.  */
      case 26:
         bar (26);
        /* fall thru */
      case 27:
         bar (27);
        /* falls thru */
      case 28:
         bar (28);
        /* fall-thru */
      case 29:
         bar (29);
        /* fall thru */
      case 30:
         bar (30);
        /* falls thru */
      case 31:
         bar (31);
        /* fall-thru */
      case 32:
         bar (32);
        /* fall through */
      case 33:
         bar (33);
        /* falls through */
      case 34:
         bar (34);
        /* fall-through */
      default:
        bar (99);
      }
  
    switch (i)
      {
      case 0:
        i++;
        /*@fallthrough@*/
  L:
      default:
        bar (6);
      }
  
    {
      __label__ L2;
      switch (i)
        {
        case 0:
  	i++;
  	/*@fallthrough@*/
  L2:
        default:
        bar (6);
        }
    }
  
    /* Don't generate false -Wswitch-unreachable warning.  */
    switch (i)
      {
        /*FALLTHROUGH*/
        case 0:
          i++;
      }
  
    if (i)
    {
      /* fall through */
    L1:;
    }
  }
  