From 974c50f907d067cdaba43812aba6a87314685346 Mon Sep 17 00:00:00 2001 From: Jason Merrill Date: Mon, 29 Sep 1997 16:49:57 +0000 Subject: [PATCH] flow.c (find_basic_blocks): Mark calls as potentially jumping to the EH labels. * flow.c (find_basic_blocks): Mark calls as potentially jumping to the EH labels. From-SVN: r15792 --- gcc/ChangeLog | 5 +++++ gcc/flow.c | 10 ++++++++-- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 6e0c9e17ac5c..aec13a2384fe 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +Mon Sep 29 10:51:53 1997 Jason Merrill + + * flow.c (find_basic_blocks): Mark calls as potentially jumping + to the EH labels. + Mon Sep 29 09:58:06 1997 Jeffrey A Law (law@cygnus.com) * configure.in: Substitute for "install" too. diff --git a/gcc/flow.c b/gcc/flow.c index f1774dc33293..75384576cb5f 100644 --- a/gcc/flow.c +++ b/gcc/flow.c @@ -465,8 +465,9 @@ find_basic_blocks (f, nonlocal_label_list) if (! LABEL_REF_NONLOCAL_P (x)) block_live[BLOCK_NUM (XEXP (x, 0))] = 1; - for (x = exception_handler_labels; x; x = XEXP (x, 1)) - block_live[BLOCK_NUM (XEXP (x, 0))] = 1; + if (asynchronous_exceptions) + for (x = exception_handler_labels; x; x = XEXP (x, 1)) + block_live[BLOCK_NUM (XEXP (x, 0))] = 1; /* Record which basic blocks control can drop in to. */ @@ -531,6 +532,11 @@ find_basic_blocks (f, nonlocal_label_list) mark_label_ref (gen_rtx (LABEL_REF, VOIDmode, XEXP (x, 0)), insn, 0); + if (! asynchronous_exceptions) + for (x = exception_handler_labels; x; x = XEXP (x, 1)) + mark_label_ref (gen_rtx (LABEL_REF, VOIDmode, XEXP (x, 0)), + insn, 0); + /* ??? This could be made smarter: in some cases it's possible to tell that certain calls will not do a nonlocal goto. -- 2.47.2