diff options
author | Jason Merrill <jason@yorick.cygnus.com> | 1997-09-29 16:49:57 +0000 |
---|---|---|
committer | Jeff Law <law@gcc.gnu.org> | 1997-09-29 10:49:57 -0600 |
commit | 974c50f907d067cdaba43812aba6a87314685346 (patch) | |
tree | 16dd39f6b75f3091de36ce429654ec1b0f825301 /gcc/flow.c | |
parent | 2b67aa29e589b9244741d39a60dbafd2b1bd84af (diff) | |
download | gcc-974c50f907d067cdaba43812aba6a87314685346.zip gcc-974c50f907d067cdaba43812aba6a87314685346.tar.gz gcc-974c50f907d067cdaba43812aba6a87314685346.tar.bz2 |
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
Diffstat (limited to 'gcc/flow.c')
-rw-r--r-- | gcc/flow.c | 10 |
1 files changed, 8 insertions, 2 deletions
@@ -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. |