[libc++] Add FTM for constexpr vector
authorNikolas Klauser <nikolasklauser@berlin.de>
Wed, 9 Nov 2022 20:01:42 +0000 (21:01 +0100)
committerNikolas Klauser <nikolasklauser@berlin.de>
Wed, 9 Nov 2022 21:45:20 +0000 (22:45 +0100)
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
libcxx/include/version
libcxx/test/std/language.support/support.limits/support.limits.general/vector.version.compile.pass.cpp
libcxx/test/std/language.support/support.limits/support.limits.general/version.version.compile.pass.cpp
libcxx/utils/generate_feature_test_macro_components.py

index e4a1802..5ba070e 100644 (file)
@@ -222,7 +222,7 @@ Status
     ------------------------------------------------- -----------------
     ``__cpp_lib_constexpr_utility``                   ``201811L``
     ------------------------------------------------- -----------------
-    ``__cpp_lib_constexpr_vector``                    *unimplemented*
+    ``__cpp_lib_constexpr_vector``                    ``201907L``
     ------------------------------------------------- -----------------
     ``__cpp_lib_coroutine``                           ``201902L``
     ------------------------------------------------- -----------------
index 3e1b634..5e2b8cd 100644 (file)
@@ -326,7 +326,7 @@ __cpp_lib_void_t                                        201411L <type_traits>
 # 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
index c762e93..2d9b6bf 100644 (file)
 #   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
 #   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
index 464ec2e..971bb22 100644 (file)
 #   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
 #   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
index e4324fc..85629e1 100755 (executable)
@@ -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 },