This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug target/50737] FAIL: Throw_3 -O3 execution, generic dwarf2 EH problem?
- From: "ubizjak at gmail dot com" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Sun, 16 Oct 2011 20:34:51 +0000
- Subject: [Bug target/50737] FAIL: Throw_3 -O3 execution, generic dwarf2 EH problem?
- Auto-submitted: auto-generated
- References: <bug-50737-4@http.gcc.gnu.org/bugzilla/>
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50737
--- Comment #12 from Uros Bizjak <ubizjak at gmail dot com> 2011-10-16 20:34:51 UTC ---
(In reply to comment #11)
> > Running target unix
> > FAIL: Array_3 execution - source compiled test
> > FAIL: Array_3 -findirect-dispatch execution - source compiled test
> > FAIL: Array_3 -O3 execution - source compiled test
> > FAIL: Array_3 -O3 -findirect-dispatch execution - source compiled test
>
> Probably because of a double PC adjustment for signals. The old code should be
> removed, it is located in libjava/include/dwarf2-signal.h for alpha.
Indeed!
Following additional patch fixes all libjava tests:
Index: libjava/include/dwarf2-signal.h
===================================================================
--- libjava/include/dwarf2-signal.h (revision 180054)
+++ libjava/include/dwarf2-signal.h (working copy)
@@ -29,21 +29,8 @@
// then throw an exception. With the dwarf2 unwinder we don't usually
// need to do anything, with some minor exceptions.
-#ifdef __alpha__
-#define MAKE_THROW_FRAME(_exception) \
-do \
-{ \
- /* Alpha either leaves PC pointing at a faulting instruction or the \
- following instruction, depending on the signal. SEGV always does \
- the former, so we adjust the saved PC to point to the following \
- instruction; this is what the handler in libgcc expects. */
\
- struct sigcontext *_sc = (struct sigcontext *)_p; \
- _sc->sc_pc += 4; \
-} \
-while (0)
+#ifdef __ia64__
-#elif defined(__ia64__)
-
#define MAKE_THROW_FRAME(_exception) \
do \
{ \
I'm re-running libjava tests and will post complete patch to gcc-patches@ ML.