https://gcc.gnu.org/g:a4c0f16f048b64c1ab3b2521e3a1595afc64462b
commit r14-11193-ga4c0f16f048b64c1ab3b2521e3a1595afc64462b Author: Jonathan Wakely <jwak...@redhat.com> Date: Tue Dec 10 14:35:07 2024 +0000 libstdc++: Use feature test macro for pmr::polymorphic_allocator<> Check the __glibcxx_polymorphic_allocator macro instead of just checking whether __cplusplus > 201703L. libstdc++-v3/ChangeLog: * include/bits/memory_resource.h (polymoprhic_allocator): Use feature test macro for P0339R6 features. (cherry picked from commit b26d92f4f71594206385d6f645ff626c0bf9b59c) Diff: --- libstdc++-v3/include/bits/memory_resource.h | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/libstdc++-v3/include/bits/memory_resource.h b/libstdc++-v3/include/bits/memory_resource.h index db515fb30ef9..9bfeaedf078d 100644 --- a/libstdc++-v3/include/bits/memory_resource.h +++ b/libstdc++-v3/include/bits/memory_resource.h @@ -168,7 +168,7 @@ namespace pmr __attribute__((__nonnull__)) { _M_resource->deallocate(__p, __n * sizeof(_Tp), alignof(_Tp)); } -#if __cplusplus > 201703L +#ifdef __glibcxx_polymorphic_allocator // >= C++20 [[nodiscard]] void* allocate_bytes(size_t __nbytes, size_t __alignment = alignof(max_align_t)) @@ -218,9 +218,9 @@ namespace pmr __p->~_Up(); deallocate_object(__p); } -#endif // C++2a +#endif // C++20 -#if ! __glibcxx_make_obj_using_allocator +#if ! __glibcxx_make_obj_using_allocator // >= C++20 template<typename _Tp1, typename... _Args> __attribute__((__nonnull__)) typename __not_pair<_Tp1>::type @@ -336,7 +336,7 @@ namespace pmr #endif private: -#if ! __glibcxx_make_obj_using_allocator +#if ! __glibcxx_make_obj_using_allocator // >= C++20 using __uses_alloc1_ = __uses_alloc1<polymorphic_allocator>; using __uses_alloc2_ = __uses_alloc2<polymorphic_allocator>;