2009-07-17 Richard Guenther <rguenther@suse.de>
[official-gcc.git] / gcc / testsuite / gcc.dg / torture / stackalign / nested-5.c
blob95eba0482f671a4df9b38ed098f3b2c8dd43caf4
1 /* { dg-do run } */
3 extern void abort (void);
4 extern void exit (int);
6 #ifndef NO_TRAMPOLINES
7 static void recursive (int n, void (*proc) (void))
9 __label__ l1;
11 void do_goto (void)
13 goto l1;
16 if (n == 3)
17 recursive (n - 1, do_goto);
18 else if (n > 0)
19 recursive (n - 1, proc);
20 else
21 (*proc) ();
22 return;
24 l1:
25 if (n == 3)
26 exit (0);
27 else
28 abort ();
31 int main ()
33 recursive (10, abort);
34 abort ();
36 #else
37 int main () { return 0; }
38 #endif