-
Notifications
You must be signed in to change notification settings - Fork 13.6k
[libc++] Adds __cpp_lib_three_way_comparison FTM. #91515
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
@llvm/pr-subscribers-libcxx Author: Mark de Wever (mordante) ChangesThe paper This enables the FTM for P0768R1 Fixes: #73953 Full diff: https://github.com/llvm/llvm-project/pull/91515.diff 5 Files Affected:
diff --git a/libcxx/docs/Status/Cxx20Papers.csv b/libcxx/docs/Status/Cxx20Papers.csv
index d31720b7576d7..064e32a45d81a 100644
--- a/libcxx/docs/Status/Cxx20Papers.csv
+++ b/libcxx/docs/Status/Cxx20Papers.csv
@@ -78,7 +78,7 @@
"`P1236R1 <https://wg21.link/P1236R1>`__","CWG","Alternative Wording for P0907R4 Signed Integers are Two's Complement","San Diego","* *",""
"`P1248R1 <https://wg21.link/P1248R1>`__","LWG","Remove CommonReference requirement from StrictWeakOrdering (a.k.a Fixing Relations)","San Diego","|Complete|","13.0"
"`P1285R0 <https://wg21.link/P1285R0>`__","LWG","Improving Completeness Requirements for Type Traits","San Diego","* *",""
-"`P1353R0 <https://wg21.link/P1353R0>`__","CWG","Missing feature test macros","San Diego","* *",""
+"`P1353R0 <https://wg21.link/P1353R0>`__","CWG","Missing feature test macros","San Diego","|In Progress|",""
"","","","","","",""
"`P0339R6 <https://wg21.link/P0339R6>`__","LWG","polymorphic_allocator<> as a vocabulary type","Kona","|Complete|","16.0"
"`P0340R3 <https://wg21.link/P0340R3>`__","LWG","Making std::underlying_type SFINAE-friendly","Kona","|Complete|","9.0"
diff --git a/libcxx/include/version b/libcxx/include/version
index eb5fd5c805784..0e0eeca4799c1 100644
--- a/libcxx/include/version
+++ b/libcxx/include/version
@@ -228,7 +228,7 @@ __cpp_lib_string_view 201803L <string> <string
__cpp_lib_submdspan 202306L <mdspan>
__cpp_lib_syncbuf 201803L <syncstream>
__cpp_lib_text_encoding 202306L <text_encoding>
-__cpp_lib_three_way_comparison 201907L <compare>
+__cpp_lib_three_way_comparison 201711L <compare>
__cpp_lib_to_address 201711L <memory>
__cpp_lib_to_array 201907L <array>
__cpp_lib_to_chars 202306L <charconv>
@@ -438,7 +438,7 @@ __cpp_lib_within_lifetime 202306L <type_traits>
# if !defined(_LIBCPP_HAS_NO_EXPERIMENTAL_SYNCSTREAM)
# define __cpp_lib_syncbuf 201803L
# endif
-// # define __cpp_lib_three_way_comparison 201907L
+// # define __cpp_lib_three_way_comparison 201711L
# define __cpp_lib_to_address 201711L
# define __cpp_lib_to_array 201907L
# define __cpp_lib_type_identity 201806L
diff --git a/libcxx/test/std/language.support/support.limits/support.limits.general/compare.version.compile.pass.cpp b/libcxx/test/std/language.support/support.limits/support.limits.general/compare.version.compile.pass.cpp
index f521c53250b63..4b81f212b786b 100644
--- a/libcxx/test/std/language.support/support.limits/support.limits.general/compare.version.compile.pass.cpp
+++ b/libcxx/test/std/language.support/support.limits/support.limits.general/compare.version.compile.pass.cpp
@@ -16,7 +16,7 @@
// Test the feature test macros defined by <compare>
/* Constant Value
- __cpp_lib_three_way_comparison 201907L [C++20]
+ __cpp_lib_three_way_comparison 201711L [C++20]
*/
#include <compare>
@@ -46,8 +46,8 @@
# ifndef __cpp_lib_three_way_comparison
# error "__cpp_lib_three_way_comparison should be defined in c++20"
# endif
-# if __cpp_lib_three_way_comparison != 201907L
-# error "__cpp_lib_three_way_comparison should have the value 201907L in c++20"
+# if __cpp_lib_three_way_comparison != 201711L
+# error "__cpp_lib_three_way_comparison should have the value 201711L in c++20"
# endif
# else // _LIBCPP_VERSION
# ifdef __cpp_lib_three_way_comparison
@@ -61,8 +61,8 @@
# ifndef __cpp_lib_three_way_comparison
# error "__cpp_lib_three_way_comparison should be defined in c++23"
# endif
-# if __cpp_lib_three_way_comparison != 201907L
-# error "__cpp_lib_three_way_comparison should have the value 201907L in c++23"
+# if __cpp_lib_three_way_comparison != 201711L
+# error "__cpp_lib_three_way_comparison should have the value 201711L in c++23"
# endif
# else // _LIBCPP_VERSION
# ifdef __cpp_lib_three_way_comparison
@@ -76,8 +76,8 @@
# ifndef __cpp_lib_three_way_comparison
# error "__cpp_lib_three_way_comparison should be defined in c++26"
# endif
-# if __cpp_lib_three_way_comparison != 201907L
-# error "__cpp_lib_three_way_comparison should have the value 201907L in c++26"
+# if __cpp_lib_three_way_comparison != 201711L
+# error "__cpp_lib_three_way_comparison should have the value 201711L in c++26"
# endif
# else // _LIBCPP_VERSION
# ifdef __cpp_lib_three_way_comparison
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 da7a780528c7a..7675a515977d8 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
@@ -210,7 +210,7 @@
__cpp_lib_submdspan 202306L [C++26]
__cpp_lib_syncbuf 201803L [C++20]
__cpp_lib_text_encoding 202306L [C++26]
- __cpp_lib_three_way_comparison 201907L [C++20]
+ __cpp_lib_three_way_comparison 201711L [C++20]
__cpp_lib_to_address 201711L [C++20]
__cpp_lib_to_array 201907L [C++20]
__cpp_lib_to_chars 201611L [C++17]
@@ -4309,8 +4309,8 @@
# ifndef __cpp_lib_three_way_comparison
# error "__cpp_lib_three_way_comparison should be defined in c++20"
# endif
-# if __cpp_lib_three_way_comparison != 201907L
-# error "__cpp_lib_three_way_comparison should have the value 201907L in c++20"
+# if __cpp_lib_three_way_comparison != 201711L
+# error "__cpp_lib_three_way_comparison should have the value 201711L in c++20"
# endif
# else // _LIBCPP_VERSION
# ifdef __cpp_lib_three_way_comparison
@@ -5903,8 +5903,8 @@
# ifndef __cpp_lib_three_way_comparison
# error "__cpp_lib_three_way_comparison should be defined in c++23"
# endif
-# if __cpp_lib_three_way_comparison != 201907L
-# error "__cpp_lib_three_way_comparison should have the value 201907L in c++23"
+# if __cpp_lib_three_way_comparison != 201711L
+# error "__cpp_lib_three_way_comparison should have the value 201711L in c++23"
# endif
# else // _LIBCPP_VERSION
# ifdef __cpp_lib_three_way_comparison
@@ -7764,8 +7764,8 @@
# ifndef __cpp_lib_three_way_comparison
# error "__cpp_lib_three_way_comparison should be defined in c++26"
# endif
-# if __cpp_lib_three_way_comparison != 201907L
-# error "__cpp_lib_three_way_comparison should have the value 201907L in c++26"
+# if __cpp_lib_three_way_comparison != 201711L
+# error "__cpp_lib_three_way_comparison should have the value 201711L in c++26"
# endif
# else // _LIBCPP_VERSION
# ifdef __cpp_lib_three_way_comparison
diff --git a/libcxx/utils/generate_feature_test_macro_components.py b/libcxx/utils/generate_feature_test_macro_components.py
index 29c8ceba0c7ef..795037a479b98 100755
--- a/libcxx/utils/generate_feature_test_macro_components.py
+++ b/libcxx/utils/generate_feature_test_macro_components.py
@@ -1236,7 +1236,8 @@ def add_version_header(tc):
},
{
"name": "__cpp_lib_three_way_comparison",
- "values": {"c++20": 201907},
+ "values": {"c++20": 201711},
+ # {"c++20": 201711} # P1614R2 The Mothership has Landed (see P1902R1 Missing feature-test macros 2017-2019)
"headers": ["compare"],
"unimplemented": True,
},
|
ldionne
reviewed
May 8, 2024
The paper P0768R1 Library Support for the Spaceship (Comparison) Operator did not add a feature-test macro. This omission has been corrected in P1353R0 Missing Feature Test Macros This enables the FTM for P0768R1 Fixes: llvm#73953
d27160a
to
65447fd
Compare
Co-authored-by: S. B. Tam <[email protected]>
ldionne
approved these changes
Jun 4, 2024
This was referenced Jan 15, 2025
frederick-vs-ja
added a commit
that referenced
this pull request
Jan 19, 2025
Library feature-test macros added by P1353R0 are already implemented. - `__cpp_lib_destroying_delete` was added by ae02e89 (https://reviews.llvm.org/D55840) in LLVM 9. - `__cpp_lib_three_way_comparison` was added by #91515 in LLVM 19.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
The paper
P0768R1 Library Support for the Spaceship (Comparison) Operator
did not add a feature-test macro. This omission has been corrected in
P1353R0 Missing Feature Test Macros
This enables the FTM for P0768R1
Fixes: #73953