From b7c0a4065e328846d55b13d6e677b679d31cfb57 Mon Sep 17 00:00:00 2001 From: Nikolas Klauser Date: Wed, 9 Nov 2022 21:01:42 +0100 Subject: [PATCH] [libc++] Add FTM for constexpr vector It looks like we forgot to set the FTM when adding constexpr vector support. Reviewed By: ldionne, #libc Spies: libcxx-commits, arichardson Differential Revision: https://reviews.llvm.org/D137729 --- libcxx/docs/FeatureTestMacroTable.rst | 2 +- libcxx/include/version | 2 +- .../vector.version.compile.pass.cpp | 32 ++++++------------- .../version.version.compile.pass.cpp | 32 ++++++------------- .../generate_feature_test_macro_components.py | 1 - 5 files changed, 22 insertions(+), 47 deletions(-) diff --git a/libcxx/docs/FeatureTestMacroTable.rst b/libcxx/docs/FeatureTestMacroTable.rst index e4a180235604..5ba070e7a1ea 100644 --- a/libcxx/docs/FeatureTestMacroTable.rst +++ b/libcxx/docs/FeatureTestMacroTable.rst @@ -222,7 +222,7 @@ Status ------------------------------------------------- ----------------- ``__cpp_lib_constexpr_utility`` ``201811L`` ------------------------------------------------- ----------------- - ``__cpp_lib_constexpr_vector`` *unimplemented* + ``__cpp_lib_constexpr_vector`` ``201907L`` ------------------------------------------------- ----------------- ``__cpp_lib_coroutine`` ``201902L`` ------------------------------------------------- ----------------- diff --git a/libcxx/include/version b/libcxx/include/version index 3e1b6344f5f6..5e2b8cd43a99 100644 --- a/libcxx/include/version +++ b/libcxx/include/version @@ -326,7 +326,7 @@ __cpp_lib_void_t 201411L # define __cpp_lib_constexpr_string_view 201811L # define __cpp_lib_constexpr_tuple 201811L # define __cpp_lib_constexpr_utility 201811L -// # define __cpp_lib_constexpr_vector 201907L +# define __cpp_lib_constexpr_vector 201907L # define __cpp_lib_coroutine 201902L # if _LIBCPP_STD_VER > 17 && defined(__cpp_impl_destroying_delete) && __cpp_impl_destroying_delete >= 201806L # define __cpp_lib_destroying_delete 201806L diff --git a/libcxx/test/std/language.support/support.limits/support.limits.general/vector.version.compile.pass.cpp b/libcxx/test/std/language.support/support.limits/support.limits.general/vector.version.compile.pass.cpp index c762e93b8112..2d9b6bfe870b 100644 --- a/libcxx/test/std/language.support/support.limits/support.limits.general/vector.version.compile.pass.cpp +++ b/libcxx/test/std/language.support/support.limits/support.limits.general/vector.version.compile.pass.cpp @@ -123,17 +123,11 @@ # error "__cpp_lib_allocator_traits_is_always_equal should have the value 201411L in c++20" # endif -# if !defined(_LIBCPP_VERSION) -# ifndef __cpp_lib_constexpr_vector -# error "__cpp_lib_constexpr_vector should be defined in c++20" -# endif -# if __cpp_lib_constexpr_vector != 201907L -# error "__cpp_lib_constexpr_vector should have the value 201907L in c++20" -# endif -# else // _LIBCPP_VERSION -# ifdef __cpp_lib_constexpr_vector -# error "__cpp_lib_constexpr_vector should not be defined because it is unimplemented in libc++!" -# endif +# ifndef __cpp_lib_constexpr_vector +# error "__cpp_lib_constexpr_vector should be defined in c++20" +# endif +# if __cpp_lib_constexpr_vector != 201907L +# error "__cpp_lib_constexpr_vector should have the value 201907L in c++20" # endif # ifndef __cpp_lib_erase_if @@ -170,17 +164,11 @@ # error "__cpp_lib_allocator_traits_is_always_equal should have the value 201411L in c++2b" # endif -# if !defined(_LIBCPP_VERSION) -# ifndef __cpp_lib_constexpr_vector -# error "__cpp_lib_constexpr_vector should be defined in c++2b" -# endif -# if __cpp_lib_constexpr_vector != 201907L -# error "__cpp_lib_constexpr_vector should have the value 201907L in c++2b" -# endif -# else // _LIBCPP_VERSION -# ifdef __cpp_lib_constexpr_vector -# error "__cpp_lib_constexpr_vector should not be defined because it is unimplemented in libc++!" -# endif +# ifndef __cpp_lib_constexpr_vector +# error "__cpp_lib_constexpr_vector should be defined in c++2b" +# endif +# if __cpp_lib_constexpr_vector != 201907L +# error "__cpp_lib_constexpr_vector should have the value 201907L in c++2b" # endif # ifndef __cpp_lib_erase_if diff --git a/libcxx/test/std/language.support/support.limits/support.limits.general/version.version.compile.pass.cpp b/libcxx/test/std/language.support/support.limits/support.limits.general/version.version.compile.pass.cpp index 464ec2e2047a..971bb22523ab 100644 --- a/libcxx/test/std/language.support/support.limits/support.limits.general/version.version.compile.pass.cpp +++ b/libcxx/test/std/language.support/support.limits/support.limits.general/version.version.compile.pass.cpp @@ -2772,17 +2772,11 @@ # error "__cpp_lib_constexpr_utility should have the value 201811L in c++20" # endif -# if !defined(_LIBCPP_VERSION) -# ifndef __cpp_lib_constexpr_vector -# error "__cpp_lib_constexpr_vector should be defined in c++20" -# endif -# if __cpp_lib_constexpr_vector != 201907L -# error "__cpp_lib_constexpr_vector should have the value 201907L in c++20" -# endif -# else // _LIBCPP_VERSION -# ifdef __cpp_lib_constexpr_vector -# error "__cpp_lib_constexpr_vector should not be defined because it is unimplemented in libc++!" -# endif +# ifndef __cpp_lib_constexpr_vector +# error "__cpp_lib_constexpr_vector should be defined in c++20" +# endif +# if __cpp_lib_constexpr_vector != 201907L +# error "__cpp_lib_constexpr_vector should have the value 201907L in c++20" # endif # ifndef __cpp_lib_coroutine @@ -4015,17 +4009,11 @@ # error "__cpp_lib_constexpr_utility should have the value 201811L in c++2b" # endif -# if !defined(_LIBCPP_VERSION) -# ifndef __cpp_lib_constexpr_vector -# error "__cpp_lib_constexpr_vector should be defined in c++2b" -# endif -# if __cpp_lib_constexpr_vector != 201907L -# error "__cpp_lib_constexpr_vector should have the value 201907L in c++2b" -# endif -# else // _LIBCPP_VERSION -# ifdef __cpp_lib_constexpr_vector -# error "__cpp_lib_constexpr_vector should not be defined because it is unimplemented in libc++!" -# endif +# ifndef __cpp_lib_constexpr_vector +# error "__cpp_lib_constexpr_vector should be defined in c++2b" +# endif +# if __cpp_lib_constexpr_vector != 201907L +# error "__cpp_lib_constexpr_vector should have the value 201907L in c++2b" # endif # ifndef __cpp_lib_coroutine diff --git a/libcxx/utils/generate_feature_test_macro_components.py b/libcxx/utils/generate_feature_test_macro_components.py index e4324fccc9ab..85629e11755e 100755 --- a/libcxx/utils/generate_feature_test_macro_components.py +++ b/libcxx/utils/generate_feature_test_macro_components.py @@ -277,7 +277,6 @@ feature_test_macros = [ add_version_header(x) for x in [ "name": "__cpp_lib_constexpr_vector", "values": { "c++20": 201907 }, "headers": ["vector"], - "unimplemented": True, }, { "name": "__cpp_lib_coroutine", "values": { "c++20": 201902 },