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

--- Comment #10 from Bill Schmidt <wschmidt at gcc dot gnu.org> ---
Sorry to be late jumping in.

Previously zero bitfields were spuriously removed, now they're being left in
place and matching C.  That's very good.

As Jakub shows, the biggest problem is with homogeneous aggregates of
floating-point and vector types in the ELFv2 ABI used for powerpc64le today. 
Before Jakub's change, we would (wrongly) treat the "struct S" as a homogeneous
aggregate and pass the arguments in floating-point registers.  With Jakub's
change, we (correctly) pass the arguments in GPRs and/or memory.

Otherwise I think our ABIs are unaffected.

We'll need to add a Wpsabi message in the case where we used to recognize a
homogeneous aggregate but no longer do.  We ought to be able to add that easily
in rs6000_discover_homogeneous_aggregate (rs6000-call.c).

Reply via email to