[Bug target/102024] [12 Regression] zero width bitfields and ABIs

wschmidt at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Wed Aug 25 19:23:34 GMT 2021


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).


More information about the Gcc-bugs mailing list