https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66142
Richard Biener <rguenth at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |ASSIGNED Last reconfirmed| |2015-05-26 Assignee|unassigned at gcc dot gnu.org |rguenth at gcc dot gnu.org Ever confirmed|0 |1 --- Comment #10 from Richard Biener <rguenth at gcc dot gnu.org> --- Testing Index: gcc/tree-ssa-sccvn.c =================================================================== --- gcc/tree-ssa-sccvn.c (revision 223574) +++ gcc/tree-ssa-sccvn.c (working copy) @@ -1894,7 +1894,12 @@ vn_reference_lookup_3 (ao_ref *ref, tree size2 = lhs_ref.size; maxsize2 = lhs_ref.max_size; if (maxsize2 == -1 - || (base != base2 && !operand_equal_p (base, base2, 0)) + || (base != base2 + && (TREE_CODE (base) != MEM_REF + || TREE_CODE (base2) != MEM_REF + || TREE_OPERAND (base, 0) != TREE_OPERAND (base2, 0) + || !tree_int_cst_equal (TREE_OPERAND (base, 1), + TREE_OPERAND (base2, 1)))) || offset2 > offset || offset2 + size2 < offset + maxsize) return (void *)-1; which fixes the comment#7 testcase.