on ARRAY_REFs sign-extend offsets only from sizetype's precision [PR98255]
[gcc.git] / gcc / tree-ssa-sccvn.c
index 588f1b82478ee48406e4a99d656272b7c71589b7..d45aee8e502090f0af2394442c200f91e66a4355 100644 (file)
@@ -1108,7 +1108,7 @@ ao_ref_init_from_vn_reference (ao_ref *ref,
              poly_offset_int woffset
                = wi::sext (wi::to_poly_offset (op->op0)
                            - wi::to_poly_offset (op->op1),
-                           TYPE_PRECISION (TREE_TYPE (op->op0)));
+                           TYPE_PRECISION (sizetype));
              woffset *= wi::to_offset (op->op2) * vn_ref_op_align_unit (op);
              woffset <<= LOG2_BITS_PER_UNIT;
              offset += woffset;