https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84521
--- Comment #23 from Eric Botcazou <ebotcazou at gcc dot gnu.org> --- > Where exactly is this documented? I can't find no references to > __builtin_setjmp or __builtin_longjmp in > https://gcc.gnu.org/onlinedocs/gcc-7.3.0/gcc.pdf or > https://gcc.gnu.org/onlinedocs/gccint.pdf. __builtin_setjmp/__builtin_longjmp is not documented at all. You can probably find a discussion in the archives or bugzilla about this. > Which documentation? The internal manual, section Machine Description. > Like you say, AArch64 doesn't need anything special, it's the mid-end > implementation that is broken here. I bet most of my examples fail on other > targets too. Well, the SJLJ exception handling scheme is piggybacked on this support and has worked for the past 2 decades. And, until very recently, the Ada compiler was using another exception handling scheme even more directly piggybacked on it and which had worked for the past 2 decades too.