https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102285

--- Comment #12 from qinzhao at gcc dot gnu.org ---
with the following change, I can resolve the ICE:

[opc@qinzhao-ol8u3-x86 gcc]$ git diff
diff --git a/gcc/tree-ssa-ccp.c b/gcc/tree-ssa-ccp.c
index 70ce6a4d5b8d..b07026165075 100644
--- a/gcc/tree-ssa-ccp.c
+++ b/gcc/tree-ssa-ccp.c
@@ -2655,6 +2655,7 @@ fold_builtin_alloca_with_align (gimple *stmt)
     SET_DECL_PT_UID (var, uid);

   /* Fold alloca to the address of the array.  */
+  mark_addressable (var);
   return fold_convert (TREE_TYPE (lhs), build_fold_addr_expr (var));
 }

diff --git a/gcc/tree-ssa.c b/gcc/tree-ssa.c
index 0fba404babe9..e06609861bf1 100644
--- a/gcc/tree-ssa.c
+++ b/gcc/tree-ssa.c
@@ -1657,7 +1657,7 @@ maybe_optimize_var (tree var, bitmap addresses_taken,
bitmap not_reg_needs,
   bool maybe_reg = false;
   if (TREE_ADDRESSABLE (var))
     {
-      TREE_ADDRESSABLE (var) = 0;
+      //TREE_ADDRESSABLE (var) = 0;
       maybe_reg = true;
       if (dump_file)
        {


However, I am not very sure the change in tree-ssa.c. why TREE_ADDRESSABLE
(var) is reverted in this routine?

Reply via email to