(root)/
gcc-13.2.0/
gcc/
testsuite/
c-c++-common/
Wimplicit-fallthrough-14.c
       1  /* PR c/7652 */
       2  /* { dg-do compile } */
       3  /* { dg-options "-Wimplicit-fallthrough" } */
       4  
       5  /* Test various falls through comments.  */
       6  
       7  extern void bar (int);
       8  
       9  void
      10  fn (int i)
      11  {
      12    switch (i)
      13      {
      14      case -1:
      15        bar (-1);
      16        /*-fallthrough*/
      17      case 0:
      18        bar (0);
      19        /*@fallthrough@*/
      20      case 1:
      21        bar (1);
      22        /* FALL THRU */
      23      case 2:
      24         bar (2);
      25        /* FALLTHRU */
      26      case 3:
      27        bar (3);
      28        /* FALLS THRU */
      29      case 4:
      30        bar (4);
      31        /* FALL-THRU */
      32      case 5:
      33        bar (5);
      34        /* FALL THROUGH */
      35      case 6:
      36         bar (6);
      37        /* FALLTHROUGH */
      38      case 7:
      39        bar (7);
      40        /* FALLS THROUGH */
      41      case 8:
      42        bar (8);
      43        /* FALL-THROUGH */
      44      case 9:
      45        bar (9);
      46        /*FALLTHRU*/
      47      case 10:
      48        bar (10);
      49        /* FALLTHRU.*/
      50      case 11:
      51         bar (11);
      52        /* FALLTHROUGH.  */
      53      case 12:
      54         bar (12);
      55        /* Fall thru */
      56      case 13:
      57         bar (13);
      58        /* Falls thru */
      59      case 14:
      60         bar (14);
      61        /* Fall-thru */
      62      case 15:
      63         bar (15);
      64        /* Fall Thru */
      65      case 16:
      66         bar (16);
      67        /* Falls Thru */
      68      case 17:
      69         bar (17);
      70        /* Fall-Thru */
      71      case 18:
      72         bar (18);
      73        /* Fall through */
      74      case 19:
      75         bar (19);
      76        /* Falls through */
      77      case 20:
      78         bar (20);
      79        /* Fall-through */
      80      case 21:
      81         bar (21);
      82        /* Fall Through */
      83      case 22:
      84         bar (22);
      85        /* Falls Through */
      86      case 23:
      87         bar (23);
      88        /* Fall-Through */
      89      case 24:
      90         bar (24);
      91        /* Falls through.  */
      92      case 25:
      93         bar (25);
      94        /*     Falls through.  */
      95      case 26:
      96         bar (26);
      97        /* fall thru */
      98      case 27:
      99         bar (27);
     100        /* falls thru */
     101      case 28:
     102         bar (28);
     103        /* fall-thru */
     104      case 29:
     105         bar (29);
     106        /* fall thru */
     107      case 30:
     108         bar (30);
     109        /* falls thru */
     110      case 31:
     111         bar (31);
     112        /* fall-thru */
     113      case 32:
     114         bar (32);
     115        /* fall through */
     116      case 33:
     117         bar (33);
     118        /* falls through */
     119      case 34:
     120         bar (34);
     121        /* fall-through */
     122      default:
     123        bar (99);
     124      }
     125  
     126    switch (i)
     127      {
     128      case 0:
     129        i++;
     130        /*@fallthrough@*/
     131  L:
     132      default:
     133        bar (6);
     134      }
     135  
     136    {
     137      __label__ L2;
     138      switch (i)
     139        {
     140        case 0:
     141  	i++;
     142  	/*@fallthrough@*/
     143  L2:
     144        default:
     145        bar (6);
     146        }
     147    }
     148  
     149    /* Don't generate false -Wswitch-unreachable warning.  */
     150    switch (i)
     151      {
     152        /*FALLTHROUGH*/
     153        case 0:
     154          i++;
     155      }
     156  
     157    if (i)
     158    {
     159      /* fall through */
     160    L1:;
     161    }
     162  }