Fix for debug/35065 (compile time hog)
Michael Matz
matz@suse.de
Tue Feb 12 16:24:00 GMT 2008
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;
}
}
More information about the Gcc-patches
mailing list