From: Uros Bizjak Date: Tue, 18 Oct 2011 17:30:12 +0000 (+0200) Subject: re PR target/50737 (FAIL: Throw_3 -O3 execution, generic dwarf2 EH problem?) X-Git-Tag: releases/gcc-4.4.7~206 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=65260b8bade4e56988148bdab406cb96f2d53f21;p=thirdparty%2Fgcc.git 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: r180158 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 58a6198d5783..2a55007f2b1f 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-08-06 Uros Bizjak PR target/50001 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 ec6957df04b0..2c90af24a3a8 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-04-16 Release Manager * GCC 4.4.6 released. diff --git a/libjava/include/dwarf2-signal.h b/libjava/include/dwarf2-signal.h index 43f0cbe914f9..88fd79d71f88 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 \