From f3e89d5dd520ec5aaf563b74dd1e6ff6e7df6729 Mon Sep 17 00:00:00 2001 From: Uros Bizjak Date: Tue, 18 Oct 2011 19:26:32 +0200 Subject: [PATCH] re PR target/50737 (FAIL: Throw_3 -O3 execution, generic dwarf2 EH problem?) gcc/ChangeLog: 2011-10-18 Uros Bizjak Eric Botcazou PR target/50737 * config/alpha/linux-unwind.h (alpha_fallback_frame_state): Set fs->signal_frame to 1. libjava/ChangeLog: 2011-10-18 Uros Bizjak Eric Botcazou PR target/50737 * include/dwarf2-signal.h [__alpha__]: Remove MAKE_THROW_FRAME definition. Co-Authored-By: Eric Botcazou From-SVN: r180157 --- gcc/ChangeLog | 7 +++++++ gcc/config/alpha/linux-unwind.h | 2 ++ libjava/ChangeLog | 7 +++++++ libjava/include/dwarf2-signal.h | 15 +-------------- 4 files changed, 17 insertions(+), 14 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index de0cd9604d92..cfb812edf4b7 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,10 @@ +2011-10-18 Uros Bizjak + Eric Botcazou + + PR target/50737 + * config/alpha/linux-unwind.h (alpha_fallback_frame_state): Set + fs->signal_frame to 1. + 2011-10-12 Joseph Myers PR c/50565 diff --git a/gcc/config/alpha/linux-unwind.h b/gcc/config/alpha/linux-unwind.h index e43aacfd00bd..629d557c46c7 100644 --- a/gcc/config/alpha/linux-unwind.h +++ b/gcc/config/alpha/linux-unwind.h @@ -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; } diff --git a/libjava/ChangeLog b/libjava/ChangeLog index eb8c977fe7d2..307601b6a426 100644 --- a/libjava/ChangeLog +++ b/libjava/ChangeLog @@ -1,3 +1,10 @@ +2011-10-18 Uros Bizjak + Eric Botcazou + + PR target/50737 + * include/dwarf2-signal.h [__alpha__]: Remove MAKE_THROW_FRAME + definition. + 2011-06-30 Jack Howarth PR target/49461 diff --git a/libjava/include/dwarf2-signal.h b/libjava/include/dwarf2-signal.h index 949bcc0ae390..812968217eef 100644 --- a/libjava/include/dwarf2-signal.h +++ b/libjava/include/dwarf2-signal.h @@ -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 \ -- 2.47.2