From: Mike Stump Date: Tue, 13 May 1997 03:50:39 +0000 (+0000) Subject: except.c (expand_start_all_catch): If the machine needs a nonlocal_goto_receiver... X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=05f5b2cdf97d10cd4448a59c7d6c1b92416c8fcc;p=platform%2Fupstream%2Fgcc.git 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 --- diff --git a/gcc/except.c b/gcc/except.c index 91afbc3..225b656c 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) {