From: Jeff Law Date: Fri, 28 Nov 1997 04:42:28 +0000 (-0700) Subject: Grr. Used the wrong patchfile last time. X-Git-Tag: releases/libf2c-0.5.21~475 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=2d2e70543133b6b86f35f8533aaf1b76ad2d4b11;p=thirdparty%2Fgcc.git Grr. Used the wrong patchfile last time. From-SVN: r16816 --- diff --git a/gcc/flow.c b/gcc/flow.c index 27409de005b8..8311566e9c82 100644 --- a/gcc/flow.c +++ b/gcc/flow.c @@ -574,7 +574,11 @@ find_basic_blocks (f, nonlocal_label_list) associated insns aren't marked dead, so we make the block in question live and create an edge from this insn to the label. This is not strictly - correct, but it is close enough for now. */ + correct, but it is close enough for now. + + We also need to mark the CODE_LABEL as reaching + its exception handler for nested exceptions to + to work. */ for (note = REG_NOTES (insn); note; note = XEXP (note, 1)) @@ -586,6 +590,14 @@ find_basic_blocks (f, nonlocal_label_list) mark_label_ref (gen_rtx (LABEL_REF, VOIDmode, x), insn, 0); + + /* If the CODE_LABEL has an active exception + handler, then make an edge to the exception + handler from this insn. */ + if (active_eh_handler[INSN_UID (x)]) + mark_label_ref (gen_rtx (LABEL_REF, VOIDmode, + active_eh_handler[INSN_UID (x)]), + insn, 0); } }