/* Conformance Test 21.4.0.1: Verification of setjmp, longjmp functions */ #include int printf(const char *, ...); jmp_buf env; /* setjmp, longjmp environment array */ /*****************************************************************************/ void F1 (char ch) { if (ch == 'a') longjmp (env, 0); /* not allowed to do this -- should */ else /* cause setjmp to return a 1 */ longjmp (env, 2); } /*****************************************************************************/ int main (void) { int i; i = setjmp (env); /* initialize env to main's environment */ if (i == 0) F1 ('a'); else if (i == 1) /* check second return from setjmp */ { printf ("Passed Conformance Test 21.4.0.1\n"); return 0; } else printf ("Failed Conformance Test 21.4.0.1\n"); }