bool expr_elt_hasher::equal (const value_type &p1, const compare_type &p2) { const struct hashable_expr *expr1 = p1->expr (); const struct expr_hash_elt *stamp1 = p1->stamp (); const struct hashable_expr *expr2 = p2->expr (); const struct expr_hash_elt *stamp2 = p2->stamp (); /* This case should apply only when removing entries from the table. */ if (stamp1 == stamp2) return true; if (p1->hash () != p2->hash ()) return false; /* In case of a collision, both RHS have to be identical and have the same VUSE operands. */ if (hashable_expr_equal_p (expr1, expr2) && types_compatible_p (expr1->type, expr2->type)) return true; return false; }