STL_MSFT created this revision.
STL_MSFT added reviewers: EricWF, mclow.lists.
STL_MSFT added a subscriber: cfe-commits.

Follow LWG 2520 "N4089 broke initializing unique_ptr<T[]> from a nullptr".

This library issue permits nullptr, but not 0 or NULL (which can be 0). In 
null_ctor.pass.cpp, replace 0 with nullptr. In pointer_deleter01.pass.cpp, 
which is testing both NULL and nullptr, mark the NULL test as libcxx-specific.

http://reviews.llvm.org/D22014

Files:
  test/std/utilities/memory/unique.ptr/unique.ptr.runtime/null_ctor.pass.cpp
  
test/std/utilities/memory/unique.ptr/unique.ptr.runtime/unique.ptr.runtime.ctor/pointer_deleter01.pass.cpp

Index: 
test/std/utilities/memory/unique.ptr/unique.ptr.runtime/unique.ptr.runtime.ctor/pointer_deleter01.pass.cpp
===================================================================
--- 
test/std/utilities/memory/unique.ptr/unique.ptr.runtime/unique.ptr.runtime.ctor/pointer_deleter01.pass.cpp
+++ 
test/std/utilities/memory/unique.ptr/unique.ptr.runtime/unique.ptr.runtime.ctor/pointer_deleter01.pass.cpp
@@ -42,7 +42,9 @@
     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);
Index: 
test/std/utilities/memory/unique.ptr/unique.ptr.runtime/null_ctor.pass.cpp
===================================================================
--- test/std/utilities/memory/unique.ptr/unique.ptr.runtime/null_ctor.pass.cpp
+++ test/std/utilities/memory/unique.ptr/unique.ptr.runtime/null_ctor.pass.cpp
@@ -36,7 +36,7 @@
     Deleter d;
     assert(d.state() == 0);
     {
-    std::unique_ptr<int[], Deleter&> p(0, d);
+    std::unique_ptr<int[], Deleter&> p(nullptr, d);
     assert(p.get() == 0);
     assert(&p.get_deleter() == &d);
     }


Index: test/std/utilities/memory/unique.ptr/unique.ptr.runtime/unique.ptr.runtime.ctor/pointer_deleter01.pass.cpp
===================================================================
--- test/std/utilities/memory/unique.ptr/unique.ptr.runtime/unique.ptr.runtime.ctor/pointer_deleter01.pass.cpp
+++ test/std/utilities/memory/unique.ptr/unique.ptr.runtime/unique.ptr.runtime.ctor/pointer_deleter01.pass.cpp
@@ -42,7 +42,9 @@
     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);
Index: test/std/utilities/memory/unique.ptr/unique.ptr.runtime/null_ctor.pass.cpp
===================================================================
--- test/std/utilities/memory/unique.ptr/unique.ptr.runtime/null_ctor.pass.cpp
+++ test/std/utilities/memory/unique.ptr/unique.ptr.runtime/null_ctor.pass.cpp
@@ -36,7 +36,7 @@
     Deleter d;
     assert(d.state() == 0);
     {
-    std::unique_ptr<int[], Deleter&> p(0, d);
+    std::unique_ptr<int[], Deleter&> p(nullptr, d);
     assert(p.get() == 0);
     assert(&p.get_deleter() == &d);
     }
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to