diff options
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/tree-ssa-loop-ivopts.c | 3 |
2 files changed, 8 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 03fae9f..850802e 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2010-11-11 Jakub Jelinek <jakub@redhat.com> + + PR debug/46150 + * tree-ssa-loop-ivopts.c (htab_inv_expr_eq): Don't return + true if expr1->hash != expr2->hash. + 2010-11-10 Joseph Myers <joseph@codesourcery.com> * cfgloop.c (verify_loop_structure): Use %' in diagnostics. Start diff --git a/gcc/tree-ssa-loop-ivopts.c b/gcc/tree-ssa-loop-ivopts.c index ab2e67a..59e2fef 100644 --- a/gcc/tree-ssa-loop-ivopts.c +++ b/gcc/tree-ssa-loop-ivopts.c @@ -834,7 +834,8 @@ htab_inv_expr_eq (const void *ent1, const void *ent2) const struct iv_inv_expr_ent *expr2 = (const struct iv_inv_expr_ent *)ent2; - return operand_equal_p (expr1->expr, expr2->expr, 0); + return expr1->hash == expr2->hash + && operand_equal_p (expr1->expr, expr2->expr, 0); } /* Hash function for loop invariant expressions. */ |