: target
Assignee: unassigned at gcc dot gnu.org
Reporter: camm at debian dot org
Created attachment 33551
--> https://gcc.gnu.org/bugzilla/attachment.cgi?id=33551&action=edit
invert.c, invert.cpp, and invert.gdb gdb session
Register variable stored in f31 is stored
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63360
--- Comment #2 from camm at debian dot org ---
Created attachment 33563
--> https://gcc.gnu.org/bugzilla/attachment.cgi?id=33563&action=edit
gdb transcript showing longjmp clobbering of f31
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63360
--- Comment #3 from camm at debian dot org ---
Additional transcript showing the 0 f31 value is transmitted to the return of
the original call through Lnk23 in L2.
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63360
--- Comment #4 from camm at debian dot org ---
Created attachment 33564
--> https://gcc.gnu.org/bugzilla/attachment.cgi?id=33564&action=edit
additional gdb transcript showing 0 f31 transmitted to return of Lnk23 in L2
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63360
--- Comment #6 from camm at debian dot org ---
Here is another transcript showing the innermost setjmp/longjmp pair corrupting
the f31 register. It is a little complicated as there is an inner call to the
same code which proceeds successfully.
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63360
--- Comment #7 from camm at debian dot org ---
Created attachment 33567
--> https://gcc.gnu.org/bugzilla/attachment.cgi?id=33567&action=edit
gdb transcript showing innermost setjmp/longjmp f31 clobber
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63360
--- Comment #9 from camm at debian dot org ---
Created attachment 33570
--> https://gcc.gnu.org/bugzilla/attachment.cgi?id=33570&action=edit
the setjmp buffer does not appear to be clobbered
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63360
--- Comment #11 from camm at debian dot org ---
Created attachment 33571
--> https://gcc.gnu.org/bugzilla/attachment.cgi?id=33571&action=edit
gdb transcript showing jmp_buf is unchanged across setjmp && longjmp
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63360
--- Comment #12 from camm at debian dot org ---
Created attachment 33572
--> https://gcc.gnu.org/bugzilla/attachment.cgi?id=33572&action=edit
setjmp does write to jmp_buf, but not at the end of the buffer.
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63360
--- Comment #13 from camm at debian dot org ---
Created attachment 33573
--> https://gcc.gnu.org/bugzilla/attachment.cgi?id=33573&action=edit
gdb transcript shoinwg f31 is correct on entry to setjmp
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63360
--- Comment #14 from camm at debian dot org ---
Created attachment 33574
--> https://gcc.gnu.org/bugzilla/attachment.cgi?id=33574&action=edit
continuation of gdb.7 showing no stfd fp31,((39)*8)(3) executed
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63360
--- Comment #15 from camm at debian dot org ---
Created attachment 33575
--> https://gcc.gnu.org/bugzilla/attachment.cgi?id=33575&action=edit
setjmp saves f31, then zeroes out the result with stvxv3,0,r5
: unassigned at gcc dot gnu.org
Reporter: camm at debian dot org
CC: camm at debian dot org, dave.anglin at bell dot net, deller
at gmx dot de,
glaubitz at physik dot fu-berlin.de, rth at gcc dot gnu.org
Target Milestone: ---
Created attachment 61370
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=120181
--- Comment #2 from camm at debian dot org ---
The gcc used is the standard 14.2.0 currently in Debian unstable. The gcc
command line flags are displayed in the qemu file. Adding -fno-jump-tables
results in a successful compile.
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=120181
camm at debian dot org changed:
What|Removed |Added
Status|WAITING |RESOLVED
Resolution
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=120181
--- Comment #9 from camm at debian dot org ---
Let me double check that everything is properly linked. Thanks for suggesting
binutils.
If I don't see any obvious linker failure I'll try to isolate a small
reproducer.
16 matches
Mail list logo