#include <setjmp.h> | |
#include <stdio.h> | |
#include <time.h> | |
jmp_buf j; | |
void do_jump(void) | |
{ | |
// We can't let the compiler know this will always happen or it might make | |
// optimizations that break our test. | |
if (!clock()) | |
longjmp(j, 1); // non-local goto | |
} | |
int main (void) | |
{ | |
if (setjmp(j) == 0) | |
do_jump(); | |
else | |
return 0; // destination of longjmp | |
return 1; | |
} |