aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJan Hubicka <jh@suse.cz>2009-05-02 12:57:07 +0200
committerJan Hubicka <hubicka@gcc.gnu.org>2009-05-02 10:57:07 +0000
commitd5c5f9ab077a5388740a188014b73c8dc80f248b (patch)
treee96506081d59712b0d59d380c03b7fd051599985
parent2ed1959a573fa444361624a6a96d235d49edddef (diff)
downloadgcc-d5c5f9ab077a5388740a188014b73c8dc80f248b.zip
gcc-d5c5f9ab077a5388740a188014b73c8dc80f248b.tar.gz
gcc-d5c5f9ab077a5388740a188014b73c8dc80f248b.tar.bz2
except.c (remove_eh_handler_and_replace): Handle updating after removing TRY blocks.
* except.c (remove_eh_handler_and_replace): Handle updating after removing TRY blocks. From-SVN: r147055
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/except.c2
2 files changed, 6 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 1a46e32..49f1adb 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2009-05-02 Jan Hubicka <jh@suse.cz>
+
+ * except.c (remove_eh_handler_and_replace): Handle updating after
+ removing TRY blocks.
+
2009-05-02 Eric Botcazou <ebotcazou@adacore.com>
* store-motion.c (compute_store_table): Add ENABLE_CHECKING guard.
diff --git a/gcc/except.c b/gcc/except.c
index 5b8ed7c..3ba3b67 100644
--- a/gcc/except.c
+++ b/gcc/except.c
@@ -2674,7 +2674,7 @@ remove_eh_handler_and_replace (struct eh_region *region,
outer = region->outer;
/* When we are moving the region in EH tree, update prev_try pointers. */
- if (outer != replace && region->inner)
+ if ((outer != replace || region->type == ERT_TRY) && region->inner)
{
struct eh_region *prev_try = find_prev_try (replace);
p = region->inner;