On Fri, 2 May 2025 at 09:14, Dhruv Chawla <dhr...@nvidia.com> wrote: > > Per version.syn#2, <memory> is required to define > __cpp_lib_addressof_constexpr as 201603L. > > Bootstrapped and tested on aarch64-linux-gnu.
Thanks, I'll push this to trunk and the gcc-15 and gcc-14 branch. I suppose we should audit our checks for feature test macros and we should have a version.cc test for every header, and ensure that they test each header for all the macros that version.syn says should be there. Currently the checks are spread out around the testsuite, e.g. checks for __cpp_lib_atomic_shared_ptr are with the shared_ptr tests, not in the headers/memory/version.cc file. That makes it harder to check that all the right macros are present in all the right files. > > Signed-off-by: Dhruv Chawla <dhr...@nvidia.com> > > libstdc++-v3/ChangeLog: > * include/std/memory: Define __glibcxx_want_addressof_constexpr. > * testsuite/20_util/headers/memory/version.cc: Test for macro > value. > --- > libstdc++-v3/include/std/memory | 1 + > libstdc++-v3/testsuite/20_util/headers/memory/version.cc | 4 ++++ > 2 files changed, 5 insertions(+) > > diff --git a/libstdc++-v3/include/std/memory b/libstdc++-v3/include/std/memory > index 99f542dcddc..78a1250d29a 100644 > --- a/libstdc++-v3/include/std/memory > +++ b/libstdc++-v3/include/std/memory > @@ -97,6 +97,7 @@ > # include <bits/out_ptr.h> > #endif > > +#define __glibcxx_want_addressof_constexpr > #define __glibcxx_want_allocator_traits_is_always_equal > #define __glibcxx_want_assume_aligned > #define __glibcxx_want_atomic_shared_ptr > diff --git a/libstdc++-v3/testsuite/20_util/headers/memory/version.cc > b/libstdc++-v3/testsuite/20_util/headers/memory/version.cc > index c82c9a018e0..946955dd212 100644 > --- a/libstdc++-v3/testsuite/20_util/headers/memory/version.cc > +++ b/libstdc++-v3/testsuite/20_util/headers/memory/version.cc > @@ -6,3 +6,7 @@ > #if __cpp_lib_allocator_traits_is_always_equal != 201411L > # error "Feature-test macro __cpp_lib_allocator_traits_is_always_equal has > wrong value in <version>" > #endif > + > +#if __cpp_lib_addressof_constexpr != 201603L > +# error "Feature-test macro __cpp_lib_addressof_constexpr has wrong value in > <version>" > +#endif > -- > 2.44.0 >