1  /* { dg-require-effective-target label_values } */
       2  /* { dg-require-effective-target trampolines } */
       3  /* { dg-add-options stack_size } */
       4  
       5  #ifdef STACK_SIZE
       6  #define DEPTH ((STACK_SIZE) / 512 + 1)
       7  #else
       8  #define DEPTH 1000
       9  #endif
      10  
      11  x(a)
      12  {
      13    __label__ xlab;
      14    void y(a)
      15      {
      16        if (a==0)
      17  	goto xlab;
      18        y (a-1);
      19      }
      20    y (a);
      21   xlab:;
      22    return a;
      23  }
      24  
      25  main ()
      26  {
      27    if (x (DEPTH) != DEPTH)
      28      abort ();
      29  
      30    exit (0);
      31  }