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

--- Comment #22 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
So, to sum up:
aarch64, arm, x86-64 and riscv (last one since GCC 10 already) do ignore zero
width bit-fields in argument/return value passing decisions and so have a
C ABI incompatibility from earlier GCC versions.  There is -Wpsabi diagnostics
on affected argument/return value passing.
powerpc64le and s390x do not ignore them, so have a C++ ABI incompatibility
from earlier GCC versions.  There is -Wpsabi diagnostics on affected
argument/return value passing.
alpha, arc, avr, bfin, bpf, c6x, cr16, cris, csky, epiphany, fr30, frv, ft32,
gcn, h8300, i386 (32-bit), lm32, m32c, m32r, m68k, mcore, microblaze, mmix,
mn10300, moxie, msp430, nds32, nios2, nvptx, or1k, pa, pdp11, powerpc (except
for powerpc64le), pru, rl78, rx, sh, sparc, stormy16, tilegx, tilepro, v850,
vax, visium and xtensa are not affected.
ia64 and iq2000 are unknown.
mips seems to be affected but nothing has been done about it, which means that
right now if it is affected, it is not ignoring the zero width bit-fields
without -Wpsabi diagnostics.
Except for the not affected list and maybe unknown list, there was also an ABI 
change between G++ 4.4 and earlier and 4.5 and later.

Reply via email to