The following is a simple fix to avoid ICEing on non-constant sizes of ARRAY_REFs instead of backporting too intrusive changes done on trunk.
Bootstrap / regtest pending on x86_64-unknown-linux-gnu. 2022-04-07 Richard Biener <rguent...@suse.de> PR tree-optimization/99121 * gimple-array-bounds.cc (array_bounds_checker::check_mem_ref): Bail out for non-constant type size. --- gcc/gimple-array-bounds.cc | 2 ++ 1 file changed, 2 insertions(+) diff --git a/gcc/gimple-array-bounds.cc b/gcc/gimple-array-bounds.cc index 199d9f5d216..b1179518651 100644 --- a/gcc/gimple-array-bounds.cc +++ b/gcc/gimple-array-bounds.cc @@ -607,6 +607,8 @@ array_bounds_checker::check_mem_ref (location_t location, tree ref, if (TREE_CODE (reftype) == ARRAY_TYPE) { + if (TREE_CODE (TYPE_SIZE_UNIT (TREE_TYPE (reftype))) != INTEGER_CST) + return false; /* Set to the size of the array element (and adjust below). */ eltsize = wi::to_offset (TYPE_SIZE_UNIT (TREE_TYPE (reftype))); /* Use log2 of size to convert the array byte size in to its -- 2.34.1