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.