From f8e7a54be82fad657f4f5157c130e06a8ea26ad9 Mon Sep 17 00:00:00 2001 From: Eric Fiselier Date: Wed, 7 Sep 2016 02:38:48 +0000 Subject: [PATCH] Improve constexpr tests for std::any llvm-svn: 280777 --- .../utilities/any/any.class/any.cons/default.pass.cpp | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/libcxx/test/std/utilities/any/any.class/any.cons/default.pass.cpp b/libcxx/test/std/utilities/any/any.class/any.cons/default.pass.cpp index 9f9b826..ed7a948 100644 --- a/libcxx/test/std/utilities/any/any.class/any.cons/default.pass.cpp +++ b/libcxx/test/std/utilities/any/any.class/any.cons/default.pass.cpp @@ -21,15 +21,6 @@ #include "any_helpers.h" #include "count_new.hpp" -#if TEST_HAS_BUILTIN_IDENTIFIER(__has_constant_initializer) -// std::any must have a constexpr default constructor, but it's a non-literal -// type so we can't create a constexpr variable. This tests that we actually -// get 'constant initialization'. -std::any a; -static_assert(__has_constant_initializer(a), - "any must be constant initializable"); -#endif - int main() { using std::any; @@ -40,6 +31,15 @@ int main() ); } { + struct TestConstexpr : public std::any { + constexpr TestConstexpr() : std::any() {} + }; +#ifdef _LIBCPP_SAFE_STATIC + _LIBCPP_SAFE_STATIC static std::any a; + ((void)a); +#endif + } + { DisableAllocationGuard g; ((void)g); any const a; assertEmpty(a); -- 2.7.4