+2018-08-28 Richard Sandiford <richard.sandiford@arm.com>
+
+ * tree-ssa-sccvn.c (fully_constant_vn_reference_p): Fix unguarded
+ use of tree_to_shwi. Remove duplicated test for the size being
+ a whole number of bytes.
+
2018-08-28 Richard Biener <rguenther@suse.de>
PR tree-optimization/87117
/* Simplify reads from constants or constant initializers. */
else if (BITS_PER_UNIT == 8
&& COMPLETE_TYPE_P (ref->type)
- && is_gimple_reg_type (ref->type)
- && (!INTEGRAL_TYPE_P (ref->type)
- || TYPE_PRECISION (ref->type) % BITS_PER_UNIT == 0))
+ && is_gimple_reg_type (ref->type))
{
poly_int64 off = 0;
HOST_WIDE_INT size;
if (INTEGRAL_TYPE_P (ref->type))
size = TYPE_PRECISION (ref->type);
- else
+ else if (tree_fits_shwi_p (TYPE_SIZE (ref->type)))
size = tree_to_shwi (TYPE_SIZE (ref->type));
+ else
+ return NULL_TREE;
if (size % BITS_PER_UNIT != 0
|| size > MAX_BITSIZE_MODE_ANY_MODE)
return NULL_TREE;