diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 03fae9f5e87c..850802ebb8c2 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2010-11-11 Jakub Jelinek + + 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 * 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 ab2e67af2aea..59e2fef5976b 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. */