Commit f51430ed by Mike Stump

except.c (expand_start_all_catch): If the machine needs to perform any actions…

except.c (expand_start_all_catch): If the machine needs to perform any actions at the start of an expcetion...

	* except.c (expand_start_all_catch): If the machine needs to
	perform any actions at the start of an expcetion handler that
	hasn't already been done, use gen_exception_receiver to emit it.
	(expand_leftover_cleanups): Likewise.
	* alpha/alpha.md (exception_receiver): Use it.
	* pa/pa.h (exception_receiver): Use it.
Fix -fpic on hppa when excetpions are throw across shared libraries.

From-SVN: r14070
parent 59cfb80c
......@@ -1159,6 +1159,12 @@ expand_leftover_cleanups ()
/* Output the label for the start of the exception handler. */
emit_label (entry->exception_handler_label);
#ifdef HAVE_exception_receiver
if (! exceptions_via_longjmp)
if (HAVE_exception_receiver)
emit_insn (gen_exception_receiver ());
#endif
#ifdef HAVE_nonlocal_goto_receiver
if (! exceptions_via_longjmp)
if (HAVE_nonlocal_goto_receiver)
......@@ -1258,6 +1264,12 @@ expand_start_all_catch ()
end up being the handler. */
emit_label (entry->exception_handler_label);
#ifdef HAVE_exception_receiver
if (! exceptions_via_longjmp)
if (HAVE_exception_receiver)
emit_insn (gen_exception_receiver ());
#endif
#ifdef HAVE_nonlocal_goto_receiver
if (! exceptions_via_longjmp)
if (HAVE_nonlocal_goto_receiver)
......
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