Passing nothing at all is makes the most sense for a vigorous C++ support. Passing a 1-byte that nothing can possibly read and makes sense of is an unfortunate sub-optimal codegen.
On Thu, Dec 10, 2015 at 11:05 PM, Marc Glisse <[email protected]> wrote: > On Fri, 11 Dec 2015, Nelson, Clark 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? >> > > See A-5 in https://mentorembedded.github.io/cxx-abi/cxx-closed.html for > some historical discussion. > > 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. >> > > Last time I raised this, psABI was also suggested: > http://sourcerytools.com/pipermail/cxx-abi-dev/2013-November/002627.html > > -- > Marc Glisse > > _______________________________________________ > cxx-abi-dev mailing list > [email protected] > http://sourcerytools.com/cgi-bin/mailman/listinfo/cxx-abi-dev >
_______________________________________________ cxx-abi-dev mailing list [email protected] http://sourcerytools.com/cgi-bin/mailman/listinfo/cxx-abi-dev
