[v3] more abi_tagging for DR130

Benjamin De Kosnik bkoz@redhat.com
Mon Jun 10 23:23:00 GMT 2013


Some of the DR130-mandated signature changes for C++11 require the use
of abi_tag to properly distinguish from C++98 calls of the same
function, but with a different return type.

I've audited libstdc++ for C++98/C++11 API differences that are
signature changes that mangle the same. C++11 to C++14 changes of this
type will be mangled with abi_tag(cxx14), but I didn't notice any. 

I put in reproducers for the fail, but these are only active on ia32 at
the moment. I've found testing a specific multilib in libstdc++ (ie
-m32 on x76_64) more difficult than imagined, so am just simplifying to
one psABI that demonstrates the issue. No doubt there are others. I'm
not quite sure how to abstract this....

Similar to the complex::real/imag use, there are separate test cases to
confirm the newly mangled versions. I've noticed that these newly
mangled names using abi_tag cannot be presently demangled: see PR57581.

Since this is impacting C++98/C++11 compat, I intend to put this on 4.8
branch after a couple of days mellowing on trunk.

tested x86_64/linux
tested i686/linux

-benjamin
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 20130610-1.patch
Type: text/x-patch
Size: 47658 bytes
Desc: not available
URL: <http://gcc.gnu.org/pipermail/libstdc++/attachments/20130610/67b615ae/attachment.bin>


More information about the Libstdc++ mailing list