OSDN Git Service

PR middle-end/39124
authorjakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 10 Feb 2009 16:23:17 +0000 (16:23 +0000)
committerjakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 10 Feb 2009 16:23:17 +0000 (16:23 +0000)
* cfgloopmanip.c (remove_path): Call remove_bbs after
cancel_loop_tree, not before it.

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

gcc/ChangeLog
gcc/cfgloopmanip.c

index c5e00ed..229aa48 100644 (file)
@@ -1,5 +1,9 @@
 2009-02-10  Jakub Jelinek  <jakub@redhat.com>
 
+       PR middle-end/39124
+       * cfgloopmanip.c (remove_path): Call remove_bbs after
+       cancel_loop_tree, not before it.
+
        PR target/39139
        * function.h (struct function): Add has_local_explicit_reg_vars
        bit.
index d8979b4..28cfa3c 100644 (file)
@@ -1,5 +1,5 @@
 /* Loop manipulation code for GNU compiler.
-   Copyright (C) 2002, 2003, 2004, 2005, 2007, 2008 Free Software
+   Copyright (C) 2002, 2003, 2004, 2005, 2007, 2008, 2009 Free Software
    Foundation, Inc.
 
 This file is part of GCC.
@@ -349,13 +349,13 @@ remove_path (edge e)
     if (rem_bbs[i]->loop_father->header == rem_bbs[i])
       deleted_loop[nreml++] = rem_bbs[i]->loop_father;
 
-  remove_bbs (rem_bbs, nrem);
-  free (rem_bbs);
-
   for (i = 0; i < nreml; i++)
     cancel_loop_tree (deleted_loop[i]);
   free (deleted_loop);
 
+  remove_bbs (rem_bbs, nrem);
+  free (rem_bbs);
+
   /* Find blocks whose dominators may be affected.  */
   sbitmap_zero (seen);
   for (i = 0; i < n_bord_bbs; i++)