This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
[committed] Fix signal frame handling on PA
- From: "John David Anglin" <dave at hiauly1 dot hia dot nrc dot ca>
- To: gcc-patches at gcc dot gnu dot org
- Date: Sat, 5 Dec 2009 12:55:38 -0500 (EST)
- Subject: [committed] Fix signal frame handling on PA
We need to set fs->signal_frame for signal frames for correct unwinding.
This fixes PR ada/41912 and three Java testcases. However, it
causes Array_3.java to fail. With the above, we no longer need
to adjust the program counter in pa-signal.h and hppa-signal.h.
A separate patch to fix this issue will follow when testing
is complete.
This patch has been tested on hppa-unknown-linux-gnu,
hppa2.0w-hp-hpux11.11 and hppa64-hp-hpux11.11.
Committed to trunk.
Dave
--
J. David Anglin dave.anglin@nrc-cnrc.gc.ca
National Research Council of Canada (613) 990-0752 (FAX: 952-6602)
2009-12-05 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
PR ada/41912
* pa/linux-unwind.h (pa32_fallback_frame_state): Set fs->signal_frame
for signal frames.
* pa/hpux-unwind.h (pa32_fallback_frame_state): Likewise.
Index: gcc/config/pa/linux-unwind.h
===================================================================
--- gcc/config/pa/linux-unwind.h (revision 155009)
+++ gcc/config/pa/linux-unwind.h (working copy)
@@ -135,6 +135,7 @@
fs->regs.reg[DWARF_ALT_FRAME_RETURN_COLUMN].loc.offset
= (long) &sc->sc_iaoq[0] - new_cfa;
fs->retaddr_column = DWARF_ALT_FRAME_RETURN_COLUMN;
+ fs->signal_frame = 1;
return _URC_NO_REASON;
}
#endif /* inhibit_libc */
Index: gcc/config/pa/hpux-unwind.h
===================================================================
--- gcc/config/pa/hpux-unwind.h (revision 155009)
+++ gcc/config/pa/hpux-unwind.h (working copy)
@@ -351,6 +351,7 @@
fs->retaddr_column = DWARF_ALT_FRAME_RETURN_COLUMN;
UPDATE_FS_FOR_PC (fs, DWARF_ALT_FRAME_RETURN_COLUMN);
+ fs->signal_frame = 1;
return _URC_NO_REASON;
}