> On Dec 10, 2015, at 4:15 PM, John McCall <rjmcc...@apple.com> wrote: >> On Dec 10, 2015, at 4:11 PM, Nelson, Clark <clark.nel...@intel.com> wrote: >> >> It has come to my attention that GCC and clang generate incompatible code >> for passing an argument of an empty class type. >> >> clang seems to completely ignore arguments and parameters of empty class >> type -- which seems to make a certain amount of sense. >> >> OTOH, as far as I understand it, GCC effectively treats an empty class >> equivalently to a class containing a single member with some character >> type -- which also seems pretty reasonable. >> >> Should the C++ ABI come down on one side or the other of this question? >> >> This is really the sort of question a psABI should settle. But of course >> the C language doesn't actually support a structure with no members, so >> it's not too surprising if a psABI doesn't nail down what should happen >> for this. > > It’s valid as a C extension in GCC. If there are platforms where we use a > different rule from GCC, we should come to some understanding with them.
Sorry, that was me wearing my “clang” hat. The C++ ABI answer is that, because of this: > Because of the GCC extension, C++ can’t really use different rules from C. this has to be resolved in the psABI, or at least in the system compiler’s filling-in of the psABI’s details. John. _______________________________________________ cxx-abi-dev mailing list cxx-abi-dev@codesourcery.com http://sourcerytools.com/cgi-bin/mailman/listinfo/cxx-abi-dev