On Sat, May 14, 2005 at 11:59:28AM +0200, Øyvind Harboe wrote:
> void test(void (*t)(void))
> {
>       int i;
>       for (i=0; i<10; i++)
>       {
>               t();
...
>   int skip=0xdeadbeef;
> 
>   void do_goto (void)
>   {
>     goto l1;
>   }
>   
>   test(do_goto);
...
> l1:
>       if (skip!=0xdeadbeef)
> }
> 
> int main ()
> {
>   recursive (10, abort);
>   abort ();
> }

Well of course your program always aborts.  Control never enters
the recursive part of recursive().  It flows straight through and
returns, which hits the abort in main.



r~

Reply via email to