libstdc++: Deprecate std::atomic_xxx overloads for std::shared_ptr
commit090589e84b04753a1bc99cdeeaadaf361555cb83
authorJonathan Wakely <jwakely@redhat.com>
Wed, 8 Nov 2023 13:43:04 +0000 (8 13:43 +0000)
committerJonathan Wakely <jwakely@redhat.com>
Sat, 11 Nov 2023 00:41:08 +0000 (11 00:41 +0000)
tree327f97e6f5751a71ed7fb85c3a4003e6166b32f8
parent64bcf3f07a211f2ea136d99b3700c172efc08d93
libstdc++: Deprecate std::atomic_xxx overloads for std::shared_ptr

These overloads are deprecated in C++20 (and likely to be removed for
C++26). The std::atomic<std::shared_ptr<T>> specialization should be
preferred in new code.

libstdc++-v3/ChangeLog:

* include/bits/shared_ptr_atomic.h (atomic_is_lock_free)
(atomic_load_explicit, atomic_load, atomic_store_explicit)
(atomic_store, atomic_exchange_explicit, atomic_exchange)
(atomic_compare_exchange_strong, atomic_compare_exchange_weak)
(atomic_compare_exchange_strong_explicit)
(atomic_compare_exchange_weak_explicit): Add deprecated
attribute for C++20 and later.
* testsuite/20_util/shared_ptr/atomic/1.cc: Suppress deprecated
warnings.
* testsuite/20_util/shared_ptr/atomic/2.cc: Likewise.
* testsuite/20_util/shared_ptr/atomic/3.cc: Likewise.
* testsuite/29_atomics/atomic/lwg3220.cc: Likewise.
libstdc++-v3/include/bits/shared_ptr_atomic.h
libstdc++-v3/testsuite/20_util/shared_ptr/atomic/1.cc
libstdc++-v3/testsuite/20_util/shared_ptr/atomic/2.cc
libstdc++-v3/testsuite/20_util/shared_ptr/atomic/3.cc
libstdc++-v3/testsuite/29_atomics/atomic/lwg3220.cc