https://gcc.gnu.org/bugzilla/show_bug.cgi?id=121894
--- Comment #6 from qinzhao at gcc dot gnu.org --- (In reply to Richard Biener from comment #3) > So > > s = .DEFERRED_INIT (16, 1, &"s"[0]); > _1 = s.b; > > is OK to "CSE" to > > _1 = .DEFERRED_INIT (4, 1, <the-val>); > > ? But this is likely more costly, so only SRA should do this? > Is it only -ftrivial-auto-var-init=pattern that is an issue? -ftrivial-auto-var-init=zero has the same issue. I think the key to this problem is whether SRA did a correct job as I mentioned in comment #5