From: Eric Fiselier Date: Wed, 7 Sep 2016 02:38:48 +0000 (+0000) Subject: Improve constexpr tests for std::any X-Git-Tag: llvmorg-4.0.0-rc1~10494 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=f8e7a54be82fad657f4f5157c130e06a8ea26ad9;p=platform%2Fupstream%2Fllvm.git Improve constexpr tests for std::any llvm-svn: 280777 --- 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);