https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92038
Richard Biener <rguenth at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Keywords| |missed-optimization Status|UNCONFIRMED |NEW Last reconfirmed| |2019-10-10 CC| |jakub at gcc dot gnu.org, | |rguenth at gcc dot gnu.org Ever confirmed|0 |1 --- Comment #3 from Richard Biener <rguenth at gcc dot gnu.org> --- The issue is that we initialize the aggregate without initializing the tail-padding but the ABI says we pass in a 64bit reg which means we load from the uninitialized padding. RTL opts cannot deal with the partial/piecewise inits to elide the local aggregate. It's not that we don't care but this one is not so easy to fix. With liveness analysis and some heuristics store-merging could be made to also initialize the padding.