This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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;
 			}
 		    }
 


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]