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 s...@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); _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits