#include <stdio.h>
#include <setjmp.h>

jmp_buf jb;

void some_func (void)
{
    register int a = 1;

    if (setjmp(jb) == 0) {
        a = 7;

        // do something
        printf("a = %d (initialized)\n", a);

        // use longjmp to make `a` not initialized
        longjmp(jb, 1);
        // NOTREACHED
    } else {
        printf("a = %d (not initialized)\n", a);
    }
}

int main (void)
{
    some_func();
    return 0;
}
