modernc.org/ccgo/v3@v3.16.14/lib/testdata/gcc-9.1.0/gcc/testsuite/gcc.c-torture/execute/nestfunc-5.c (about) 1 /* { dg-require-effective-target trampolines } */ 2 3 extern void abort (void); 4 extern void exit (int); 5 6 static void recursive (int n, void (*proc) (void)) 7 { 8 __label__ l1; 9 10 void do_goto (void) 11 { 12 goto l1; 13 } 14 15 if (n == 3) 16 recursive (n - 1, do_goto); 17 else if (n > 0) 18 recursive (n - 1, proc); 19 else 20 (*proc) (); 21 return; 22 23 l1: 24 if (n == 3) 25 exit (0); 26 else 27 abort (); 28 } 29 30 int main () 31 { 32 recursive (10, abort); 33 abort (); 34 }