rs6000: Add psabi diagnostic for C++ zero-width bit field ABI change

Previously zero-width bit fields were removed from structs, so that otherwise
homogeneous aggregates were treated as such and	passed in FPRs and VSRs.
This was incorrect behavior per	the ELFv2 ABI.	Now that these fields are no
longer being removed, we generate the correct parameter	passing	code.  Alert
the unwary user	in the rare cases where	this behavior changes.

2021-09-23  Bill Schmidt  <wschmidt@linux.ibm.com>

gcc/
	PR target/102024
	* config/rs6000/rs6000-call.c (rs6000_aggregate_candidate): Detect
	zero-width bit fields and return indicator.
	(rs6000_discover_homogeneous_aggregate): Diagnose when the
	presence of a zero-width bit field changes parameter passing in
	GCC 12.

gcc/testsuite/
	PR target/102024
	* g++.target/powerpc/pr102024.C: New.
2 files changed