This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Fix for debug/35065 (compile time hog)
- From: Michael Matz <matz at suse dot de>
- To: gcc-patches at gcc dot gnu dot org
- Date: Tue, 12 Feb 2008 17:13:11 +0100 (CET)
- Subject: Fix for debug/35065 (compile time hog)
Hi,
there's an obvious error in clobber_variable_part which causes
instability. Depending on if the searched item is the first in list or
not, either only it is removed, or the whole list is emptied. This
dependence on input order causes instability of the OUT sets, and as this
is a loop, causes oscillation and an endless loop.
This fixes it. I'm currently regstrapping on i686 and x86_64. Okay for
trunk if that passes?
Ciao,
Michael.
* var-tracking.c (clobber_variable_part): Correctly traverse the
list.
Index: gcc/var-tracking.c
===================================================================
--- gcc/var-tracking.c (revision 132254)
+++ gcc/var-tracking.c (working copy)
@@ -2595,6 +2655,8 @@ clobber_variable_part (dataflow_set *set
pool_free (attrs_pool, anode);
*anextp = anext;
}
+ else
+ anextp = &anode->next;
}
}