Fix broken shared_ptr test
authorJonathan Wakely <jwakely@redhat.com>
Fri, 24 May 2019 13:00:26 +0000 (14:00 +0100)
committerJonathan Wakely <redi@gcc.gnu.org>
Fri, 24 May 2019 13:00:26 +0000 (14:00 +0100)
* testsuite/20_util/shared_ptr/cons/alias-rval.cc: Fix test.
* testsuite/20_util/shared_ptr/cons/alias.cc: Remove unused function.

From-SVN: r271603

libstdc++-v3/ChangeLog
libstdc++-v3/testsuite/20_util/shared_ptr/cons/alias-rval.cc
libstdc++-v3/testsuite/20_util/shared_ptr/cons/alias.cc

index 90043c55f1a256791c1f14499a30221917854d2f..0a83bd3252ca35cd6290212bde238d984d377505 100644 (file)
@@ -1,3 +1,8 @@
+2019-05-24  Jonathan Wakely  <jwakely@redhat.com>
+
+       * testsuite/20_util/shared_ptr/cons/alias-rval.cc: Fix test.
+       * testsuite/20_util/shared_ptr/cons/alias.cc: Remove unused function.
+
 2019-05-23  Jonathan Wakely  <jwakely@redhat.com>
 
        * testsuite/20_util/function_objects/invoke/1.cc: Move C++17-specific
index 205587cde66e32b52980bec97d2647b79e4c14c1..f0b0d9cf9ffd3a88ebf16b826ae2ca79161389c7 100644 (file)
@@ -37,8 +37,6 @@ struct B : A
   A a;
 };
 
-void deletefunc(A* p) { delete p; }
-
 // 20.6.6.2.1 shared_ptr constructors [util.smartptr.shared.const]
 
 // Aliasing constructors
@@ -63,29 +61,33 @@ test01()
 void
 test02()
 {
-  std::shared_ptr<A> a(new A);
+  A* ptr = new A;
+  ptr->i = 100;
+  std::shared_ptr<A> a(ptr);
   std::shared_ptr<int> i1(std::move(a), &a->i);
   VERIFY( i1.use_count() == 1 );
-  VERIFY( i1 != nullptr );
+  VERIFY( *i1 == 100 );
   VERIFY( a.use_count() == 0 );
   VERIFY( a == nullptr );
 
   std::shared_ptr<int> i2(i1);
   VERIFY( i2.use_count() == 2 );
-  VERIFY( i2.get() == &a->i );
+  VERIFY( i2.get() == &ptr->i );
 }
 
 void
 test03()
 {
   std::shared_ptr<B> b1(new B);
+  b1->i = 100;
+  b1->a.i = 200;
   std::shared_ptr<B> b2(b1);
   std::shared_ptr<A> a1(std::move(b1), b1.get());
-  std::shared_ptr<A> a2(b2, &b2->a);
+  std::shared_ptr<A> a2(std::move(b2), &b2->a);
+  VERIFY( a1.use_count() == 2 );
   VERIFY( a2.use_count() == 2 );
-  VERIFY( a1 != nullptr );
-  VERIFY( a2 != nullptr );
-  VERIFY( a1 != a2 );
+  VERIFY( a1->i == 100 );
+  VERIFY( a2->i == 200 );
   VERIFY( b1.use_count() == 0 );
   VERIFY( b2.use_count() == 0 );
   VERIFY( b1 == nullptr );
index 134a05894a24e545b999ef68c28224dc332bbc2a..8dbb7af638c75fe082593bd80933bfb076c0a151 100644 (file)
@@ -36,8 +36,6 @@ struct B : A
   A a;
 };
 
-void deletefunc(A* p) { delete p; }
-
 // 20.6.6.2.1 shared_ptr constructors [util.smartptr.shared.const]
 
 // Aliasing constructors