From 0186d373b63c998f0a1c911bdf76c7675f7708de Mon Sep 17 00:00:00 2001 From: Richard Sandiford Date: Tue, 15 Oct 2019 10:29:53 +0000 Subject: Fix unchecked use of tree_to_uhwi in tree-ssa-strlen.c r273783 introduced an unchecked use of tree_to_uhwi. This is tested by the SVE ACLE patches, but could potentially trigger in non-SVE cases too. 2019-10-15 Richard Sandiford gcc/ * tree-ssa-strlen.c (count_nonzero_bytes): Check tree_fits_uhwi_p before using tree_to_uhwi. From-SVN: r276990 --- gcc/tree-ssa-strlen.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'gcc/tree-ssa-strlen.c') diff --git a/gcc/tree-ssa-strlen.c b/gcc/tree-ssa-strlen.c index ef2717d..5b90ad3 100644 --- a/gcc/tree-ssa-strlen.c +++ b/gcc/tree-ssa-strlen.c @@ -4026,10 +4026,10 @@ count_nonzero_bytes (tree exp, unsigned HOST_WIDE_INT offset, /* The size of the MEM_REF access determines the number of bytes. */ tree type = TREE_TYPE (exp); - if (tree typesize = TYPE_SIZE_UNIT (type)) - nbytes = tree_to_uhwi (typesize); - else + tree typesize = TYPE_SIZE_UNIT (type); + if (!typesize || !tree_fits_uhwi_p (typesize)) return false; + nbytes = tree_to_uhwi (typesize); /* Handle MEM_REF = SSA_NAME types of assignments. */ return count_nonzero_bytes (arg, offset, nbytes, lenrange, nulterm, -- cgit v1.1