blob: fc9ad955a9f2089e807e7bef24e3e523450cee4e [file] [log] [blame]
/* { dg-require-effective-target trampolines } */
extern void abort (void);
extern void exit (int);
static void recursive (int n, void (*proc) (void))
{
__label__ l1;
void do_goto (void)
{
goto l1;
}
if (n == 3)
recursive (n - 1, do_goto);
else if (n > 0)
recursive (n - 1, proc);
else
(*proc) ();
return;
l1:
if (n == 3)
exit (0);
else
abort ();
}
int main ()
{
recursive (10, abort);
abort ();
}