From 94b2dd0998230c758abd92c99d3700c971f7a31a Mon Sep 17 00:00:00 2001 From: Howard Hinnant Date: Sun, 22 Aug 2010 00:59:46 +0000 Subject: Fixing whitespace problems llvm-svn: 111767 --- .../util.smartptr.shared.mod/swap.pass.cpp | 105 ++++++++++++++++++++- 1 file changed, 104 insertions(+), 1 deletion(-) (limited to 'libcxx/test/utilities/memory/util.smartptr/util.smartptr.shared/util.smartptr.shared.mod/swap.pass.cpp') diff --git a/libcxx/test/utilities/memory/util.smartptr/util.smartptr.shared/util.smartptr.shared.mod/swap.pass.cpp b/libcxx/test/utilities/memory/util.smartptr/util.smartptr.shared/util.smartptr.shared.mod/swap.pass.cpp index 6f75444e632..8b0ebf7473f 100644 --- a/libcxx/test/utilities/memory/util.smartptr/util.smartptr.shared/util.smartptr.shared.mod/swap.pass.cpp +++ b/libcxx/test/utilities/memory/util.smartptr/util.smartptr.shared/util.smartptr.shared.mod/swap.pass.cpp @@ -1 +1,104 @@ -//===----------------------------------------------------------------------===// // // The LLVM Compiler Infrastructure // // This file is distributed under the University of Illinois Open Source // License. See LICENSE.TXT for details. // //===----------------------------------------------------------------------===// // // shared_ptr // void swap(shared_ptr& r); #include #include struct A { static int count; A() {++count;} A(const A&) {++count;} ~A() {--count;} }; int A::count = 0; int main() { { A* ptr1 = new A; A* ptr2 = new A; std::shared_ptr p1(ptr1); { std::shared_ptr p2(ptr2); p1.swap(p2); assert(p1.use_count() == 1); assert(p1.get() == ptr2); assert(p2.use_count() == 1); assert(p2.get() == ptr1); assert(A::count == 2); } assert(p1.use_count() == 1); assert(p1.get() == ptr2); assert(A::count == 1); } assert(A::count == 0); { A* ptr1 = new A; A* ptr2 = 0; std::shared_ptr p1(ptr1); { std::shared_ptr p2; p1.swap(p2); assert(p1.use_count() == 0); assert(p1.get() == ptr2); assert(p2.use_count() == 1); assert(p2.get() == ptr1); assert(A::count == 1); } assert(p1.use_count() == 0); assert(p1.get() == ptr2); assert(A::count == 0); } assert(A::count == 0); { A* ptr1 = 0; A* ptr2 = new A; std::shared_ptr p1; { std::shared_ptr p2(ptr2); p1.swap(p2); assert(p1.use_count() == 1); assert(p1.get() == ptr2); assert(p2.use_count() == 0); assert(p2.get() == ptr1); assert(A::count == 1); } assert(p1.use_count() == 1); assert(p1.get() == ptr2); assert(A::count == 1); } assert(A::count == 0); { A* ptr1 = 0; A* ptr2 = 0; std::shared_ptr p1; { std::shared_ptr p2; p1.swap(p2); assert(p1.use_count() == 0); assert(p1.get() == ptr2); assert(p2.use_count() == 0); assert(p2.get() == ptr1); assert(A::count == 0); } assert(p1.use_count() == 0); assert(p1.get() == ptr2); assert(A::count == 0); } assert(A::count == 0); } \ No newline at end of file +//===----------------------------------------------------------------------===// +// +// The LLVM Compiler Infrastructure +// +// This file is distributed under the University of Illinois Open Source +// License. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// + +// + +// shared_ptr + +// void swap(shared_ptr& r); + +#include +#include + +struct A +{ + static int count; + + A() {++count;} + A(const A&) {++count;} + ~A() {--count;} +}; + +int A::count = 0; + +int main() +{ + { + A* ptr1 = new A; + A* ptr2 = new A; + std::shared_ptr p1(ptr1); + { + std::shared_ptr p2(ptr2); + p1.swap(p2); + assert(p1.use_count() == 1); + assert(p1.get() == ptr2); + assert(p2.use_count() == 1); + assert(p2.get() == ptr1); + assert(A::count == 2); + } + assert(p1.use_count() == 1); + assert(p1.get() == ptr2); + assert(A::count == 1); + } + assert(A::count == 0); + { + A* ptr1 = new A; + A* ptr2 = 0; + std::shared_ptr p1(ptr1); + { + std::shared_ptr p2; + p1.swap(p2); + assert(p1.use_count() == 0); + assert(p1.get() == ptr2); + assert(p2.use_count() == 1); + assert(p2.get() == ptr1); + assert(A::count == 1); + } + assert(p1.use_count() == 0); + assert(p1.get() == ptr2); + assert(A::count == 0); + } + assert(A::count == 0); + { + A* ptr1 = 0; + A* ptr2 = new A; + std::shared_ptr p1; + { + std::shared_ptr p2(ptr2); + p1.swap(p2); + assert(p1.use_count() == 1); + assert(p1.get() == ptr2); + assert(p2.use_count() == 0); + assert(p2.get() == ptr1); + assert(A::count == 1); + } + assert(p1.use_count() == 1); + assert(p1.get() == ptr2); + assert(A::count == 1); + } + assert(A::count == 0); + { + A* ptr1 = 0; + A* ptr2 = 0; + std::shared_ptr p1; + { + std::shared_ptr p2; + p1.swap(p2); + assert(p1.use_count() == 0); + assert(p1.get() == ptr2); + assert(p2.use_count() == 0); + assert(p2.get() == ptr1); + assert(A::count == 0); + } + assert(p1.use_count() == 0); + assert(p1.get() == ptr2); + assert(A::count == 0); + } + assert(A::count == 0); +} -- cgit v1.2.3