#Standard C89, no extensions <!-- language-all: lang-c --> #include <setjmp.h> #include <stdio.h> #include <stdlib.h> int main(int argc, char **argv) { jmp_buf b; int i = 0, j; if (argc > 1) i = atoi(argv[1]); if (i<=0) i = 10; j = setjmp(b); if (j<i) { printf("%d\n", j); longjmp(b, j+1); } return EXIT_SUCCESS; } Compiles cleanly with `gcc -std=c89 -g -Wall -Wextra -pedantic`.