diff options
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/tree-ssa-structalias.c | 7 |
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. */ |