aboutsummaryrefslogtreecommitdiff
path: root/gcc/cfgloopmanip.c
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2009-02-10 16:23:17 +0000
committerJakub Jelinek <jakub@redhat.com>2009-02-10 16:23:17 +0000
commitc0ff55c01e3410f355796fa5639ba9f622c27c01 (patch)
tree3b8e904d6bae3a3201463054831fcc5b0dab190d /gcc/cfgloopmanip.c
parenta43fd59acdbd818f3361665927ce1d4c7eb7178d (diff)
PR middle-end/39124
* cfgloopmanip.c (remove_path): Call remove_bbs after cancel_loop_tree, not before it. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@144066 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/cfgloopmanip.c')
-rw-r--r--gcc/cfgloopmanip.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/gcc/cfgloopmanip.c b/gcc/cfgloopmanip.c
index d8979b44f4a..28cfa3cfc9a 100644
--- a/gcc/cfgloopmanip.c
+++ b/gcc/cfgloopmanip.c
@@ -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++)