https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90883

--- Comment #37 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
(In reply to Marc Glisse from comment #1)
> 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.

I should mention the C++ FE does now just `<retval> = {}` for fast and slow.
This is why r15-9400-ge7bccec33beece fixes this.

Reply via email to