Commit 1e06b07d by Uros Bizjak Committed by Uros Bizjak

re PR target/50737 (FAIL: Throw_3 -O3 execution, generic dwarf2 EH problem?)

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
parent 47fc1035
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> 2011-10-07 Ian Lance Taylor <iant@google.com>
* generic-morestack-thread.c: #include <errno.h>. * generic-morestack-thread.c: #include <errno.h>.
......
...@@ -74,5 +74,7 @@ alpha_fallback_frame_state (struct _Unwind_Context *context, ...@@ -74,5 +74,7 @@ alpha_fallback_frame_state (struct _Unwind_Context *context,
fs->regs.reg[64].how = REG_SAVED_OFFSET; fs->regs.reg[64].how = REG_SAVED_OFFSET;
fs->regs.reg[64].loc.offset = (long)&sc->sc_pc - new_cfa; fs->regs.reg[64].loc.offset = (long)&sc->sc_pc - new_cfa;
fs->retaddr_column = 64; fs->retaddr_column = 64;
fs->signal_frame = 1;
return _URC_NO_REASON; return _URC_NO_REASON;
} }
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> 2011-08-10 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
* exception.cc (std::abort): Remove static. * exception.cc (std::abort): Remove static.
......
...@@ -29,20 +29,7 @@ class java::lang::Throwable; ...@@ -29,20 +29,7 @@ class java::lang::Throwable;
// then throw an exception. With the dwarf2 unwinder we don't usually // then throw an exception. With the dwarf2 unwinder we don't usually
// need to do anything, with some minor exceptions. // need to do anything, with some minor exceptions.
#ifdef __alpha__ #ifdef __ia64__
#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__)
#define MAKE_THROW_FRAME(_exception) \ #define MAKE_THROW_FRAME(_exception) \
do \ do \
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment