diff --git a/gcc/ChangeLog b/gcc/ChangeLog index d99e12647f6a..0a7e8d00b9fa 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2015-11-24 Richard Biener + + PR middle-end/68221 + * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Properly + use mem_ref_offset. + 2015-11-24 Jakub Jelinek PR target/68483 diff --git a/gcc/tree-ssa-sccvn.c b/gcc/tree-ssa-sccvn.c index 46ce285d9c7e..a99a28fc6806 100644 --- a/gcc/tree-ssa-sccvn.c +++ b/gcc/tree-ssa-sccvn.c @@ -844,8 +844,11 @@ copy_reference_ops_from_ref (tree ref, vec *result) case MEM_REF: /* The base address gets its own vn_reference_op_s structure. */ temp.op0 = TREE_OPERAND (ref, 1); - if (tree_fits_shwi_p (TREE_OPERAND (ref, 1))) - temp.off = tree_to_shwi (TREE_OPERAND (ref, 1)); + { + offset_int off = mem_ref_offset (ref); + if (wi::fits_shwi_p (off)) + temp.off = off.to_shwi (); + } break; case BIT_FIELD_REF: /* Record bits and position. */