On Mon, Mar 05, 2018 at 08:01:14AM +0100, Eric Botcazou wrote: > > C11 says in 7.13.2.1/2 > > "The longjmp function restores the environment saved by the most recent > > invocation of the setjmp macro in the same invocation of the program with > > the corresponding jmp_buf argument." > > where "environment" is not really defined, but it includes all information > > a program will need to return to its caller (so it has to restore the > > non-volatile registers, set stack pointers correctly, that kind of thing). > > Apparently the authors of the SPARC psABI thought that the last part of your > sentence is an interpolation and that the (historical) requirements were > vague > enough to allow their interpretation, IOW that the compiler can do the work.
Maybe we should have a target hook that says setjmp/longjmp are implemented by simple function calls (or as-if by function calls), so as not to penalize everyone who has an, erm, more conservative ABI? Segher