OSDN Git Service

* except.c (remove_eh_handler_and_replace): Handle updating after
authorhubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4>
Sat, 2 May 2009 10:57:07 +0000 (10:57 +0000)
committerhubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4>
Sat, 2 May 2009 10:57:07 +0000 (10:57 +0000)
removing TRY blocks.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@147055 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/except.c

index 1a46e32..49f1adb 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 5b8ed7c..3ba3b67 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;