diff options
author | Nikolas Klauser <nikolasklauser@berlin.de> | 2023-02-25 10:26:28 +0100 |
---|---|---|
committer | Tobias Hieta <tobias@hieta.se> | 2023-02-28 09:20:37 +0100 |
commit | 54dee0b10c4ebdbf913f6638f49d1dc9dc8eaea4 (patch) | |
tree | 495a666b0685fab457528dd97a0916e125b37781 /libcxx | |
parent | abf32977809e8a04c9c98b9f3c72d43e37931ee9 (diff) | |
download | llvm-54dee0b10c4ebdbf913f6638f49d1dc9dc8eaea4.zip llvm-54dee0b10c4ebdbf913f6638f49d1dc9dc8eaea4.tar.gz llvm-54dee0b10c4ebdbf913f6638f49d1dc9dc8eaea4.tar.bz2 |
[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)
Diffstat (limited to 'libcxx')
5 files changed, 56 insertions, 0 deletions
diff --git a/libcxx/docs/FeatureTestMacroTable.rst b/libcxx/docs/FeatureTestMacroTable.rst index b46fc8c..556994a 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 9705229..28c4a50 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 be51d6d..581875d6cd 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 9c1816b..fb5710c 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 69cb942..5775a71 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"], |