summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/tree-ssa-structalias.c7
2 files changed, 10 insertions, 3 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 960199789fe..18a38ed9167 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2007-01-26 Daniel Berlin <dberlin@dberlin.org>
+ Richard Guenther <rguenther@suse.de>
+
+ * tree-ssa-structalias.c (solve_graph): Handle case
+ we merged the variable to another.
+
2007-01-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
* builtins.c (fold_builtin_1): Treat ccos and ccosh as 'even'
diff --git a/gcc/tree-ssa-structalias.c b/gcc/tree-ssa-structalias.c
index def895854f5..dd95c9f6e56 100644
--- a/gcc/tree-ssa-structalias.c
+++ b/gcc/tree-ssa-structalias.c
@@ -2051,9 +2051,10 @@ solve_graph (constraint_graph_t graph)
if (find (i) != i)
continue;
- eliminate_indirect_cycles (i);
-
- gcc_assert (find (i) == i);
+ /* In certain indirect cycle cases, we may merge this
+ variable to another. */
+ if (eliminate_indirect_cycles (i) && find(i) != i)
+ continue;
/* If the node has changed, we need to process the
complex constraints and outgoing edges again. */