On 22/06/18 14:51 +0200, Rainer Orth wrote:
Hi Jonathan,

The SSO basic_string has a non-standard insert(iterator, initializer_list)
overload, from a C++0x draft. This adds the correct overload, while also
preserving the old one so that the old symbol is still exported from the
library.

The COW basic_string doesn't have any of the C++11 changes to the insert
overloads (they all still have non-const iterator parameters and the
ones that should return an iterator still return void). This doesn't
make any change to the COW string.

        PR libstdc++/83328
        * acinclude.m4 (libtool_VERSION): Bump to 6:26:0.
        * config/abi/pre/gnu.ver: Add GLIBCXX_3.4.26 and export new symbol.
        * configure: Regenerate.
        * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI]
        (basic_string::insert(const_iterator, initializer_list<C>)): Add.
        [_GLIBCXX_USE_CXX11_ABI && !_GLIBCXX_DEFINING_STRING_INSTANTIATIONS]
        (basic_string::insert(iterator, initializer_list<C>)): Suppress
        definition.
        * include/debug/string (basic_string::insert(iterator, C)): Change
        first parameter to const_iterator.
        (basic_string::insert(iterator, size_type, C)): Likewise. Change
        return type to iterator.
        (basic_string::insert(iterator, InputIterator, InputIterator)):
        Likewise.
        (basic_string::insert(iterator, initializer_list<C>)): Change first
        parameter to const_iterator and return type to iterator.
        * src/c++11/string-inst.cc: Extend comment.
        * testsuite/21_strings/basic_string/modifiers/insert/char/83328.cc:
        New.
        * testsuite/21_strings/basic_string/modifiers/insert/wchar_t/83328.cc:
        New.
        * testsuite/util/testsuite_abi.cc: Add new symbol version.

Tested x86_64-linux, committed to trunk.

it seems a couple of pattners are a bit too tight now in gnu.ver: this
caused a couple of failures on 32-bit Solaris and subsequent tests
failing to link due to symbols now hidden:

Oops, it's the usual mangling difference for size_t, I'll fix it
today.


Reply via email to