summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNikolas Klauser <nikolasklauser@berlin.de>2023-02-25 10:26:28 +0100
committerTobias Hieta <tobias@hieta.se>2023-02-28 09:20:37 +0100
commit54dee0b10c4ebdbf913f6638f49d1dc9dc8eaea4 (patch)
tree495a666b0685fab457528dd97a0916e125b37781
parentabf32977809e8a04c9c98b9f3c72d43e37931ee9 (diff)
downloadllvm-54dee0b10c4ebdbf913f6638f49d1dc9dc8eaea4.tar.gz
[libc++] Add FTM for views::as_rvalue
`views::as_rvalue` was implemented in D137637, but we forgot to set the feature test macro. Fixes #60986. Reviewed By: Mordante, #libc Spies: libcxx-commits, arichardson Differential Revision: https://reviews.llvm.org/D144781 (cherry picked from commit 3d4b7a6fa8a45488c141a8640cd53980bdb868e5)
-rw-r--r--libcxx/docs/FeatureTestMacroTable.rst2
-rw-r--r--libcxx/include/version2
-rw-r--r--libcxx/test/std/language.support/support.limits/support.limits.general/ranges.version.compile.pass.cpp24
-rw-r--r--libcxx/test/std/language.support/support.limits/support.limits.general/version.version.compile.pass.cpp24
-rwxr-xr-xlibcxx/utils/generate_feature_test_macro_components.py4
5 files changed, 56 insertions, 0 deletions
diff --git a/libcxx/docs/FeatureTestMacroTable.rst b/libcxx/docs/FeatureTestMacroTable.rst
index b46fc8c0c4ba..556994a67d1d 100644
--- a/libcxx/docs/FeatureTestMacroTable.rst
+++ b/libcxx/docs/FeatureTestMacroTable.rst
@@ -332,6 +332,8 @@ Status
------------------------------------------------- -----------------
``__cpp_lib_out_ptr`` *unimplemented*
------------------------------------------------- -----------------
+ ``__cpp_lib_ranges_as_rvalue`` ``202207L``
+ ------------------------------------------------- -----------------
``__cpp_lib_ranges_chunk`` *unimplemented*
------------------------------------------------- -----------------
``__cpp_lib_ranges_chunk_by`` *unimplemented*
diff --git a/libcxx/include/version b/libcxx/include/version
index 9705229a1c52..28c4a50cdab7 100644
--- a/libcxx/include/version
+++ b/libcxx/include/version
@@ -139,6 +139,7 @@ __cpp_lib_polymorphic_allocator 201902L <memory_resource
__cpp_lib_quoted_string_io 201304L <iomanip>
__cpp_lib_ranges 202106L <algorithm> <functional> <iterator>
<memory> <ranges>
+__cpp_lib_ranges_as_rvalue 202207L <ranges>
__cpp_lib_ranges_chunk 202202L <ranges>
__cpp_lib_ranges_chunk_by 202202L <ranges>
__cpp_lib_ranges_iota 202202L <numeric>
@@ -401,6 +402,7 @@ __cpp_lib_void_t 201411L <type_traits>
# undef __cpp_lib_optional
# define __cpp_lib_optional 202110L
// # define __cpp_lib_out_ptr 202106L
+# define __cpp_lib_ranges_as_rvalue 202207L
// # define __cpp_lib_ranges_chunk 202202L
// # define __cpp_lib_ranges_chunk_by 202202L
// # define __cpp_lib_ranges_iota 202202L
diff --git a/libcxx/test/std/language.support/support.limits/support.limits.general/ranges.version.compile.pass.cpp b/libcxx/test/std/language.support/support.limits/support.limits.general/ranges.version.compile.pass.cpp
index be51d6d40771..581875d6cd29 100644
--- a/libcxx/test/std/language.support/support.limits/support.limits.general/ranges.version.compile.pass.cpp
+++ b/libcxx/test/std/language.support/support.limits/support.limits.general/ranges.version.compile.pass.cpp
@@ -17,6 +17,7 @@
/* Constant Value
__cpp_lib_ranges 202106L [C++20]
+ __cpp_lib_ranges_as_rvalue 202207L [C++2b]
__cpp_lib_ranges_chunk 202202L [C++2b]
__cpp_lib_ranges_chunk_by 202202L [C++2b]
__cpp_lib_ranges_join_with 202202L [C++2b]
@@ -33,6 +34,10 @@
# error "__cpp_lib_ranges should not be defined before c++20"
# endif
+# ifdef __cpp_lib_ranges_as_rvalue
+# error "__cpp_lib_ranges_as_rvalue should not be defined before c++2b"
+# endif
+
# ifdef __cpp_lib_ranges_chunk
# error "__cpp_lib_ranges_chunk should not be defined before c++2b"
# endif
@@ -59,6 +64,10 @@
# error "__cpp_lib_ranges should not be defined before c++20"
# endif
+# ifdef __cpp_lib_ranges_as_rvalue
+# error "__cpp_lib_ranges_as_rvalue should not be defined before c++2b"
+# endif
+
# ifdef __cpp_lib_ranges_chunk
# error "__cpp_lib_ranges_chunk should not be defined before c++2b"
# endif
@@ -85,6 +94,10 @@
# error "__cpp_lib_ranges should not be defined before c++20"
# endif
+# ifdef __cpp_lib_ranges_as_rvalue
+# error "__cpp_lib_ranges_as_rvalue should not be defined before c++2b"
+# endif
+
# ifdef __cpp_lib_ranges_chunk
# error "__cpp_lib_ranges_chunk should not be defined before c++2b"
# endif
@@ -114,6 +127,10 @@
# error "__cpp_lib_ranges should have the value 202106L in c++20"
# endif
+# ifdef __cpp_lib_ranges_as_rvalue
+# error "__cpp_lib_ranges_as_rvalue should not be defined before c++2b"
+# endif
+
# ifdef __cpp_lib_ranges_chunk
# error "__cpp_lib_ranges_chunk should not be defined before c++2b"
# endif
@@ -143,6 +160,13 @@
# error "__cpp_lib_ranges should have the value 202106L in c++2b"
# endif
+# ifndef __cpp_lib_ranges_as_rvalue
+# error "__cpp_lib_ranges_as_rvalue should be defined in c++2b"
+# endif
+# if __cpp_lib_ranges_as_rvalue != 202207L
+# error "__cpp_lib_ranges_as_rvalue should have the value 202207L in c++2b"
+# endif
+
# if !defined(_LIBCPP_VERSION)
# ifndef __cpp_lib_ranges_chunk
# error "__cpp_lib_ranges_chunk should be defined in c++2b"
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 9c1816bbce51..fb5710c8e2e2 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
@@ -128,6 +128,7 @@
__cpp_lib_polymorphic_allocator 201902L [C++20]
__cpp_lib_quoted_string_io 201304L [C++14]
__cpp_lib_ranges 202106L [C++20]
+ __cpp_lib_ranges_as_rvalue 202207L [C++2b]
__cpp_lib_ranges_chunk 202202L [C++2b]
__cpp_lib_ranges_chunk_by 202202L [C++2b]
__cpp_lib_ranges_iota 202202L [C++2b]
@@ -621,6 +622,10 @@
# error "__cpp_lib_ranges should not be defined before c++20"
# endif
+# ifdef __cpp_lib_ranges_as_rvalue
+# error "__cpp_lib_ranges_as_rvalue should not be defined before c++2b"
+# endif
+
# ifdef __cpp_lib_ranges_chunk
# error "__cpp_lib_ranges_chunk should not be defined before c++2b"
# endif
@@ -1295,6 +1300,10 @@
# error "__cpp_lib_ranges should not be defined before c++20"
# endif
+# ifdef __cpp_lib_ranges_as_rvalue
+# error "__cpp_lib_ranges_as_rvalue should not be defined before c++2b"
+# endif
+
# ifdef __cpp_lib_ranges_chunk
# error "__cpp_lib_ranges_chunk should not be defined before c++2b"
# endif
@@ -2134,6 +2143,10 @@
# error "__cpp_lib_ranges should not be defined before c++20"
# endif
+# ifdef __cpp_lib_ranges_as_rvalue
+# error "__cpp_lib_ranges_as_rvalue should not be defined before c++2b"
+# endif
+
# ifdef __cpp_lib_ranges_chunk
# error "__cpp_lib_ranges_chunk should not be defined before c++2b"
# endif
@@ -3240,6 +3253,10 @@
# error "__cpp_lib_ranges should have the value 202106L in c++20"
# endif
+# ifdef __cpp_lib_ranges_as_rvalue
+# error "__cpp_lib_ranges_as_rvalue should not be defined before c++2b"
+# endif
+
# ifdef __cpp_lib_ranges_chunk
# error "__cpp_lib_ranges_chunk should not be defined before c++2b"
# endif
@@ -4505,6 +4522,13 @@
# error "__cpp_lib_ranges should have the value 202106L in c++2b"
# endif
+# ifndef __cpp_lib_ranges_as_rvalue
+# error "__cpp_lib_ranges_as_rvalue should be defined in c++2b"
+# endif
+# if __cpp_lib_ranges_as_rvalue != 202207L
+# error "__cpp_lib_ranges_as_rvalue should have the value 202207L in c++2b"
+# endif
+
# if !defined(_LIBCPP_VERSION)
# ifndef __cpp_lib_ranges_chunk
# error "__cpp_lib_ranges_chunk should be defined in c++2b"
diff --git a/libcxx/utils/generate_feature_test_macro_components.py b/libcxx/utils/generate_feature_test_macro_components.py
index 69cb94272de8..5775a71e88c4 100755
--- a/libcxx/utils/generate_feature_test_macro_components.py
+++ b/libcxx/utils/generate_feature_test_macro_components.py
@@ -537,6 +537,10 @@ feature_test_macros = [ add_version_header(x) for x in [
"values": { "c++20": 202106 },
"headers": ["algorithm", "functional", "iterator", "memory", "ranges"],
}, {
+ "name": "__cpp_lib_ranges_as_rvalue",
+ "values": { "c++2b": 202207 },
+ "headers": ["ranges"],
+ }, {
"name": "__cpp_lib_ranges_chunk",
"values": { "c++2b": 202202 },
"headers": ["ranges"],