modernc.org/ccgo/v3@v3.16.14/lib/testdata/gcc-9.1.0/gcc/testsuite/gcc.c-torture/execute/pr24135.c (about)

     1  /* { dg-require-effective-target trampolines } */
     2  
     3  extern void abort (void);
     4  
     5  int x(int a, int b)
     6  {
     7    __label__ xlab;
     8    __label__ xlab2;
     9  
    10    void y(int b)
    11      {
    12         switch (b)
    13          {
    14            case 1: goto xlab;
    15            case 2: goto xlab;
    16          }
    17      }
    18  
    19    a = a + 2;
    20    y (b);
    21  
    22   xlab:
    23    return a;
    24  
    25   xlab2:
    26    a++;
    27    return a;
    28  
    29  }
    30  
    31  int main ()
    32  {
    33    int i, j;
    34  
    35    for (j = 1; j <= 2; ++j)
    36      for (i = 1; i <= 2; ++i)
    37        {
    38  	int a = x (j, i);
    39  	if (a != 2 + j)
    40  	  abort ();
    41        }
    42  
    43    return 0;
    44  }