[libcxx] r276587 - Fix unique_ptr.runtime tests for null inputs. Patch from STL at microsoft.com

Eric Fiselier via cfe-commits cfe-commits at lists.llvm.org
Sun Jul 24 16:48:26 PDT 2016


Author: ericwf
Date: Sun Jul 24 18:48:26 2016
New Revision: 276587

URL: http://llvm.org/viewvc/llvm-project?rev=276587&view=rev
Log:
Fix unique_ptr.runtime tests for null inputs. Patch from STL at microsoft.com

Modified:
    libcxx/trunk/test/std/utilities/memory/unique.ptr/unique.ptr.runtime/null_ctor.pass.cpp
    libcxx/trunk/test/std/utilities/memory/unique.ptr/unique.ptr.runtime/unique.ptr.runtime.ctor/pointer_deleter01.pass.cpp

Modified: libcxx/trunk/test/std/utilities/memory/unique.ptr/unique.ptr.runtime/null_ctor.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/utilities/memory/unique.ptr/unique.ptr.runtime/null_ctor.pass.cpp?rev=276587&r1=276586&r2=276587&view=diff
==============================================================================
--- libcxx/trunk/test/std/utilities/memory/unique.ptr/unique.ptr.runtime/null_ctor.pass.cpp (original)
+++ libcxx/trunk/test/std/utilities/memory/unique.ptr/unique.ptr.runtime/null_ctor.pass.cpp Sun Jul 24 18:48:26 2016
@@ -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);
 }

Modified: libcxx/trunk/test/std/utilities/memory/unique.ptr/unique.ptr.runtime/unique.ptr.runtime.ctor/pointer_deleter01.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/utilities/memory/unique.ptr/unique.ptr.runtime/unique.ptr.runtime.ctor/pointer_deleter01.pass.cpp?rev=276587&r1=276586&r2=276587&view=diff
==============================================================================
--- libcxx/trunk/test/std/utilities/memory/unique.ptr/unique.ptr.runtime/unique.ptr.runtime.ctor/pointer_deleter01.pass.cpp (original)
+++ libcxx/trunk/test/std/utilities/memory/unique.ptr/unique.ptr.runtime/unique.ptr.runtime.ctor/pointer_deleter01.pass.cpp Sun Jul 24 18:48:26 2016
@@ -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);




More information about the cfe-commits mailing list