https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82363
--- Comment #3 from Martin Jambor <jamborm at gcc dot gnu.org> --- I'm testing the following fix: diff --git a/gcc/tree-sra.c b/gcc/tree-sra.c index f5675edc7f1..bac593951e7 100644 --- a/gcc/tree-sra.c +++ b/gcc/tree-sra.c @@ -2691,7 +2691,7 @@ propagate_subaccesses_across_link (struct access *lacc, struct access *racc) } else { - if (rchild->grp_write && !lacc->grp_write) + if (!lacc->grp_write) { ret = true; subtree_mark_written_and_enqueue (lacc);