[libc++] Set feature-test macro __cpp_lib_atomic_float (#127559)

The corresponding feature was implemented in LLVM 18 (by #67799), but
this FTM wasn't added before.
This commit is contained in:
A. Jiang 2025-02-19 09:06:51 +08:00 committed by GitHub
parent 61cfa53896
commit 2207e3e325
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
6 changed files with 33 additions and 70 deletions

View File

@ -174,7 +174,7 @@ Status
---------------------------------------------------------- -----------------
``__cpp_lib_atomic_flag_test`` ``201907L``
---------------------------------------------------------- -----------------
``__cpp_lib_atomic_float`` *unimplemented*
``__cpp_lib_atomic_float`` ``201711L``
---------------------------------------------------------- -----------------
``__cpp_lib_atomic_lock_free_type_aliases`` ``201907L``
---------------------------------------------------------- -----------------

View File

@ -2,7 +2,7 @@
"`P0463R1 <https://wg21.link/P0463R1>`__","Endian just Endian","2017-07 (Toronto)","|Complete|","7",""
"`P0674R1 <https://wg21.link/P0674R1>`__","Extending make_shared to Support Arrays","2017-07 (Toronto)","|Complete|","15",""
"","","","","",""
"`P0020R6 <https://wg21.link/P0020R6>`__","Floating Point Atomic","2017-11 (Albuquerque)","|Complete|","18",""
"`P0020R6 <https://wg21.link/P0020R6>`__","Floating Point Atomic","2017-11 (Albuquerque)","|Complete|","18","The feature-test macro was not set until LLVM 20."
"`P0053R7 <https://wg21.link/P0053R7>`__","C++ Synchronized Buffered Ostream","2017-11 (Albuquerque)","|Complete|","18",""
"`P0202R3 <https://wg21.link/P0202R3>`__","Add constexpr modifiers to functions in <algorithm> and <utility> Headers","2017-11 (Albuquerque)","|Complete|","12",""
"`P0415R1 <https://wg21.link/P0415R1>`__","Constexpr for ``std::complex``\ ","2017-11 (Albuquerque)","|Complete|","16",""

1 Paper # Paper Name Meeting Status First released version Notes
2 `P0463R1 <https://wg21.link/P0463R1>`__ Endian just Endian 2017-07 (Toronto) |Complete| 7
3 `P0674R1 <https://wg21.link/P0674R1>`__ Extending make_shared to Support Arrays 2017-07 (Toronto) |Complete| 15
4
5 `P0020R6 <https://wg21.link/P0020R6>`__ Floating Point Atomic 2017-11 (Albuquerque) |Complete| 18 The feature-test macro was not set until LLVM 20.
6 `P0053R7 <https://wg21.link/P0053R7>`__ C++ Synchronized Buffered Ostream 2017-11 (Albuquerque) |Complete| 18
7 `P0202R3 <https://wg21.link/P0202R3>`__ Add constexpr modifiers to functions in <algorithm> and <utility> Headers 2017-11 (Albuquerque) |Complete| 12
8 `P0415R1 <https://wg21.link/P0415R1>`__ Constexpr for ``std::complex``\ 2017-11 (Albuquerque) |Complete| 16

View File

@ -378,7 +378,7 @@ __cpp_lib_void_t 201411L <type_traits>
# define __cpp_lib_array_constexpr 201811L
# define __cpp_lib_assume_aligned 201811L
# define __cpp_lib_atomic_flag_test 201907L
// # define __cpp_lib_atomic_float 201711L
# define __cpp_lib_atomic_float 201711L
# define __cpp_lib_atomic_lock_free_type_aliases 201907L
# define __cpp_lib_atomic_ref 201806L
// # define __cpp_lib_atomic_shared_ptr 201711L

View File

@ -169,17 +169,11 @@
# error "__cpp_lib_atomic_flag_test should have the value 201907L in c++20"
# endif
# if !defined(_LIBCPP_VERSION)
# ifndef __cpp_lib_atomic_float
# error "__cpp_lib_atomic_float should be defined in c++20"
# endif
# if __cpp_lib_atomic_float != 201711L
# error "__cpp_lib_atomic_float should have the value 201711L in c++20"
# endif
# else // _LIBCPP_VERSION
# ifdef __cpp_lib_atomic_float
# error "__cpp_lib_atomic_float should not be defined because it is unimplemented in libc++!"
# endif
# ifndef __cpp_lib_atomic_float
# error "__cpp_lib_atomic_float should be defined in c++20"
# endif
# if __cpp_lib_atomic_float != 201711L
# error "__cpp_lib_atomic_float should have the value 201711L in c++20"
# endif
# ifndef __cpp_lib_atomic_is_always_lock_free
@ -262,17 +256,11 @@
# error "__cpp_lib_atomic_flag_test should have the value 201907L in c++23"
# endif
# if !defined(_LIBCPP_VERSION)
# ifndef __cpp_lib_atomic_float
# error "__cpp_lib_atomic_float should be defined in c++23"
# endif
# if __cpp_lib_atomic_float != 201711L
# error "__cpp_lib_atomic_float should have the value 201711L in c++23"
# endif
# else // _LIBCPP_VERSION
# ifdef __cpp_lib_atomic_float
# error "__cpp_lib_atomic_float should not be defined because it is unimplemented in libc++!"
# endif
# ifndef __cpp_lib_atomic_float
# error "__cpp_lib_atomic_float should be defined in c++23"
# endif
# if __cpp_lib_atomic_float != 201711L
# error "__cpp_lib_atomic_float should have the value 201711L in c++23"
# endif
# ifndef __cpp_lib_atomic_is_always_lock_free
@ -355,17 +343,11 @@
# error "__cpp_lib_atomic_flag_test should have the value 201907L in c++26"
# endif
# if !defined(_LIBCPP_VERSION)
# ifndef __cpp_lib_atomic_float
# error "__cpp_lib_atomic_float should be defined in c++26"
# endif
# if __cpp_lib_atomic_float != 201711L
# error "__cpp_lib_atomic_float should have the value 201711L in c++26"
# endif
# else // _LIBCPP_VERSION
# ifdef __cpp_lib_atomic_float
# error "__cpp_lib_atomic_float should not be defined because it is unimplemented in libc++!"
# endif
# ifndef __cpp_lib_atomic_float
# error "__cpp_lib_atomic_float should be defined in c++26"
# endif
# if __cpp_lib_atomic_float != 201711L
# error "__cpp_lib_atomic_float should have the value 201711L in c++26"
# endif
# ifndef __cpp_lib_atomic_is_always_lock_free

View File

@ -3282,17 +3282,11 @@
# error "__cpp_lib_atomic_flag_test should have the value 201907L in c++20"
# endif
# if !defined(_LIBCPP_VERSION)
# ifndef __cpp_lib_atomic_float
# error "__cpp_lib_atomic_float should be defined in c++20"
# endif
# if __cpp_lib_atomic_float != 201711L
# error "__cpp_lib_atomic_float should have the value 201711L in c++20"
# endif
# else // _LIBCPP_VERSION
# ifdef __cpp_lib_atomic_float
# error "__cpp_lib_atomic_float should not be defined because it is unimplemented in libc++!"
# endif
# ifndef __cpp_lib_atomic_float
# error "__cpp_lib_atomic_float should be defined in c++20"
# endif
# if __cpp_lib_atomic_float != 201711L
# error "__cpp_lib_atomic_float should have the value 201711L in c++20"
# endif
# ifndef __cpp_lib_atomic_is_always_lock_free
@ -4707,17 +4701,11 @@
# error "__cpp_lib_atomic_flag_test should have the value 201907L in c++23"
# endif
# if !defined(_LIBCPP_VERSION)
# ifndef __cpp_lib_atomic_float
# error "__cpp_lib_atomic_float should be defined in c++23"
# endif
# if __cpp_lib_atomic_float != 201711L
# error "__cpp_lib_atomic_float should have the value 201711L in c++23"
# endif
# else // _LIBCPP_VERSION
# ifdef __cpp_lib_atomic_float
# error "__cpp_lib_atomic_float should not be defined because it is unimplemented in libc++!"
# endif
# ifndef __cpp_lib_atomic_float
# error "__cpp_lib_atomic_float should be defined in c++23"
# endif
# if __cpp_lib_atomic_float != 201711L
# error "__cpp_lib_atomic_float should have the value 201711L in c++23"
# endif
# ifndef __cpp_lib_atomic_is_always_lock_free
@ -6369,17 +6357,11 @@
# error "__cpp_lib_atomic_flag_test should have the value 201907L in c++26"
# endif
# if !defined(_LIBCPP_VERSION)
# ifndef __cpp_lib_atomic_float
# error "__cpp_lib_atomic_float should be defined in c++26"
# endif
# if __cpp_lib_atomic_float != 201711L
# error "__cpp_lib_atomic_float should have the value 201711L in c++26"
# endif
# else // _LIBCPP_VERSION
# ifdef __cpp_lib_atomic_float
# error "__cpp_lib_atomic_float should not be defined because it is unimplemented in libc++!"
# endif
# ifndef __cpp_lib_atomic_float
# error "__cpp_lib_atomic_float should be defined in c++26"
# endif
# if __cpp_lib_atomic_float != 201711L
# error "__cpp_lib_atomic_float should have the value 201711L in c++26"
# endif
# ifndef __cpp_lib_atomic_is_always_lock_free

View File

@ -169,7 +169,6 @@ feature_test_macros = [
"name": "__cpp_lib_atomic_float",
"values": {"c++20": 201711},
"headers": ["atomic"],
"unimplemented": True,
},
{
"name": "__cpp_lib_atomic_is_always_lock_free",