except.c (remove_eh_handler_and_replace): Handle updating after removing TRY blocks.
authorJan Hubicka <jh@suse.cz>
Sat, 2 May 2009 10:57:07 +0000 (12:57 +0200)
committerJan Hubicka <hubicka@gcc.gnu.org>
Sat, 2 May 2009 10:57:07 +0000 (10:57 +0000)
* except.c (remove_eh_handler_and_replace): Handle updating after
removing TRY blocks.

From-SVN: r147055

gcc/ChangeLog
gcc/except.c

index 1a46e3247a05ae6f13e468bc612b83a066c8d280..49f1adb077e950be9d45076b120cb97e56e4fda5 100644 (file)
@@ -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.
index 5b8ed7c37435c4ed4baf02a5fa9ff841c73361b1..3ba3b67a1979c6115d7462a561490d3d9fe2c7b9 100644 (file)
@@ -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;