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.
Here is the updated patch. I updated -WpsABI to warn empty
record which are passed in a variable argument list or aren't the last
arguments. They are triggered in:
/export/build/gnu/gcc-x32/build-x86_64-linux/prev-x86_64-pc-linux-gnu/libstdc++-v3/include/bits/hashtable.h:1507:7:
note: the ABI of passing empty record has changed in GCC 6
>....
Oof. Well, at least it's all C++11 stuff, and GCC 5 still defaulted to
C++98...
Jason