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

--- Comment #8 from Peter Bergner <bergner at gcc dot gnu.org> ---
(In reply to camm from comment #6)
> Here is another transcript showing the innermost setjmp/longjmp pair
> corrupting the f31 register.

I've looked at the longjmp code and it seems fine to me.  Since you said
offline that your code works correctly when compiled with optimization and
fails without optimization, that too would clear setjmp/longjmp from being the
guilty party, since both runs are using the same setjmp/longjmp glibc library
code.

That said, if longjmp() is indeed returning a clobbered value for f31, then it
is my guess that the jmpbuf being passed to longjmp is being clobbered
somewhere between the setjmp call and the longjmp call.  Can you set a watch
point on the jmpbuf and try and track down where it is being clobbered?

Reply via email to