From 05f5b2cdf97d10cd4448a59c7d6c1b92416c8fcc Mon Sep 17 00:00:00 2001 From: Mike Stump Date: Tue, 13 May 1997 03:50:39 +0000 Subject: [PATCH] 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 --- gcc/except.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/gcc/except.c b/gcc/except.c index 91afbc3052b..225b656c519 100644 --- a/gcc/except.c +++ b/gcc/except.c @@ -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) { -- 2.30.2