1 /* { dg-do run } */ 2 3 extern void abort (void); 4 extern void exit (int); 5 6 #ifdef STACK_SIZE 7 #define DEPTH ((STACK_SIZE) / 512 + 1) 8 #else 9 #define DEPTH 1000 10 #endif 11 12 #if ! defined (NO_LABEL_VALUES) && !defined (NO_TRAMPOLINES) 13 int 14 x(a)15x(a) 16 { 17 __label__ xlab; 18 void y(a) 19 { 20 if (a==0) 21 goto xlab; 22 y (a-1); 23 } 24 y (a); 25 xlab:; 26 return a; 27 } 28 #endif 29 30 int main()31main () 32 { 33 #if ! defined (NO_LABEL_VALUES) && !defined (NO_TRAMPOLINES) 34 if (x (DEPTH) != DEPTH) 35 abort (); 36 #endif 37 exit (0); 38 } 39