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  }