diff options
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/except.c | 7 |
2 files changed, 10 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index bbda02b..592af76 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +Thu Sep 2 00:06:43 1999 Jeffrey A Law (law@cygnus.com) + + * except.c (expand_fixup_region_end): Do not peek at + INSN_UID (node->entry->outer_context) for flag_new_exceptions. + Thu Sep 2 13:52:53 1999 Geoffrey Keating <geoffk@cygnus.com> * flags.h: New variables align_loops, align_loops_log, diff --git a/gcc/except.c b/gcc/except.c index 0d6abc3..cc6a8d1 100644 --- a/gcc/except.c +++ b/gcc/except.c @@ -1544,8 +1544,11 @@ expand_fixup_region_end (cleanup) and we could get an infinte loop when it tried to rethrow, or just generally incorrect execution following a throw. */ - dont_issue = ((INSN_UID (node->entry->outer_context) == 0) - && (ehstack.top->entry != node->entry)); + if (flag_new_exceptions) + dont_issue = 0; + else + dont_issue = ((INSN_UID (node->entry->outer_context) == 0) + && (ehstack.top->entry != node->entry)); ehstack.top->entry->outer_context = node->entry->outer_context; |