[cxx-abi-dev] Passing an empty class by value
John McCall
rjmccall at apple.com
Fri Dec 11 00:15:30 UTC 2015
> On Dec 10, 2015, at 4:11 PM, Nelson, Clark <clark.nelson at 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.
Because of the GCC extension, C++ can’t really use different rules from C.
John.
>
> --
> Clark Nelson Chair, PL22.16 (ANSI C++ standard committee)
> Intel Corporation Chair, SG10 (C++ SG for feature-testing)
> clark.nelson at intel.com Chair, CPLEX (C SG for parallel language extensions)
> _______________________________________________
> cxx-abi-dev mailing list
> cxx-abi-dev at codesourcery.com
> http://sourcerytools.com/cgi-bin/mailman/listinfo/cxx-abi-dev
More information about the cxx-abi-dev
mailing list