]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
re PR target/50737 (FAIL: Throw_3 -O3 execution, generic dwarf2 EH problem?)
authorUros Bizjak <ubizjak@gmail.com>
Mon, 17 Oct 2011 15:36:28 +0000 (17:36 +0200)
committerUros Bizjak <uros@gcc.gnu.org>
Mon, 17 Oct 2011 15:36:28 +0000 (17:36 +0200)
libgcc/ChangeLog:

2011-10-16  Uros Bizjak  <ubizjak@gmail.com>
    Eric Botcazou  <ebotcazou@adacore.com>

PR target/50737
* config/alpha/linux-unwind.h (alpha_fallback_frame_state): Set
fs->signal_frame to 1.

libjava/ChangeLog:

2011-10-16  Uros Bizjak  <ubizjak@gmail.com>
    Eric Botcazou  <ebotcazou@adacore.com>

PR target/50737
* include/dwarf2-signal.h [__alpha__]: Remove MAKE_THROW_FRAME
definition.

Co-Authored-By: Eric Botcazou <ebotcazou@adacore.com>
From-SVN: r180098

libgcc/ChangeLog
libgcc/config/alpha/linux-unwind.h
libjava/ChangeLog
libjava/include/dwarf2-signal.h

index 87ba1ca83b770fc9b41a313531d36298f4e3675f..54287b40b19da1956dfb399b605aaffed7307ef7 100644 (file)
@@ -1,3 +1,10 @@
+2011-10-16  Uros Bizjak  <ubizjak@gmail.com>
+           Eric Botcazou  <ebotcazou@adacore.com>
+
+       PR target/50737
+       * config/alpha/linux-unwind.h (alpha_fallback_frame_state): Set
+       fs->signal_frame to 1.
+
 2011-10-07  Ian Lance Taylor  <iant@google.com>
 
        * generic-morestack-thread.c: #include <errno.h>.
index e43aacfd00bd34864f42aad36fbc20035ca3f2ea..629d557c46c7ff1b3594e7587f36b7188a5e0200 100644 (file)
@@ -74,5 +74,7 @@ alpha_fallback_frame_state (struct _Unwind_Context *context,
   fs->regs.reg[64].how = REG_SAVED_OFFSET;
   fs->regs.reg[64].loc.offset = (long)&sc->sc_pc - new_cfa;
   fs->retaddr_column = 64;
+  fs->signal_frame = 1;
+
   return _URC_NO_REASON;
 }
index 53adfd452853990e02a178fce2a93a24351b5a96..efbf85573ff9dd9044559e6e29008944b6452c8c 100644 (file)
@@ -1,3 +1,10 @@
+2011-10-16  Uros Bizjak  <ubizjak@gmail.com>
+           Eric Botcazou  <ebotcazou@adacore.com>
+
+       PR target/50737
+       * include/dwarf2-signal.h [__alpha__]: Remove MAKE_THROW_FRAME
+       definition.
+
 2011-08-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
 
        * exception.cc (std::abort): Remove static.
index 949bcc0ae390c28d9441de87ae406918b807bff5..812968217eef674cf962bcd2c21f4d524e2a2118 100644 (file)
@@ -29,20 +29,7 @@ class java::lang::Throwable;
 // 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)
-
-#elif defined(__ia64__)
+#ifdef __ia64__
 
 #define MAKE_THROW_FRAME(_exception)                                   \
 do                                                                     \