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.