blob: 30c4e16607161606898f84cae8877537494c7dd7 [file] [log] [blame]
/*
* setjmptest.c
*/
#include <stdio.h>
#include <setjmp.h>
static jmp_buf buf;
void do_stuff(int v)
{
printf("calling longjmp with %d... ", v + 1);
longjmp(buf, v + 1);
}
void recurse(int ctr, int v)
{
if (ctr--) {
recurse(ctr, v);
} else {
do_stuff(v);
}
printf("ERROR!\n"); /* We should never get here... */
}
int main(void)
{
int v;
v = setjmp(buf);
printf("setjmp returned %d\n", v);
if (v < 256)
recurse(v, v);
return 0;
}