summaryrefslogtreecommitdiffstats
path: root/libcxx/test/std
diff options
context:
space:
mode:
Diffstat (limited to 'libcxx/test/std')
-rw-r--r--libcxx/test/std/utilities/memory/unique.ptr/unique.ptr.runtime/null_ctor.pass.cpp11
-rw-r--r--libcxx/test/std/utilities/memory/unique.ptr/unique.ptr.runtime/unique.ptr.runtime.ctor/pointer_deleter01.pass.cpp2
2 files changed, 13 insertions, 0 deletions
diff --git a/libcxx/test/std/utilities/memory/unique.ptr/unique.ptr.runtime/null_ctor.pass.cpp b/libcxx/test/std/utilities/memory/unique.ptr/unique.ptr.runtime/null_ctor.pass.cpp
index 6d752b9951a..50389978e8a 100644
--- a/libcxx/test/std/utilities/memory/unique.ptr/unique.ptr.runtime/null_ctor.pass.cpp
+++ b/libcxx/test/std/utilities/memory/unique.ptr/unique.ptr.runtime/null_ctor.pass.cpp
@@ -16,6 +16,8 @@
#include <memory>
#include <cassert>
+#include "test_macros.h"
+
class Deleter
{
int state_;
@@ -36,9 +38,18 @@ int main()
Deleter d;
assert(d.state() == 0);
{
+ std::unique_ptr<int[], Deleter&> p(nullptr, d);
+ assert(p.get() == 0);
+ assert(&p.get_deleter() == &d);
+ }
+#if defined(_LIBCPP_VERSION)
+ {
+ // The standard only requires the constructor accept nullptr, but libc++
+ // also supports the literal 0.
std::unique_ptr<int[], Deleter&> p(0, d);
assert(p.get() == 0);
assert(&p.get_deleter() == &d);
}
+#endif
assert(d.state() == 0);
}
diff --git a/libcxx/test/std/utilities/memory/unique.ptr/unique.ptr.runtime/unique.ptr.runtime.ctor/pointer_deleter01.pass.cpp b/libcxx/test/std/utilities/memory/unique.ptr/unique.ptr.runtime/unique.ptr.runtime.ctor/pointer_deleter01.pass.cpp
index 2b0b5f0d945..3de556563f9 100644
--- a/libcxx/test/std/utilities/memory/unique.ptr/unique.ptr.runtime/unique.ptr.runtime.ctor/pointer_deleter01.pass.cpp
+++ b/libcxx/test/std/utilities/memory/unique.ptr/unique.ptr.runtime/unique.ptr.runtime.ctor/pointer_deleter01.pass.cpp
@@ -42,7 +42,9 @@ int main()
assert(A::count == 0);
{ // LWG#2520 says that nullptr is a valid input as well as null
+#ifdef _LIBCPP_VERSION
std::unique_ptr<A[], Deleter<A[]> > s1(NULL, Deleter<A[]>());
+#endif
std::unique_ptr<A[], Deleter<A[]> > s2(nullptr, Deleter<A[]>());
}
assert(A::count == 0);
OpenPOWER on IntegriCloud