typedef struct { whatever-you-need } jmp_buf[1]; solves the problem of the way setjmp()'s parameter is used, with completely type-correct implementation (in the "whatever-you-need" part). Too bad setjmp() was defined as taking an array parameter in the first place.