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

--- Comment #13 from qinzhao at gcc dot gnu.org ---
[opc@qinzhao-aarch64-ol8 gcc]$ git diff
diff --git a/gcc/tree-sra.cc b/gcc/tree-sra.cc
index 921664ef470..dd976f96a91 100644
--- a/gcc/tree-sra.cc
+++ b/gcc/tree-sra.cc
@@ -1678,7 +1678,13 @@ scan_function (void)
                  /* If the STMT is a call to DEFERRED_INIT, avoid setting
                     cannot_scalarize_away_bitmap.  */
                  if (gimple_call_internal_p (stmt, IFN_DEFERRED_INIT))
-                   ret |= !!build_access_from_expr_1 (t, stmt, true);
+                   {
+                     struct access *access
+                       = build_access_from_expr_1 (t, stmt, true);
+                     if (access)
+                       access->grp_assignment_write = 1;
+                     ret |= !!access;
+                   }
                  else
                    ret |= build_access_from_expr (t, stmt, true);
                }

the above patch fixed the tree-sra issue for DEFERRED_INIT.

Reply via email to