From db4d7e96ca525e981800d22df8328f48dead5366 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 git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@280777 91177308-0d34-0410-b5e6-96231b3b80d8 --- .../any/any.class/any.cons/default.pass.cpp | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/test/std/utilities/any/any.class/any.cons/default.pass.cpp b/test/std/utilities/any/any.class/any.cons/default.pass.cpp index 9f9b826b6..ed7a948e0 100644 --- a/test/std/utilities/any/any.class/any.cons/default.pass.cpp +++ b/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; @@ -39,6 +30,15 @@ int main() , "Must be default constructible" ); } + { + 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;