https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83368

Eric Botcazou <ebotcazou at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|REOPENED                    |RESOLVED
         Resolution|---                         |WONTFIX

--- Comment #4 from Eric Botcazou <ebotcazou at gcc dot gnu.org> ---
> Therefore, I am of the view that this should be reopened as a bug in GCC.
> GCC already spills local variables live across a setjmp to the stack (as it
> can't use input or local registers due to the above note); it should be
> doing the same for %l7.

No, setjmp/longjmp must preserve the call-saved registers and it does in almost
all cases, both on Linux and Solaris.  But you're clobbering the stack pointer
after calling setjmp and this cannot reasonably work on SPARC because of the
way setjmp/longjmp is implemented for this architecture.

Let's declare this as WONTFIX; you can use __builtin_setjmp/longjmp instead.

Reply via email to