8
void stack_manipulate_func(jmp_state* s, int level) {
11
printf("Entering stack_manipulate_func, level: %d\n", level);
15
if (setjmp(*(s->jmp)) == 0) {
16
printf("Setjmp normal execution path, level: %d\n", level);
17
stack_manipulate_func(s, level + 1);
19
printf("Setjmp error execution path, level: %d\n", level);
22
printf("Perform longjmp at level %d\n", level);
23
longjmp(*(s->jmp), 1);
26
printf("Exiting stack_manipulate_func, level: %d\n", level);
29
int main(int argc, char* argv[]) {
32
stack_manipulate_func(&s, 0);