From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by sourceware.org (Postfix) with ESMTPS id 1709D3858402 for ; Mon, 17 Jan 2022 09:39:57 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 1709D3858402 Received: from mail-wm1-f69.google.com (mail-wm1-f69.google.com [209.85.128.69]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-135-CCnkWzL8M-eK8SC5mERL6Q-1; Mon, 17 Jan 2022 04:39:55 -0500 X-MC-Unique: CCnkWzL8M-eK8SC5mERL6Q-1 Received: by mail-wm1-f69.google.com with SMTP id o3-20020a05600c4fc300b0034aee9534bdso3963618wmq.2 for ; Mon, 17 Jan 2022 01:39:55 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:message-id:date:mime-version:user-agent:subject :content-language:to:cc:references:from:in-reply-to :content-transfer-encoding; bh=J+wovr7R/G7iC/8NWpD8gQOwlILybgXZ0zZLvbjQXZs=; b=heWSRmQ5nqX28fjLdSgWwfTlIXdJJ3NpF08k3yyeDScVL4kr1s/GBd58qUt2BPHqkC nL+5fXvYI/2k7RGodH9FaYhsDaUflcePJ6REGnGS3pQE/3yM/3DZVkMMFmcIUZ8Pory4 rscJzIVv+6egZiTc/iOD7fYX6aetmGBNcumxKZ2++mV0+hrQWCG+/pnFr+QySbRf47BZ 7R6CF0JzlhT1kL0CKWSAFBjN1+IeOKzdWcH4yi5FBeSzOJ1HjezbB4pTHzgq48ZtV2qx Er6QPhRwQoLuj5rH46zHWGJ7K3C8oq8T5SHR6k7dgGiADqJtNv65Y8j1POhRoF6ihWQj LWMw== X-Gm-Message-State: AOAM531F1Vawt7wZlICLTl+3b1OLQVfvA9shGwDJCK164SneLcRhgBax 8Ck6D/wnNPOON2PPOU0SPWMYXWFR72hNtXQtkAGMGXIEM+hBjHOvZdX5063WN1Ne8/newTKJm4v 97afx5KV3h717oJ0= X-Received: by 2002:a5d:584a:: with SMTP id i10mr3552155wrf.198.1642412394122; Mon, 17 Jan 2022 01:39:54 -0800 (PST) X-Google-Smtp-Source: ABdhPJza1QnNzGDuTAGtFLJH/kd+okVtAMPHLrgaiGV/0F2LxriVszwJkl7GUw7WI5VRoD5KAJjj7w== X-Received: by 2002:a5d:584a:: with SMTP id i10mr3552140wrf.198.1642412393880; Mon, 17 Jan 2022 01:39:53 -0800 (PST) Received: from [192.168.188.57] (dynamic-077-010-101-177.77.10.pool.telefonica.de. [77.10.101.177]) by smtp.gmail.com with ESMTPSA id m7sm12471802wmi.13.2022.01.17.01.39.53 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 17 Jan 2022 01:39:53 -0800 (PST) Message-ID: <893cd31c-d401-81d3-a8e3-55fd08abd9d2@redhat.com> Date: Mon, 17 Jan 2022 10:39:52 +0100 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.4.0 Subject: Re: [PATCH] libstdc++: Implement C++20 atomic and atomic To: Jonathan Wakely , Thomas Rodgers Cc: Thomas Rodgers , libstdc++ , gcc Patches , Thomas Rodgers References: <20210917175152.606596-1-rodgert@appliantology.com> <20210918040157.608691-1-rodgert@appliantology.com> From: Stephan Bergmann In-Reply-To: X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Language: en-US Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Spam-Status: No, score=-12.5 required=5.0 tests=BAYES_00, DKIMWL_WL_HIGH, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, NICE_REPLY_A, RCVD_IN_DNSWL_LOW, RCVD_IN_MSPIKE_H3, RCVD_IN_MSPIKE_WL, SPF_HELO_NONE, SPF_NONE, TXREP autolearn=ham autolearn_force=no version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on server2.sourceware.org X-BeenThere: libstdc++@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Libstdc++ mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 17 Jan 2022 09:39:58 -0000 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 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) > {