diff options
Diffstat (limited to 'libcxx/test/std')
-rw-r--r-- | libcxx/test/std/utilities/memory/unique.ptr/unique.ptr.runtime/unique.ptr.runtime.ctor/default.pass.cpp (renamed from libcxx/test/std/utilities/memory/unique.ptr/unique.ptr.runtime/unique.ptr.runtime.ctor/default01.pass.cpp) | 31 | ||||
-rw-r--r-- | libcxx/test/std/utilities/memory/unique.ptr/unique.ptr.runtime/unique.ptr.runtime.ctor/default_allows_incomplete.pass.cpp (renamed from libcxx/test/std/utilities/memory/unique.ptr/unique.ptr.runtime/unique.ptr.runtime.ctor/default02.pass.cpp) | 63 | ||||
-rw-r--r-- | libcxx/test/std/utilities/memory/unique.ptr/unique.ptr.single/unique.ptr.single.ctor/default.pass.cpp | 5 |
3 files changed, 50 insertions, 49 deletions
diff --git a/libcxx/test/std/utilities/memory/unique.ptr/unique.ptr.runtime/unique.ptr.runtime.ctor/default01.pass.cpp b/libcxx/test/std/utilities/memory/unique.ptr/unique.ptr.runtime/unique.ptr.runtime.ctor/default.pass.cpp index 0cc54382b98..ff59b3b9f80 100644 --- a/libcxx/test/std/utilities/memory/unique.ptr/unique.ptr.runtime/unique.ptr.runtime.ctor/default01.pass.cpp +++ b/libcxx/test/std/utilities/memory/unique.ptr/unique.ptr.runtime/unique.ptr.runtime.ctor/default.pass.cpp @@ -17,31 +17,34 @@ #include <memory> #include <cassert> +#include "test_macros.h" -class Deleter -{ - int state_; +#if defined(_LIBCPP_VERSION) +_LIBCPP_SAFE_STATIC std::unique_ptr<int[]> global_static_unique_ptr; +#endif - Deleter(Deleter&); - Deleter& operator=(Deleter&); +class Deleter { + int state_; + + Deleter(Deleter&); + Deleter& operator=(Deleter&); public: - Deleter() : state_(5) {} + Deleter() : state_(5) {} - int state() const {return state_;} + int state() const { return state_; } - void operator()(void*) {} + void operator()(void*) {} }; -int main() -{ - { +int main() { + { std::unique_ptr<int[]> p; assert(p.get() == 0); - } - { + } + { std::unique_ptr<int[], Deleter> p; assert(p.get() == 0); assert(p.get_deleter().state() == 5); - } + } } diff --git a/libcxx/test/std/utilities/memory/unique.ptr/unique.ptr.runtime/unique.ptr.runtime.ctor/default02.pass.cpp b/libcxx/test/std/utilities/memory/unique.ptr/unique.ptr.runtime/unique.ptr.runtime.ctor/default_allows_incomplete.pass.cpp index 3ded41c419c..f54baac5bb0 100644 --- a/libcxx/test/std/utilities/memory/unique.ptr/unique.ptr.runtime/unique.ptr.runtime.ctor/default02.pass.cpp +++ b/libcxx/test/std/utilities/memory/unique.ptr/unique.ptr.runtime/unique.ptr.runtime.ctor/default_allows_incomplete.pass.cpp @@ -20,65 +20,58 @@ struct A; -class Deleter -{ - int state_; +class Deleter { + int state_; - Deleter(Deleter&); - Deleter& operator=(Deleter&); + Deleter(Deleter&); + Deleter& operator=(Deleter&); public: - Deleter() : state_(5) {} + Deleter() : state_(5) {} - int state() const {return state_;} + int state() const { return state_; } - void operator()(A* p); + void operator()(A* p); }; void check(int i); -template <class D = std::default_delete<A> > -struct B -{ - std::unique_ptr<A[], D> a_; - B(); - ~B(); +template <class D = std::default_delete<A>> +struct B { + std::unique_ptr<A[], D> a_; + B(); + ~B(); - A* get() const {return a_.get();} - D& get_deleter() {return a_.get_deleter();} + A* get() const { return a_.get(); } + D& get_deleter() { return a_.get_deleter(); } }; -int main() -{ - { +int main() { + { B<> s; assert(s.get() == 0); - } - check(0); - { + } + check(0); + { B<Deleter> s; assert(s.get() == 0); assert(s.get_deleter().state() == 5); - } - check(0); + } + check(0); } -struct A -{ - static int count; - A() {++count;} - A(const A&) {++count;} - ~A() {--count;} +struct A { + static int count; + A() { ++count; } + A(const A&) { ++count; } + ~A() { --count; } }; int A::count = 0; -void Deleter::operator()(A* p) {delete p;} +void Deleter::operator()(A* p) { delete p; } -void check(int i) -{ - assert(A::count == i); -} +void check(int i) { assert(A::count == i); } template <class D> B<D>::B() {} diff --git a/libcxx/test/std/utilities/memory/unique.ptr/unique.ptr.single/unique.ptr.single.ctor/default.pass.cpp b/libcxx/test/std/utilities/memory/unique.ptr/unique.ptr.single/unique.ptr.single.ctor/default.pass.cpp index 569daae7da0..6508d9360e5 100644 --- a/libcxx/test/std/utilities/memory/unique.ptr/unique.ptr.single/unique.ptr.single.ctor/default.pass.cpp +++ b/libcxx/test/std/utilities/memory/unique.ptr/unique.ptr.single/unique.ptr.single.ctor/default.pass.cpp @@ -25,9 +25,14 @@ #include <memory> #include <cassert> +#include "test_macros.h" #include "deleter_types.h" +#if defined(_LIBCPP_VERSION) +_LIBCPP_SAFE_STATIC std::unique_ptr<int> global_static_unique_ptr; +#endif + struct IncompleteT; void checkNumIncompleteTypeAlive(int i); |