From 409191e46895a8df5aec6a84a1484e7b33f05a16 Mon Sep 17 00:00:00 2001 From: redi Date: Fri, 26 Aug 2016 10:41:37 +0000 Subject: Add new std::basic_string constructor (LWG 2583) * config/abi/pre/gnu.ver (GLIBCXX_3.4, GLIBCXX_3.4.21): Use more precise patterns for basic_string constructors. (GLIBCXX_3.4.23): Export new constructors. * doc/xml/manual/intro.xml: Document LWG 2583 status. * doc/html/*: Regenerate. * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI] (basic_string(const basic_string&, size_type, const Alloc&)): Add new constructor for LWG 2583. (basic_string(const basic_string&, size_type, size_type)): Remove default argument. [!_GLIBCXX_USE_CXX11_ABI]: Likewise. * include/bits/basic_string.tcc [!_GLIBCXX_USE_CXX11_ABI]: Define it. * testsuite/21_strings/basic_string/cons/char/8.cc: New test. * testsuite/21_strings/basic_string/cons/wchar_t/8.cc: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@239773 138bc75d-0d04-0410-961f-82ee72b054a4 --- libstdc++-v3/config/abi/pre/gnu.ver | 34 +++++++++++++++++++++++++++++++--- 1 file changed, 31 insertions(+), 3 deletions(-) (limited to 'libstdc++-v3/config') diff --git a/libstdc++-v3/config/abi/pre/gnu.ver b/libstdc++-v3/config/abi/pre/gnu.ver index f51c6f961b0..0ab4bb10b35 100644 --- a/libstdc++-v3/config/abi/pre/gnu.ver +++ b/libstdc++-v3/config/abi/pre/gnu.ver @@ -206,7 +206,14 @@ GLIBCXX_3.4 { # std::string # 'y' here and below represents 'unsigned long long' # where it is used for size_type on LLP64 platforms. - _ZNSsC[12][EI][PRjmvyN]*; + _ZNSsC[12]EPKc*; + _ZNSsC[12]ERKSaIcE; + _ZNSsC[12]ERKSs; +# _ZNSsC[12]ERKSs[jmy]RKSaIcE; + _ZNSsC[12]ERKSs[jmy][jmy]*; + _ZNSsC[12]E[jmy]cRKSaIcE; + _ZNSsC[12]Ev; + _ZNSsC[12]I[PN]*; _ZNSsD*; _ZNSs[0-58-9]a*; _ZNSs5beginEv; @@ -267,7 +274,13 @@ GLIBCXX_3.4 { _ZNKSs4copyEPc[jmy][jmy]; # std::wstring - _ZNSbIwSt11char_traitsIwESaIwEEC[12][EI][PRjmvyN]*; + _ZNSbIwSt11char_traitsIwESaIwEEC[12]EPKw*; + _ZNSbIwSt11char_traitsIwESaIwEEC[12]ERKS[12]_; +# _ZNSbIwSt11char_traitsIwESaIwEEC[12]ERKS2_mRKS1_; + _ZNSbIwSt11char_traitsIwESaIwEEC[12]ERKS2_[jmy][jmy]*; + _ZNSbIwSt11char_traitsIwESaIwEEC[12]E[jmy]wRKS1_; + _ZNSbIwSt11char_traitsIwESaIwEEC[12]Ev; + _ZNSbIwSt11char_traitsIwESaIwEEC[12]I[PN]*; _ZNSbIwSt11char_traitsIwESaIwEED*; _ZNSbIwSt11char_traitsIwESaIwEE[0-58-9]a*; _ZNSbIwSt11char_traitsIwESaIwEE5beginEv; @@ -1683,7 +1696,17 @@ GLIBCXX_3.4.21 { _ZNSt7__cxx1112basic_stringI[cw]St11char_traitsI[cw]ESaI[cw]EE12_M*; _ZNSt7__cxx1112basic_stringI[cw]St11char_traitsI[cw]ESaI[cw]EE1[3-9]*; _ZNSt7__cxx1112basic_stringI[cw]St11char_traitsI[cw]ESaI[cw]EE[2-9]*; - _ZNSt7__cxx1112basic_stringI[cw]St11char_traitsI[cw]ESaI[cw]EE[CDaip]*; + _ZNSt7__cxx1112basic_stringI[cw]St11char_traitsI[cw]ESaI[cw]EEC[12]EOS4_*; + _ZNSt7__cxx1112basic_stringI[cw]St11char_traitsI[cw]ESaI[cw]EEC[12]EPK*; + _ZNSt7__cxx1112basic_stringI[cw]St11char_traitsI[cw]ESaI[cw]EEC[12]ERKS[34]_; + _ZNSt7__cxx1112basic_stringI[cw]St11char_traitsI[cw]ESaI[cw]EEC[12]ERKS4_RKS3_; +# _ZNSt7__cxx1112basic_stringI[cw]St11char_traitsI[cw]ESaI[cw]EEC[12]ERKS4_[jmy]RKS3_; + _ZNSt7__cxx1112basic_stringI[cw]St11char_traitsI[cw]ESaI[cw]EEC[12]ERKS4_[jmy][jmy]*; + _ZNSt7__cxx1112basic_stringI[cw]St11char_traitsI[cw]ESaI[cw]EEC[12]ESt16*; + _ZNSt7__cxx1112basic_stringI[cw]St11char_traitsI[cw]ESaI[cw]EEC[12]E[jmy][cw]RKS3_; + _ZNSt7__cxx1112basic_stringI[cw]St11char_traitsI[cw]ESaI[cw]EEC[12]Ev; + _ZNSt7__cxx1112basic_stringI[cw]St11char_traitsI[cw]ESaI[cw]EEC[12]I[PN]*; + _ZNSt7__cxx1112basic_stringI[cw]St11char_traitsI[cw]ESaI[cw]EE[Daip]*; _ZNKSt7__cxx1112basic_string*; # operator+ for ABI-tagged std::basic_string @@ -1919,6 +1942,11 @@ GLIBCXX_3.4.23 { # basic_string::_Alloc_hider::_Alloc_hider(C*, A&&) _ZNSt7__cxx1112basic_stringI[cw]St11char_traitsI[cw]ESaI[cw]EE12_Alloc_hiderC[12]EP[cw]OS3_; + # basic_string::basic_string(const basic_string&, size_type, const A&) + _ZNSt7__cxx1112basic_stringI[cw]St11char_traitsI[cw]ESaI[cw]EEC[12]ERKS4_[jmy]RKS3_; + _ZNSsC[12]ERKSs[jmy]RKSaIcE; + _ZNSbIwSt11char_traitsIwESaIwEEC[12]ERKS2_mRKS1_; + } GLIBCXX_3.4.22; # Symbols in the support library (libsupc++) have their own tag. -- cgit v1.2.1