On Sat, Dec 12, 2015 at 09:51:23AM -0500, Jason Merrill wrote: > On 12/11/2015 06:52 PM, H.J. Lu wrote: > >On Thu, Dec 10, 2015 at 3:24 AM, Richard Biener > ><richard.guent...@gmail.com> wrote: > >>On Wed, Dec 9, 2015 at 10:31 PM, Markus Trippelsdorf > >><mar...@trippelsdorf.de> wrote: > >>>On 2015.12.09 at 10:53 -0800, H.J. Lu wrote: > >>>> > >>>>Empty C++ class is a corner case which isn't covered in psABI nor C++ ABI. > >>>>There is no mention of "empty record" in GCC documentation. But there are > >>>>plenty of "empty class" in gcc/cp. This change affects all targets. C++ > >>>>ABI > >>>>should specify how it should be passed. > >>> > >>>There is a C++ ABI mailinglist, where you could discuss this issue: > >>>http://sourcerytools.com/cgi-bin/mailman/listinfo/cxx-abi-dev > >> > >>Yep. As long as the ABI doesn't state how to pass those I'd rather _not_ > >>change > >>GCCs way. > > > >It is agreed that GCC is wrong on this: > > > >http://sourcerytools.com/pipermail/cxx-abi-dev/2015-December/002876.html > > Yes, I think this is just a (nasty) bug on some GCC targets.
Well, the argument in that thread is weird, because C and C++ empty structs are different, so it isn't surprising they are passed differently. C++ makes those sizeof == 1, while C has them sizeof == 0. So I rather think clang should change rather than GCC. Jakub