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 | |
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')
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/flow.c | 10 |
2 files changed, 13 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 6e0c9e1..aec13a2 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +Mon Sep 29 10:51:53 1997 Jason Merrill <jason@yorick.cygnus.com> + + * 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. @@ -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. |