void foo (char *p) { int d = 0; bar (); if (__setjmp (p)) return; long a = d; d = 8; if (!a) bar (); }
int RTSpawn( void (*fn)( void ) ) { __jmp_buf *save_env; __jmp_buf env; int status; save_env = __SpawnStack; __SpawnStack = &env; status = __setjmp( env ); if( status == 0 ) { (*fn)(); } __SpawnStack = save_env; return( status ); }