https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100402
Eric Botcazou <ebotcazou at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|WAITING |NEW --- Comment #8 from Eric Botcazou <ebotcazou at gcc dot gnu.org> --- Ugh, there is some black magic involved with setjmp and SEH: # ifdef __SEH__ # if (__MINGW_GCC_VERSION < 40702) # define setjmp(BUF) _setjmpex((BUF), mingw_getsp()) # define setjmpex(BUF) _setjmpex((BUF), mingw_getsp()) # else # define setjmp(BUF) _setjmpex((BUF), __builtin_frame_address (0)) # define setjmpex(BUF) _setjmpex((BUF), __builtin_frame_address (0)) # endif # else # define setjmp(BUF) _setjmpex((BUF), NULL) # define setjmpex(BUF) _setjmpex((BUF), NULL) # endif so the original code would leave the frame pointer misaligned whereas we now realign it.