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)15 x(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()31 main ()
32 {
33 #if ! defined (NO_LABEL_VALUES) && !defined (NO_TRAMPOLINES)
34   if (x (DEPTH) != DEPTH)
35     abort ();
36 #endif
37   exit (0);
38 }
39