On Tue, Mar 22, 2011 at 03:26:21PM +0100, Benjamin Kosnik wrote:
> 
> Thanks for reporting this issue Adam. Don't hesitate to file bug
> reports in gcc bugzilla category libstdc++ when you find problems like
> this in the future!
> 
> > So, if Benjamin or other libstdc++ maintainers want it fixed for
> > 4.6, you want a patch like attached, plus some testcases for both
> > std::string and std::wstring.
> 
> I made a note to correct the testsuite deficiency.
> 
> > 2011-03-22  Jakub Jelinek  <ja...@redhat.com>
> > 
> >     * config/abi/pre/gnu.ver (GLIBCXX_3.4.15): Export _ZNSsC2EOSs
> >     and _ZNSbIwSt11char_traitsIwESaIwEEC2EOS2_.
> 
> Yes please. Thanks for the quickness on this Jakub.
> 
> For the record, I just did an audit of src/*inst.cc files mapped to
> include files with non-operator && usage to look for similar issues in
> other classes. (Non-exported symbols required for move semantics to
> function in other library areas.) I didn't find any. 

Here is updated patch with testcases, tested with unpatched libstdc++
where it failed to link and patched where it succeeded.
The testcases are copies of corresponding moveable.cc tests, just
using the new class inheriting from std::basic_string<char> resp.
std::basic_string<wchar_t> and with -fno-inline.
Is that ok?

2011-03-22  Jakub Jelinek  <ja...@redhat.com>

        * config/abi/pre/gnu.ver (GLIBCXX_3.4.15): Export _ZNSsC2EOSs
        and _ZNSbIwSt11char_traitsIwESaIwEEC2EOS2_.
        * config/abi/post/solaris2.8/baseline_symbols.txt: Regenerated.
        * config/abi/post/solaris2.8/sparcv9/baseline_symbols.txt: Likewise.
        * config/abi/post/s390x-linux-gnu/baseline_symbols.txt: Likewise.
        * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Likewise.
        * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt: Likewise.
        * config/abi/post/powerpc-linux-gnu/baseline_symbols.txt: Likewise.
        * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Likewise.
        * config/abi/post/powerpc64-linux-gnu/32/baseline_symbols.txt:
        Likewise.
        * config/abi/post/solaris2.10/baseline_symbols.txt: Likewise.
        * config/abi/post/solaris2.10/amd64/baseline_symbols.txt: Likewise.
        * config/abi/post/solaris2.10/sparcv9/baseline_symbols.txt: Likewise.
        * config/abi/post/i486-linux-gnu/baseline_symbols.txt: Likewise.
        * config/abi/post/i386-linux-gnu/baseline_symbols.txt: Likewise.
        * config/abi/post/s390-linux-gnu/baseline_symbols.txt: Likewise.
        * testsuite/21_strings/basic_string/cons/char/moveable2.cc: New test.
        * testsuite/21_strings/basic_string/cons/wchar_t/moveable2.cc: New
        test.

--- libstdc++-v3/config/abi/pre/gnu.ver.jj      2011-03-21 19:59:31.184763637 
+0100
+++ libstdc++-v3/config/abi/pre/gnu.ver 2011-03-22 14:26:41.769399466 +0100
@@ -1202,6 +1202,10 @@ GLIBCXX_3.4.15 {
     _ZNSbIwSt11char_traitsIwESaIwEE4backEv;
     _ZNKSbIwSt11char_traitsIwESaIwEE4backEv;
 
+    # string|wstring move contructor.
+    _ZNSsC2EOSs;
+    _ZNSbIwSt11char_traitsIwESaIwEEC2EOS2_;
+
     # basic_filebuf::_M_get_ext_pos
     _ZNSt13basic_filebufI[cw]St11char_traitsI[cw]EE14_M_get_ext_pos*;
 
--- libstdc++-v3/config/abi/post/solaris2.8/baseline_symbols.txt.jj     
2010-12-13 15:56:01.001251812 +0100
+++ libstdc++-v3/config/abi/post/solaris2.8/baseline_symbols.txt        
2011-03-22 14:32:12.433546348 +0100
@@ -815,6 +815,7 @@ FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1Ev
 
FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1IN9__gnu_cxx17__normal_iteratorIPwS2_EEEET_S8_RKS1_@@GLIBCXX_3.4
 FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1IPKwEET_S6_RKS1_@@GLIBCXX_3.4
 FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1IPwEET_S5_RKS1_@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2EOS2_@@GLIBCXX_3.4.15
 FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2EPKwRKS1_@@GLIBCXX_3.4
 FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2EPKwjRKS1_@@GLIBCXX_3.4
 FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2ERKS1_@@GLIBCXX_3.4
@@ -1043,6 +1044,7 @@ FUNC:_ZNSsC1Ev@@GLIBCXX_3.4
 FUNC:_ZNSsC1IN9__gnu_cxx17__normal_iteratorIPcSsEEEET_S4_RKSaIcE@@GLIBCXX_3.4
 FUNC:_ZNSsC1IPKcEET_S2_RKSaIcE@@GLIBCXX_3.4
 FUNC:_ZNSsC1IPcEET_S1_RKSaIcE@@GLIBCXX_3.4
+FUNC:_ZNSsC2EOSs@@GLIBCXX_3.4.15
 FUNC:_ZNSsC2EPKcRKSaIcE@@GLIBCXX_3.4
 FUNC:_ZNSsC2EPKcjRKSaIcE@@GLIBCXX_3.4
 FUNC:_ZNSsC2ERKSaIcE@@GLIBCXX_3.4
--- libstdc++-v3/config/abi/post/solaris2.8/sparcv9/baseline_symbols.txt.jj     
2011-03-21 20:01:16.355388654 +0100
+++ libstdc++-v3/config/abi/post/solaris2.8/sparcv9/baseline_symbols.txt        
2011-03-22 14:32:26.587402287 +0100
@@ -815,6 +815,7 @@ FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1Ev
 
FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1IN9__gnu_cxx17__normal_iteratorIPwS2_EEEET_S8_RKS1_@@GLIBCXX_3.4
 FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1IPKwEET_S6_RKS1_@@GLIBCXX_3.4
 FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1IPwEET_S5_RKS1_@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2EOS2_@@GLIBCXX_3.4.15
 FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2EPKwRKS1_@@GLIBCXX_3.4
 FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2EPKwmRKS1_@@GLIBCXX_3.4
 FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2ERKS1_@@GLIBCXX_3.4
@@ -1043,6 +1044,7 @@ FUNC:_ZNSsC1Ev@@GLIBCXX_3.4
 FUNC:_ZNSsC1IN9__gnu_cxx17__normal_iteratorIPcSsEEEET_S4_RKSaIcE@@GLIBCXX_3.4
 FUNC:_ZNSsC1IPKcEET_S2_RKSaIcE@@GLIBCXX_3.4
 FUNC:_ZNSsC1IPcEET_S1_RKSaIcE@@GLIBCXX_3.4
+FUNC:_ZNSsC2EOSs@@GLIBCXX_3.4.15
 FUNC:_ZNSsC2EPKcRKSaIcE@@GLIBCXX_3.4
 FUNC:_ZNSsC2EPKcmRKSaIcE@@GLIBCXX_3.4
 FUNC:_ZNSsC2ERKSaIcE@@GLIBCXX_3.4
--- libstdc++-v3/config/abi/post/s390x-linux-gnu/baseline_symbols.txt.jj        
2011-03-21 20:01:16.359546090 +0100
+++ libstdc++-v3/config/abi/post/s390x-linux-gnu/baseline_symbols.txt   
2011-03-22 14:32:37.942546488 +0100
@@ -978,6 +978,7 @@ FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1Ev
 
FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1IN9__gnu_cxx17__normal_iteratorIPwS2_EEEET_S8_RKS1_@@GLIBCXX_3.4
 FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1IPKwEET_S6_RKS1_@@GLIBCXX_3.4
 FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1IPwEET_S5_RKS1_@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2EOS2_@@GLIBCXX_3.4.15
 FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2EPKwRKS1_@@GLIBCXX_3.4
 FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2EPKwmRKS1_@@GLIBCXX_3.4
 FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2ERKS1_@@GLIBCXX_3.4
@@ -1216,6 +1217,7 @@ FUNC:_ZNSsC1Ev@@GLIBCXX_3.4
 FUNC:_ZNSsC1IN9__gnu_cxx17__normal_iteratorIPcSsEEEET_S4_RKSaIcE@@GLIBCXX_3.4
 FUNC:_ZNSsC1IPKcEET_S2_RKSaIcE@@GLIBCXX_3.4
 FUNC:_ZNSsC1IPcEET_S1_RKSaIcE@@GLIBCXX_3.4
+FUNC:_ZNSsC2EOSs@@GLIBCXX_3.4.15
 FUNC:_ZNSsC2EPKcRKSaIcE@@GLIBCXX_3.4
 FUNC:_ZNSsC2EPKcmRKSaIcE@@GLIBCXX_3.4
 FUNC:_ZNSsC2ERKSaIcE@@GLIBCXX_3.4
--- libstdc++-v3/config/abi/post/x86_64-linux-gnu/baseline_symbols.txt.jj       
2011-03-21 20:01:16.369545261 +0100
+++ libstdc++-v3/config/abi/post/x86_64-linux-gnu/baseline_symbols.txt  
2011-03-22 14:32:54.974546326 +0100
@@ -836,6 +836,7 @@ FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1Ev
 
FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1IN9__gnu_cxx17__normal_iteratorIPwS2_EEEET_S8_RKS1_@@GLIBCXX_3.4
 FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1IPKwEET_S6_RKS1_@@GLIBCXX_3.4
 FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1IPwEET_S5_RKS1_@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2EOS2_@@GLIBCXX_3.4.15
 FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2EPKwRKS1_@@GLIBCXX_3.4
 FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2EPKwmRKS1_@@GLIBCXX_3.4
 FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2ERKS1_@@GLIBCXX_3.4
@@ -1070,6 +1071,7 @@ FUNC:_ZNSsC1Ev@@GLIBCXX_3.4
 FUNC:_ZNSsC1IN9__gnu_cxx17__normal_iteratorIPcSsEEEET_S4_RKSaIcE@@GLIBCXX_3.4
 FUNC:_ZNSsC1IPKcEET_S2_RKSaIcE@@GLIBCXX_3.4
 FUNC:_ZNSsC1IPcEET_S1_RKSaIcE@@GLIBCXX_3.4
+FUNC:_ZNSsC2EOSs@@GLIBCXX_3.4.15
 FUNC:_ZNSsC2EPKcRKSaIcE@@GLIBCXX_3.4
 FUNC:_ZNSsC2EPKcmRKSaIcE@@GLIBCXX_3.4
 FUNC:_ZNSsC2ERKSaIcE@@GLIBCXX_3.4
--- libstdc++-v3/config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt.jj    
2011-03-21 20:01:16.364545549 +0100
+++ libstdc++-v3/config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt       
2011-03-22 14:33:04.707796477 +0100
@@ -836,6 +836,7 @@ FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1Ev
 
FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1IN9__gnu_cxx17__normal_iteratorIPwS2_EEEET_S8_RKS1_@@GLIBCXX_3.4
 FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1IPKwEET_S6_RKS1_@@GLIBCXX_3.4
 FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1IPwEET_S5_RKS1_@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2EOS2_@@GLIBCXX_3.4.15
 FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2EPKwRKS1_@@GLIBCXX_3.4
 FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2EPKwjRKS1_@@GLIBCXX_3.4
 FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2ERKS1_@@GLIBCXX_3.4
@@ -1070,6 +1071,7 @@ FUNC:_ZNSsC1Ev@@GLIBCXX_3.4
 FUNC:_ZNSsC1IN9__gnu_cxx17__normal_iteratorIPcSsEEEET_S4_RKSaIcE@@GLIBCXX_3.4
 FUNC:_ZNSsC1IPKcEET_S2_RKSaIcE@@GLIBCXX_3.4
 FUNC:_ZNSsC1IPcEET_S1_RKSaIcE@@GLIBCXX_3.4
+FUNC:_ZNSsC2EOSs@@GLIBCXX_3.4.15
 FUNC:_ZNSsC2EPKcRKSaIcE@@GLIBCXX_3.4
 FUNC:_ZNSsC2EPKcjRKSaIcE@@GLIBCXX_3.4
 FUNC:_ZNSsC2ERKSaIcE@@GLIBCXX_3.4
--- libstdc++-v3/config/abi/post/powerpc-linux-gnu/baseline_symbols.txt.jj      
2011-03-21 20:01:16.375430896 +0100
+++ libstdc++-v3/config/abi/post/powerpc-linux-gnu/baseline_symbols.txt 
2011-03-22 14:33:13.586546183 +0100
@@ -978,6 +978,7 @@ FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1Ev
 
FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1IN9__gnu_cxx17__normal_iteratorIPwS2_EEEET_S8_RKS1_@@GLIBCXX_3.4
 FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1IPKwEET_S6_RKS1_@@GLIBCXX_3.4
 FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1IPwEET_S5_RKS1_@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2EOS2_@@GLIBCXX_3.4.15
 FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2EPKwRKS1_@@GLIBCXX_3.4
 FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2EPKwjRKS1_@@GLIBCXX_3.4
 FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2ERKS1_@@GLIBCXX_3.4
@@ -1216,6 +1217,7 @@ FUNC:_ZNSsC1Ev@@GLIBCXX_3.4
 FUNC:_ZNSsC1IN9__gnu_cxx17__normal_iteratorIPcSsEEEET_S4_RKSaIcE@@GLIBCXX_3.4
 FUNC:_ZNSsC1IPKcEET_S2_RKSaIcE@@GLIBCXX_3.4
 FUNC:_ZNSsC1IPcEET_S1_RKSaIcE@@GLIBCXX_3.4
+FUNC:_ZNSsC2EOSs@@GLIBCXX_3.4.15
 FUNC:_ZNSsC2EPKcRKSaIcE@@GLIBCXX_3.4
 FUNC:_ZNSsC2EPKcjRKSaIcE@@GLIBCXX_3.4
 FUNC:_ZNSsC2ERKSaIcE@@GLIBCXX_3.4
--- libstdc++-v3/config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt.jj    
2011-03-21 20:01:16.386428160 +0100
+++ libstdc++-v3/config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt       
2011-03-22 14:33:21.905546032 +0100
@@ -978,6 +978,7 @@ FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1Ev
 
FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1IN9__gnu_cxx17__normal_iteratorIPwS2_EEEET_S8_RKS1_@@GLIBCXX_3.4
 FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1IPKwEET_S6_RKS1_@@GLIBCXX_3.4
 FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1IPwEET_S5_RKS1_@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2EOS2_@@GLIBCXX_3.4.15
 FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2EPKwRKS1_@@GLIBCXX_3.4
 FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2EPKwmRKS1_@@GLIBCXX_3.4
 FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2ERKS1_@@GLIBCXX_3.4
@@ -1216,6 +1217,7 @@ FUNC:_ZNSsC1Ev@@GLIBCXX_3.4
 FUNC:_ZNSsC1IN9__gnu_cxx17__normal_iteratorIPcSsEEEET_S4_RKSaIcE@@GLIBCXX_3.4
 FUNC:_ZNSsC1IPKcEET_S2_RKSaIcE@@GLIBCXX_3.4
 FUNC:_ZNSsC1IPcEET_S1_RKSaIcE@@GLIBCXX_3.4
+FUNC:_ZNSsC2EOSs@@GLIBCXX_3.4.15
 FUNC:_ZNSsC2EPKcRKSaIcE@@GLIBCXX_3.4
 FUNC:_ZNSsC2EPKcmRKSaIcE@@GLIBCXX_3.4
 FUNC:_ZNSsC2ERKSaIcE@@GLIBCXX_3.4
--- libstdc++-v3/config/abi/post/powerpc64-linux-gnu/32/baseline_symbols.txt.jj 
2011-03-21 20:01:16.380546242 +0100
+++ libstdc++-v3/config/abi/post/powerpc64-linux-gnu/32/baseline_symbols.txt    
2011-03-22 14:33:31.082796227 +0100
@@ -978,6 +978,7 @@ FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1Ev
 
FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1IN9__gnu_cxx17__normal_iteratorIPwS2_EEEET_S8_RKS1_@@GLIBCXX_3.4
 FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1IPKwEET_S6_RKS1_@@GLIBCXX_3.4
 FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1IPwEET_S5_RKS1_@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2EOS2_@@GLIBCXX_3.4.15
 FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2EPKwRKS1_@@GLIBCXX_3.4
 FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2EPKwjRKS1_@@GLIBCXX_3.4
 FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2ERKS1_@@GLIBCXX_3.4
@@ -1216,6 +1217,7 @@ FUNC:_ZNSsC1Ev@@GLIBCXX_3.4
 FUNC:_ZNSsC1IN9__gnu_cxx17__normal_iteratorIPcSsEEEET_S4_RKSaIcE@@GLIBCXX_3.4
 FUNC:_ZNSsC1IPKcEET_S2_RKSaIcE@@GLIBCXX_3.4
 FUNC:_ZNSsC1IPcEET_S1_RKSaIcE@@GLIBCXX_3.4
+FUNC:_ZNSsC2EOSs@@GLIBCXX_3.4.15
 FUNC:_ZNSsC2EPKcRKSaIcE@@GLIBCXX_3.4
 FUNC:_ZNSsC2EPKcjRKSaIcE@@GLIBCXX_3.4
 FUNC:_ZNSsC2ERKSaIcE@@GLIBCXX_3.4
--- libstdc++-v3/config/abi/post/solaris2.10/baseline_symbols.txt.jj    
2010-12-13 15:56:01.123248763 +0100
+++ libstdc++-v3/config/abi/post/solaris2.10/baseline_symbols.txt       
2011-03-22 14:33:38.879796360 +0100
@@ -816,6 +816,7 @@ FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1Ev
 
FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1IN9__gnu_cxx17__normal_iteratorIPwS2_EEEET_S8_RKS1_@@GLIBCXX_3.4
 FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1IPKwEET_S6_RKS1_@@GLIBCXX_3.4
 FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1IPwEET_S5_RKS1_@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2EOS2_@@GLIBCXX_3.4.15
 FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2EPKwRKS1_@@GLIBCXX_3.4
 FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2EPKwjRKS1_@@GLIBCXX_3.4
 FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2ERKS1_@@GLIBCXX_3.4
@@ -1044,6 +1045,7 @@ FUNC:_ZNSsC1Ev@@GLIBCXX_3.4
 FUNC:_ZNSsC1IN9__gnu_cxx17__normal_iteratorIPcSsEEEET_S4_RKSaIcE@@GLIBCXX_3.4
 FUNC:_ZNSsC1IPKcEET_S2_RKSaIcE@@GLIBCXX_3.4
 FUNC:_ZNSsC1IPcEET_S1_RKSaIcE@@GLIBCXX_3.4
+FUNC:_ZNSsC2EOSs@@GLIBCXX_3.4.15
 FUNC:_ZNSsC2EPKcRKSaIcE@@GLIBCXX_3.4
 FUNC:_ZNSsC2EPKcjRKSaIcE@@GLIBCXX_3.4
 FUNC:_ZNSsC2ERKSaIcE@@GLIBCXX_3.4
--- libstdc++-v3/config/abi/post/solaris2.10/amd64/baseline_symbols.txt.jj      
2011-03-21 20:01:16.390546286 +0100
+++ libstdc++-v3/config/abi/post/solaris2.10/amd64/baseline_symbols.txt 
2011-03-22 14:33:47.659545927 +0100
@@ -816,6 +816,7 @@ FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1Ev
 
FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1IN9__gnu_cxx17__normal_iteratorIPwS2_EEEET_S8_RKS1_@@GLIBCXX_3.4
 FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1IPKwEET_S6_RKS1_@@GLIBCXX_3.4
 FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1IPwEET_S5_RKS1_@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2EOS2_@@GLIBCXX_3.4.15
 FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2EPKwRKS1_@@GLIBCXX_3.4
 FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2EPKwmRKS1_@@GLIBCXX_3.4
 FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2ERKS1_@@GLIBCXX_3.4
@@ -1044,6 +1045,7 @@ FUNC:_ZNSsC1Ev@@GLIBCXX_3.4
 FUNC:_ZNSsC1IN9__gnu_cxx17__normal_iteratorIPcSsEEEET_S4_RKSaIcE@@GLIBCXX_3.4
 FUNC:_ZNSsC1IPKcEET_S2_RKSaIcE@@GLIBCXX_3.4
 FUNC:_ZNSsC1IPcEET_S1_RKSaIcE@@GLIBCXX_3.4
+FUNC:_ZNSsC2EOSs@@GLIBCXX_3.4.15
 FUNC:_ZNSsC2EPKcRKSaIcE@@GLIBCXX_3.4
 FUNC:_ZNSsC2EPKcmRKSaIcE@@GLIBCXX_3.4
 FUNC:_ZNSsC2ERKSaIcE@@GLIBCXX_3.4
--- libstdc++-v3/config/abi/post/solaris2.10/sparcv9/baseline_symbols.txt.jj    
2011-03-21 20:01:16.394546032 +0100
+++ libstdc++-v3/config/abi/post/solaris2.10/sparcv9/baseline_symbols.txt       
2011-03-22 14:33:57.393796468 +0100
@@ -816,6 +816,7 @@ FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1Ev
 
FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1IN9__gnu_cxx17__normal_iteratorIPwS2_EEEET_S8_RKS1_@@GLIBCXX_3.4
 FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1IPKwEET_S6_RKS1_@@GLIBCXX_3.4
 FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1IPwEET_S5_RKS1_@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2EOS2_@@GLIBCXX_3.4.15
 FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2EPKwRKS1_@@GLIBCXX_3.4
 FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2EPKwmRKS1_@@GLIBCXX_3.4
 FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2ERKS1_@@GLIBCXX_3.4
@@ -1044,6 +1045,7 @@ FUNC:_ZNSsC1Ev@@GLIBCXX_3.4
 FUNC:_ZNSsC1IN9__gnu_cxx17__normal_iteratorIPcSsEEEET_S4_RKSaIcE@@GLIBCXX_3.4
 FUNC:_ZNSsC1IPKcEET_S2_RKSaIcE@@GLIBCXX_3.4
 FUNC:_ZNSsC1IPcEET_S1_RKSaIcE@@GLIBCXX_3.4
+FUNC:_ZNSsC2EOSs@@GLIBCXX_3.4.15
 FUNC:_ZNSsC2EPKcRKSaIcE@@GLIBCXX_3.4
 FUNC:_ZNSsC2EPKcmRKSaIcE@@GLIBCXX_3.4
 FUNC:_ZNSsC2ERKSaIcE@@GLIBCXX_3.4
--- libstdc++-v3/config/abi/post/i486-linux-gnu/baseline_symbols.txt.jj 
2011-03-21 20:01:16.399547139 +0100
+++ libstdc++-v3/config/abi/post/i486-linux-gnu/baseline_symbols.txt    
2011-03-22 14:34:07.314546078 +0100
@@ -836,6 +836,7 @@ FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1Ev
 
FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1IN9__gnu_cxx17__normal_iteratorIPwS2_EEEET_S8_RKS1_@@GLIBCXX_3.4
 FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1IPKwEET_S6_RKS1_@@GLIBCXX_3.4
 FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1IPwEET_S5_RKS1_@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2EOS2_@@GLIBCXX_3.4.15
 FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2EPKwRKS1_@@GLIBCXX_3.4
 FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2EPKwjRKS1_@@GLIBCXX_3.4
 FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2ERKS1_@@GLIBCXX_3.4
@@ -1070,6 +1071,7 @@ FUNC:_ZNSsC1Ev@@GLIBCXX_3.4
 FUNC:_ZNSsC1IN9__gnu_cxx17__normal_iteratorIPcSsEEEET_S4_RKSaIcE@@GLIBCXX_3.4
 FUNC:_ZNSsC1IPKcEET_S2_RKSaIcE@@GLIBCXX_3.4
 FUNC:_ZNSsC1IPcEET_S1_RKSaIcE@@GLIBCXX_3.4
+FUNC:_ZNSsC2EOSs@@GLIBCXX_3.4.15
 FUNC:_ZNSsC2EPKcRKSaIcE@@GLIBCXX_3.4
 FUNC:_ZNSsC2EPKcjRKSaIcE@@GLIBCXX_3.4
 FUNC:_ZNSsC2ERKSaIcE@@GLIBCXX_3.4
--- libstdc++-v3/config/abi/post/i386-linux-gnu/baseline_symbols.txt.jj 
2011-03-21 20:01:16.404545759 +0100
+++ libstdc++-v3/config/abi/post/i386-linux-gnu/baseline_symbols.txt    
2011-03-22 14:34:20.787547857 +0100
@@ -836,6 +836,7 @@ FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1Ev
 
FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1IN9__gnu_cxx17__normal_iteratorIPwS2_EEEET_S8_RKS1_@@GLIBCXX_3.4
 FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1IPKwEET_S6_RKS1_@@GLIBCXX_3.4
 FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1IPwEET_S5_RKS1_@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2EOS2_@@GLIBCXX_3.4.15
 FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2EPKwRKS1_@@GLIBCXX_3.4
 FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2EPKwjRKS1_@@GLIBCXX_3.4
 FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2ERKS1_@@GLIBCXX_3.4
@@ -1070,6 +1071,7 @@ FUNC:_ZNSsC1Ev@@GLIBCXX_3.4
 FUNC:_ZNSsC1IN9__gnu_cxx17__normal_iteratorIPcSsEEEET_S4_RKSaIcE@@GLIBCXX_3.4
 FUNC:_ZNSsC1IPKcEET_S2_RKSaIcE@@GLIBCXX_3.4
 FUNC:_ZNSsC1IPcEET_S1_RKSaIcE@@GLIBCXX_3.4
+FUNC:_ZNSsC2EOSs@@GLIBCXX_3.4.15
 FUNC:_ZNSsC2EPKcRKSaIcE@@GLIBCXX_3.4
 FUNC:_ZNSsC2EPKcjRKSaIcE@@GLIBCXX_3.4
 FUNC:_ZNSsC2ERKSaIcE@@GLIBCXX_3.4
--- libstdc++-v3/config/abi/post/s390-linux-gnu/baseline_symbols.txt.jj 
2011-03-21 20:01:16.409545303 +0100
+++ libstdc++-v3/config/abi/post/s390-linux-gnu/baseline_symbols.txt    
2011-03-22 14:34:29.850796323 +0100
@@ -978,6 +978,7 @@ FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1Ev
 
FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1IN9__gnu_cxx17__normal_iteratorIPwS2_EEEET_S8_RKS1_@@GLIBCXX_3.4
 FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1IPKwEET_S6_RKS1_@@GLIBCXX_3.4
 FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1IPwEET_S5_RKS1_@@GLIBCXX_3.4
+FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2EOS2_@@GLIBCXX_3.4.15
 FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2EPKwRKS1_@@GLIBCXX_3.4
 FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2EPKwmRKS1_@@GLIBCXX_3.4
 FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2ERKS1_@@GLIBCXX_3.4
@@ -1216,6 +1217,7 @@ FUNC:_ZNSsC1Ev@@GLIBCXX_3.4
 FUNC:_ZNSsC1IN9__gnu_cxx17__normal_iteratorIPcSsEEEET_S4_RKSaIcE@@GLIBCXX_3.4
 FUNC:_ZNSsC1IPKcEET_S2_RKSaIcE@@GLIBCXX_3.4
 FUNC:_ZNSsC1IPcEET_S1_RKSaIcE@@GLIBCXX_3.4
+FUNC:_ZNSsC2EOSs@@GLIBCXX_3.4.15
 FUNC:_ZNSsC2EPKcRKSaIcE@@GLIBCXX_3.4
 FUNC:_ZNSsC2EPKcmRKSaIcE@@GLIBCXX_3.4
 FUNC:_ZNSsC2ERKSaIcE@@GLIBCXX_3.4
--- libstdc++-v3/testsuite/21_strings/basic_string/cons/char/moveable2.cc.jj    
2011-03-22 15:26:56.000000000 +0100
+++ libstdc++-v3/testsuite/21_strings/basic_string/cons/char/moveable2.cc       
2011-03-22 15:27:35.000000000 +0100
@@ -0,0 +1,54 @@
+// { dg-options "-std=gnu++0x -fno-inline" }
+// { dg-require-string-conversions "" }
+
+// Copyright (C) 2010, 2011 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 3, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING3.  If not see
+// <http://www.gnu.org/licenses/>.
+
+// NOTE: This makes use of the fact that we know how moveable
+// is implemented on string (via swap). If the implementation changed
+// this test may begin to fail.
+
+#include <string>
+#include <utility>
+#include <testsuite_hooks.h>
+
+class tstring : public std::basic_string<char>
+{
+public:
+  tstring() : std::basic_string<char>() {}
+  tstring(tstring&& s) : std::basic_string<char>(std::move(s)) {}
+};
+
+void test01()
+{
+  bool test __attribute__((unused)) = true;
+
+  tstring a, b;
+  a.push_back('1');
+  b = std::move(a);
+  VERIFY( b.size() == 1 && b[0] == '1' && a.size() == 0 );
+
+  tstring c(std::move(b));
+  VERIFY( c.size() == 1 && c[0] == '1' );
+  VERIFY( b.size() == 0 );
+}
+
+int main()
+{
+  test01();
+  return 0;
+}
--- libstdc++-v3/testsuite/21_strings/basic_string/cons/wchar_t/moveable2.cc.jj 
2011-03-22 15:27:22.000000000 +0100
+++ libstdc++-v3/testsuite/21_strings/basic_string/cons/wchar_t/moveable2.cc    
2011-03-22 15:28:17.000000000 +0100
@@ -0,0 +1,54 @@
+// { dg-options "-std=gnu++0x -fno-inline" }
+// { dg-require-string-conversions "" }
+
+// Copyright (C) 2010, 2011 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 3, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License along
+// with this library; see the file COPYING3.  If not see
+// <http://www.gnu.org/licenses/>.
+
+// NOTE: This makes use of the fact that we know how moveable
+// is implemented on string (via swap). If the implementation changed
+// this test may begin to fail.
+
+#include <string>
+#include <utility>
+#include <testsuite_hooks.h>
+
+class twstring : public std::basic_string<wchar_t>
+{
+public:
+  twstring() : std::basic_string<wchar_t>() {}
+  twstring(twstring&& s) : std::basic_string<wchar_t>(std::move(s)) {}
+};
+
+void test01()
+{
+  bool test __attribute__((unused)) = true;
+
+  twstring a, b;
+  a.push_back(L'1');
+  b = std::move(a);
+  VERIFY( b.size() == 1 && b[0] == L'1' && a.size() == 0 );
+
+  twstring c(std::move(b));
+  VERIFY( c.size() == 1 && c[0] == L'1' );
+  VERIFY( b.size() == 0 );
+}
+
+int main()
+{
+  test01();
+  return 0;
+}


        Jakub

Reply via email to