We currently only INTEGER_CST, but not POLY_INT_CST, which leads to the situation that when the POLY_INT_CST is only indrectly present via a SSA def the IL is valid but when propagated it's not. That's unsustainable.
Bootstrap and regtest running on x86_64-unknown-linux-gnu, will push after that succeeded. PR middle-end/119706 * gimple-expr.cc (is_gimple_mem_ref_addr): Also allow POLY_INT_CST. --- gcc/gimple-expr.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gcc/gimple-expr.cc b/gcc/gimple-expr.cc index a670e4648d3..c0367f490d6 100644 --- a/gcc/gimple-expr.cc +++ b/gcc/gimple-expr.cc @@ -884,7 +884,7 @@ bool is_gimple_mem_ref_addr (tree t) { return (is_gimple_reg (t) - || TREE_CODE (t) == INTEGER_CST + || poly_int_tree_p (t) || (TREE_CODE (t) == ADDR_EXPR && (CONSTANT_CLASS_P (TREE_OPERAND (t, 0)) || decl_address_invariant_p (TREE_OPERAND (t, 0))))); -- 2.43.0