From: Jakub Jelinek Date: Tue, 10 Feb 2009 16:23:17 +0000 (+0100) Subject: re PR middle-end/39124 (-fno-exceptions leads to a ICE) X-Git-Tag: releases/gcc-4.4.0~593 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=9b43d37b8305a4db4058fb5f9d9ce08463b4df06;p=thirdparty%2Fgcc.git re PR middle-end/39124 (-fno-exceptions leads to a ICE) PR middle-end/39124 * cfgloopmanip.c (remove_path): Call remove_bbs after cancel_loop_tree, not before it. From-SVN: r144066 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index c5e00ed34f6c..229aa485e899 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,9 @@ 2009-02-10 Jakub Jelinek + 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. diff --git a/gcc/cfgloopmanip.c b/gcc/cfgloopmanip.c index d8979b44f4a0..28cfa3cfc9aa 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++)