On 1/17/22 01:12, Jonathan Wakely via Libstdc++ wrote:
Here's the finished version of that patch, which is all inline in the
header, and performs faster too.

Tested powerpc64le-linux and x86_64-linux.
Pushed to trunk.

FYI, recent Clang still requires typename in two places to compile <memory> with -std=c++20,

diff --git a/libstdc++-v3/include/bits/shared_ptr_atomic.h 
b/libstdc++-v3/include/bits/shared_ptr_atomic.h
index 900499bae32..50aa46370ca 100644
--- a/libstdc++-v3/include/bits/shared_ptr_atomic.h
+++ b/libstdc++-v3/include/bits/shared_ptr_atomic.h
@@ -456,8 +456,8 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
       typename _Tp::element_type* _M_ptr;
       _Atomic_count _M_refcount;
- static _Atomic_count::pointer
-      _S_add_ref(_Atomic_count::pointer __p)
+      static typename _Atomic_count::pointer
+      _S_add_ref(typename _Atomic_count::pointer __p)
       {
        if (__p)
          {

Reply via email to