]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
middle-end/119706 - allow POLY_INT_CST as is_gimple_mem_ref_addr
authorRichard Biener <rguenther@suse.de>
Thu, 10 Apr 2025 11:30:42 +0000 (13:30 +0200)
committerRichard Biener <rguenth@gcc.gnu.org>
Tue, 24 Jun 2025 11:09:05 +0000 (13:09 +0200)
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.

PR middle-end/119706
* gimple-expr.cc (is_gimple_mem_ref_addr): Also allow
POLY_INT_CST.

(cherry picked from commit bf812c6ad83ec0b241bb3fecc7e68f883b6083df)

gcc/gimple-expr.cc

index 5faaf43eaf506081938c2afc2efd3fc15db28207..2ebcdac74136f2830504ca9657a68e98dc40bacf 100644 (file)
@@ -843,7 +843,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)))));