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?