1 extern void abort (void);
2 extern void exit (int);
3 
4 #ifndef NO_TRAMPOLINES
recursive(int n,void (* proc)(void))5 static void recursive (int n, void (*proc) (void))
6 {
7   __label__ l1;
8 
9   void do_goto (void)
10   {
11     goto l1;
12   }
13 
14   if (n == 3)
15       recursive (n - 1, do_goto);
16   else if (n > 0)
17     recursive (n - 1, proc);
18   else
19     (*proc) ();
20   return;
21 
22 l1:
23   if (n == 3)
24     exit (0);
25   else
26     abort ();
27 }
28 
main()29 int main ()
30 {
31   recursive (10, abort);
32   abort ();
33 }
34 #else
main()35 int main () { return 0; }
36 #endif
37