]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
re PR libstdc++/46821 ([C++0x] swapping empty classes)
authorPaolo Carlini <paolo.carlini@oracle.com>
Mon, 6 Dec 2010 14:44:38 +0000 (14:44 +0000)
committerPaolo Carlini <paolo@gcc.gnu.org>
Mon, 6 Dec 2010 14:44:38 +0000 (14:44 +0000)
2010-12-06  Paolo Carlini  <paolo.carlini@oracle.com>

PR libstdc++/46821
* include/std/tuple (_Head_base<,, true>::_M_swap_impl):
Swap the empty bases.
(_Head_base<,, false>::_M_swap_impl): Minor tweak.
* testsuite/20_util/weak_ptr/comparison/cmp_neg.cc: Adjust dg-error
line number.

From-SVN: r167497

libstdc++-v3/ChangeLog
libstdc++-v3/include/std/tuple
libstdc++-v3/testsuite/20_util/weak_ptr/comparison/cmp_neg.cc

index 7a5b7f76864625e415a8eeeefe5263dbcf68e447..7deae75a3914a74850aaf1ccb707f7ba54a7f27f 100644 (file)
@@ -1,3 +1,12 @@
+2010-12-06  Paolo Carlini  <paolo.carlini@oracle.com>
+
+       PR libstdc++/46821
+       * include/std/tuple (_Head_base<,, true>::_M_swap_impl):
+       Swap the empty bases.
+       (_Head_base<,, false>::_M_swap_impl): Minor tweak.
+       * testsuite/20_util/weak_ptr/comparison/cmp_neg.cc: Adjust dg-error
+       line number.
+
 2010-12-06  Dave Korn  <dave.korn.cygwin@gmail.com>
 
        PR target/40125
@@ -54,7 +63,7 @@
        * testsuite/23_containers/deque/cons/2.cc: Fix to explicitly invoke
        the copy constructor with or without C++0x mode.
        * testsuite/23_containers/vector/cons/4.cc: Likewise.
-                       
+
 2010-12-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
 
        * scripts/extract_symvers.pl: New file.
index df9ef1d1694b81f4fccd6ccd733ec1c10c59ed07..87dbcb78df6b9bf483b2402ed3bf5cb3c9cb4c2d 100644 (file)
@@ -78,7 +78,11 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
       const _Head& _M_head() const { return *this; }
     
       void 
-      _M_swap_impl(_Head&) { /* no-op */ }
+      _M_swap_impl(_Head& __h)
+      {
+       using std::swap;
+       swap(__h, _M_head());
+      }
     };
 
   template<std::size_t _Idx, typename _Head>
@@ -101,7 +105,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
       _M_swap_impl(_Head& __h)
       { 
        using std::swap;
-       swap(__h, _M_head_impl);
+       swap(__h, _M_head());
       }
 
       _Head _M_head_impl; 
index 7f5b109b61effa4d2e2f1c6976c735d871c8eaf6..044a7259e186eb19bbf73a62f3490c4f81fddc50 100644 (file)
@@ -44,7 +44,7 @@ main()
 // { dg-warning "note" "" { target *-*-* } 350 }
 // { dg-warning "note" "" { target *-*-* } 1082 }
 // { dg-warning "note" "" { target *-*-* } 465 }
-// { dg-warning "note" "" { target *-*-* } 581 }
+// { dg-warning "note" "" { target *-*-* } 585 }
 // { dg-warning "note" "" { target *-*-* } 1027 }
 // { dg-warning "note" "" { target *-*-* } 340 }
 // { dg-warning "note" "" { target *-*-* } 290 }