https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102024
--- Comment #33 from Xi Ruoyao <xry111 at mengyan1223 dot wang> ---
(In reply to Segher Boessenkool from comment #31)
> Well, what do other compilers do? It's not such a good idea to break ABI
> compatibility with the 1990's compilers ;-)
Does someone have access to a Greenhills compiler here?
(In reply to Jakub Jelinek from comment #32)
> I think best would be to ignore them altogether, especially if other
> compilers do that too.
I agree the behavior of clang (or previous G++) is more "rational". To make
things more "interesting":
> So in struct B { int : 0; double a, b; }; it will go into GPR and FPR
GCC trunk puts "a" into FPR, not GPR! So the "leading" zero-width bit-fields
are ignored (GCC does not think it's a part of any "64-bit chunk"), but other
zero-width bit-fields are accounted... This is just puzzling to me.
I'll make a patch to match the behavior of clang.