Index: gcc/libstdc++-v3/testsuite/20_util/shared_ptr/cons/copy.cc |
diff --git a/gcc/libstdc++-v3/testsuite/20_util/shared_ptr/cons/copy.cc b/gcc/libstdc++-v3/testsuite/20_util/shared_ptr/cons/copy.cc |
deleted file mode 100644 |
index c5dcffea0bb5e5ac4d0844825a038d9620966c58..0000000000000000000000000000000000000000 |
--- a/gcc/libstdc++-v3/testsuite/20_util/shared_ptr/cons/copy.cc |
+++ /dev/null |
@@ -1,136 +0,0 @@ |
-// { dg-options "-std=gnu++0x" } |
- |
-// Copyright (C) 2005, 2006, 2007, 2009 Free Software Foundation |
-// |
-// 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/>. |
- |
-// 20.6.6.2 Template class shared_ptr [util.smartptr.shared] |
- |
-#include <memory> |
-#include <testsuite_hooks.h> |
- |
-struct A |
-{ |
- A() { ++ctor_count; } |
- virtual ~A() { ++dtor_count; } |
- static long ctor_count; |
- static long dtor_count; |
-}; |
-long A::ctor_count = 0; |
-long A::dtor_count = 0; |
- |
-struct B : A |
-{ |
- B() { ++ctor_count; } |
- virtual ~B() { ++dtor_count; } |
- static long ctor_count; |
- static long dtor_count; |
-}; |
-long B::ctor_count = 0; |
-long B::dtor_count = 0; |
- |
-void deleter(A* p) { delete p; } |
- |
-struct reset_count_struct |
-{ |
- ~reset_count_struct() |
- { |
- A::ctor_count = 0; |
- A::dtor_count = 0; |
- B::ctor_count = 0; |
- B::dtor_count = 0; |
- } |
-}; |
- |
-// 20.6.6.2.1 shared_ptr constructors [util.smartptr.shared.const] |
- |
-// Copy construction |
-int test01() |
-{ |
- reset_count_struct __attribute__((unused)) reset; |
- bool test __attribute__((unused)) = true; |
- |
- std::shared_ptr<A> a1; |
- std::shared_ptr<A> a2(a1); |
- VERIFY( a2.use_count() == 0 ); |
- VERIFY( A::ctor_count == 0 ); |
- VERIFY( A::dtor_count == 0 ); |
- VERIFY( B::ctor_count == 0 ); |
- VERIFY( B::dtor_count == 0 ); |
- |
- return 0; |
-} |
- |
-int |
-test02() |
-{ |
- reset_count_struct __attribute__((unused)) reset; |
- bool test __attribute__((unused)) = true; |
- |
- std::shared_ptr<A> a1(new A); |
- std::shared_ptr<A> a2(a1); |
- VERIFY( a2.use_count() == 2 ); |
- VERIFY( A::ctor_count == 1 ); |
- VERIFY( A::dtor_count == 0 ); |
- VERIFY( B::ctor_count == 0 ); |
- VERIFY( B::dtor_count == 0 ); |
- |
- return 0; |
-} |
- |
-int |
-test03() |
-{ |
- reset_count_struct __attribute__((unused)) reset; |
- bool test __attribute__((unused)) = true; |
- |
- std::shared_ptr<B> b(new B); |
- std::shared_ptr<A> a(b); |
- VERIFY( a.use_count() == 2 ); |
- VERIFY( A::ctor_count == 1 ); |
- VERIFY( A::dtor_count == 0 ); |
- VERIFY( B::ctor_count == 1 ); |
- VERIFY( B::dtor_count == 0 ); |
- |
- return 0; |
-} |
- |
-int |
-test04() |
-{ |
- reset_count_struct __attribute__((unused)) reset; |
- bool test __attribute__((unused)) = true; |
- |
- std::shared_ptr<B> b(new B, &deleter); |
- std::shared_ptr<A> a(b); |
- VERIFY( a.use_count() == 2 ); |
- VERIFY( A::ctor_count == 1 ); |
- VERIFY( A::dtor_count == 0 ); |
- VERIFY( B::ctor_count == 1 ); |
- VERIFY( B::dtor_count == 0 ); |
- |
- return 0; |
-} |
- |
-int |
-main() |
-{ |
- test01(); |
- test02(); |
- test03(); |
- test04(); |
- return 0; |
-} |