https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90883
Marc Glisse <glisse at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |NEW Last reconfirmed| |2019-06-14 Ever confirmed|0 |1 --- Comment #1 from Marc Glisse <glisse at gcc dot gnu.org> --- I am surprised the C++ FE doesn't do copy elision in either case. Anyway, slow gives: MEM[(struct C *)&D.26222 + 7B] = {}; D.26222.a = {}; D.29804 = D.26222; D.26222 ={v} {CLOBBER}; return D.29804; I notice the useless aggregate copy in the middle. For the suboptimal handling of bitfields, in particular with padding, there are already a number of reports in bugzilla.