Commit 05f5b2cd by Mike Stump

except.c (expand_start_all_catch): If the machine needs a nonlocal_goto_receiver...

	* except.c (expand_start_all_catch): If the machine needs a
	nonlocal_goto_receiver, add one at the start of the exception
	handler.
	(expand_leftover_cleanups): Likewise.
Potential fix for eh on alpha, rs6000, and hppa.

From-SVN: r14060
parent 15f3d16a
......@@ -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_nonlocal_goto_receiver
if (! exceptions_via_longjmp)
if (HAVE_nonlocal_goto_receiver)
emit_insn (gen_nonlocal_goto_receiver ());
#endif
/* And now generate the insns for the handler. */
expand_expr (entry->finalization, const0_rtx, VOIDmode, 0);
......@@ -1252,6 +1258,12 @@ expand_start_all_catch ()
end up being the handler. */
emit_label (entry->exception_handler_label);
#ifdef HAVE_nonlocal_goto_receiver
if (! exceptions_via_longjmp)
if (HAVE_nonlocal_goto_receiver)
emit_insn (gen_nonlocal_goto_receiver ());
#endif
/* When we get down to the matching entry for this try block, stop. */
if (entry->finalization == integer_zero_node)
{
......
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