[{"id":3687017,"web_url":"http://patchwork.ozlabs.org/comment/3687017/","msgid":"<CAKvuMXBF-z-m_R_muBcg-0kNkXjG9ZBRiSi-oYvMMJN4Cm4i2A@mail.gmail.com>","list_archive_url":null,"date":"2026-05-06T12:04:35","subject":"Re: [PATCH v2 3/3] libstdc++: Remove non-concepts fallback for\n std::make_shared_for_overwrite","submitter":{"id":90409,"url":"http://patchwork.ozlabs.org/api/people/90409/","name":"Tomasz Kamiński","email":"tkaminsk@redhat.com"},"content":"On Wed, May 6, 2026 at 12:12 PM Jonathan Wakely <jwakely@redhat.com> wrote:\n\n> Clang 10 added support for concepts, so we no longer need to support\n> C++20 compilers that don't define __cpp_concepts.\n>\n> libstdc++-v3/ChangeLog:\n>\n>         * include/bits/shared_ptr.h (_UnboundedArray, _BoundedArray)\n>         (_NotUnboundedArray): Remove fallback definition for C++20\n>         compilers that don't define __cpp_concepts.\n>         * include/bits/shared_ptr_base.h (_Sp_counted_ptr_inplace):\n>         Remove fallback declaration of _Sp_overwrite_tag partial\n>         specialization.\n> ---\n>\n> v2: Unchanged, just rebased on PATCH v2 2/3.\n>\n> Tested x86_64-linux.\n>\nLGTM after you explained why you are keeping typedefs.\n\n>\n>  libstdc++-v3/include/bits/shared_ptr.h      | 18 ------------------\n>  libstdc++-v3/include/bits/shared_ptr_base.h |  5 -----\n>  2 files changed, 23 deletions(-)\n>\n> diff --git a/libstdc++-v3/include/bits/shared_ptr.h\n> b/libstdc++-v3/include/bits/shared_ptr.h\n> index fd00384df223..ada32d3d3cb9 100644\n> --- a/libstdc++-v3/include/bits/shared_ptr.h\n> +++ b/libstdc++-v3/include/bits/shared_ptr.h\n> @@ -114,38 +114,20 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION\n>\n>  #if __glibcxx_shared_ptr_arrays >= 201707L\n>    // Constraint for overloads taking array types with unknown bound, U[].\n> -#if __cpp_concepts\n>    template<typename _Tp>\n>      requires is_array_v<_Tp> && (extent_v<_Tp> == 0)\n>      using _UnboundedArray = _Tp;\n> -#else\n> -  template<typename _Tp>\n> -    using _UnboundedArray\n> -      = __enable_if_t<__is_array_unknown_bounds<_Tp>::value, _Tp>;\n> -#endif\n>\n>    // Constraint for overloads taking array types with known bound, U[N].\n> -#if __cpp_concepts\n>    template<typename _Tp>\n>      requires (extent_v<_Tp> != 0)\n>      using _BoundedArray = _Tp;\n> -#else\n> -  template<typename _Tp>\n> -    using _BoundedArray\n> -      = __enable_if_t<__is_array_known_bounds<_Tp>::value, _Tp>;\n> -#endif\n>\n>  #if __glibcxx_smart_ptr_for_overwrite\n>    // Constraint for overloads taking either non-array or bounded array,\n> U[N].\n> -#if __cpp_concepts\n>    template<typename _Tp>\n>      requires (!is_array_v<_Tp>) || (extent_v<_Tp> != 0)\n>      using _NotUnboundedArray = _Tp;\n> -#else\n> -  template<typename _Tp>\n> -    using _NotUnboundedArray\n> -      = __enable_if_t<!__is_array_unknown_bounds<_Tp>::value, _Tp>;\n> -#endif\n>  #endif // smart_ptr_for_overwrite\n>  #endif // shared_ptr_arrays\n>\n> diff --git a/libstdc++-v3/include/bits/shared_ptr_base.h\n> b/libstdc++-v3/include/bits/shared_ptr_base.h\n> index 01fd57180ecc..7366f1e04702 100644\n> --- a/libstdc++-v3/include/bits/shared_ptr_base.h\n> +++ b/libstdc++-v3/include/bits/shared_ptr_base.h\n> @@ -696,14 +696,9 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION\n>    // Partial specialization used for\n> make_shared_for_overwrite<non-array>().\n>    // This partial specialization is used when the allocator's value type\n>    // is the special _Sp_overwrite_tag type.\n> -#if __cpp_concepts\n>    template<typename _Tp, typename _Alloc, _Lock_policy _Lp>\n>      requires is_same_v<typename _Alloc::value_type, _Sp_overwrite_tag>\n>      class _Sp_counted_ptr_inplace<_Tp, _Alloc, _Lp> final\n> -#else\n> -  template<typename _Tp, template<typename> class _Alloc, _Lock_policy\n> _Lp>\n> -    class _Sp_counted_ptr_inplace<_Tp, _Alloc<_Sp_overwrite_tag>, _Lp>\n> final\n> -#endif\n>      : public _Sp_counted_base<_Lp>\n>      {\n>        [[no_unique_address]] _Alloc _M_alloc;\n> --\n> 2.54.0\n>\n>","headers":{"Return-Path":"<gcc-patches-bounces~incoming=patchwork.ozlabs.org@gcc.gnu.org>","X-Original-To":["incoming@patchwork.ozlabs.org","gcc-patches@gcc.gnu.org"],"Delivered-To":["patchwork-incoming@legolas.ozlabs.org","gcc-patches@gcc.gnu.org"],"Authentication-Results":["legolas.ozlabs.org;\n\tdkim=pass (1024-bit key;\n unprotected) header.d=redhat.com header.i=@redhat.com header.a=rsa-sha256\n header.s=mimecast20190719 header.b=FS6l+Sx6;\n\tdkim-atps=neutral","legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=gcc.gnu.org\n (client-ip=2620:52:6:3111::32; helo=vm01.sourceware.org;\n envelope-from=gcc-patches-bounces~incoming=patchwork.ozlabs.org@gcc.gnu.org;\n receiver=patchwork.ozlabs.org)","sourceware.org;\n\tdkim=pass (1024-bit key,\n unprotected) header.d=redhat.com header.i=@redhat.com header.a=rsa-sha256\n header.s=mimecast20190719 header.b=FS6l+Sx6","sourceware.org; dmarc=pass (p=quarantine dis=none)\n header.from=redhat.com","sourceware.org; spf=pass smtp.mailfrom=redhat.com","sourceware.org; arc=none smtp.remote-ip=170.10.133.124"],"Received":["from vm01.sourceware.org (vm01.sourceware.org\n [IPv6:2620:52:6:3111::32])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519 server-signature ECDSA (secp384r1) server-digest SHA384)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4g9Yxk44Krz1yJq\n\tfor <incoming@patchwork.ozlabs.org>; Wed, 06 May 2026 22:06:02 +1000 (AEST)","from vm01.sourceware.org (localhost [IPv6:::1])\n\tby sourceware.org (Postfix) with ESMTP id 6D5BB4BA23EF\n\tfor <incoming@patchwork.ozlabs.org>; Wed,  6 May 2026 12:06:00 +0000 (GMT)","from us-smtp-delivery-124.mimecast.com\n (us-smtp-delivery-124.mimecast.com [170.10.133.124])\n by sourceware.org (Postfix) with ESMTP id DC7E34BA2E04\n for <gcc-patches@gcc.gnu.org>; Wed,  6 May 2026 12:04:48 +0000 (GMT)","from mail-yw1-f198.google.com (mail-yw1-f198.google.com\n [209.85.128.198]) by relay.mimecast.com with ESMTP with STARTTLS\n (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id\n us-mta-636-4tvNZkY3OdmMRmh5LEPdlw-1; Wed, 06 May 2026 08:04:47 -0400","by mail-yw1-f198.google.com with SMTP id\n 00721157ae682-79878791ec6so140623327b3.3\n for <gcc-patches@gcc.gnu.org>; Wed, 06 May 2026 05:04:47 -0700 (PDT)"],"DKIM-Filter":["OpenDKIM Filter v2.11.0 sourceware.org 6D5BB4BA23EF","OpenDKIM Filter v2.11.0 sourceware.org DC7E34BA2E04"],"DMARC-Filter":"OpenDMARC Filter v1.4.2 sourceware.org DC7E34BA2E04","ARC-Filter":"OpenARC Filter v1.0.0 sourceware.org DC7E34BA2E04","ARC-Seal":"i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1778069089; cv=none;\n b=iWKZ7TmzcJdL6DsJBogSDCrZK5rylyNDpAHPF4LeMRbJIdW3PvirP7h6VYgOenBM5sgFn6uHd91i1oiA2CWlpr0979gcbXf7rNomR8yJkfVd0LMX302zRy0TfEoSnoIILsB4lfKl65H1I9UBJGxaiVWwt89Wt3GINXLNg9zBEYo=","ARC-Message-Signature":"i=1; a=rsa-sha256; d=sourceware.org; s=key;\n t=1778069089; c=relaxed/simple;\n bh=8ZYzfJC7iU5dKFnnm3rPEdyfmC4RclxVqZcAtoRMmwQ=;\n h=DKIM-Signature:MIME-Version:From:Date:Message-ID:Subject:To;\n b=bRYQkHpaZozz+0NMqLVE1gze1i9yDOC6cg6Izqn7a4zINk++YK/tyi3hyuvsuDhB+VZwFH2kWAJiqfIYM4ONj2aaoUPEFoHTZXdnmr+bL6cvlHbgmmzfP7WJCUCXh0c5R2F5J6TIV7OYRDPHHP5wLnSioZrJMlkRPnGXUfb74Ns=","ARC-Authentication-Results":"i=1; sourceware.org;\n dkim=pass (1024-bit key, unprotected)\n header.d=redhat.com header.i=@redhat.com header.a=rsa-sha256\n header.s=mimecast20190719 header.b=FS6l+Sx6","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;\n s=mimecast20190719; t=1778069088;\n h=from:from:reply-to:subject:subject:date:date:message-id:message-id:\n to:to:cc:cc:mime-version:mime-version:content-type:content-type:\n in-reply-to:in-reply-to:references:references;\n bh=gvFNNcpTaW4w7rt6pqMyH8rXZQ1Bk445sdtrns6945s=;\n b=FS6l+Sx6HYcaQcktC71vDQiFU0yojxALp63+73A+6kEJ66YdbtzJ3iqW0RWiumJ1k47qqw\n JbY8iM0vYAZqqgzhdWGuYPTs1lKLIECdll+hKIH1qt3/lWLfrgdKGCfKp7hurdjLizcSxJ\n TehcHTsRoCNmKTpBWdoff5YW5Rd4Cnc=","X-MC-Unique":"4tvNZkY3OdmMRmh5LEPdlw-1","X-Mimecast-MFC-AGG-ID":"4tvNZkY3OdmMRmh5LEPdlw_1778069087","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=1e100.net; s=20251104; t=1778069087; x=1778673887;\n h=cc:to:subject:message-id:date:from:in-reply-to:references\n :mime-version:x-gm-gg:x-gm-message-state:from:to:cc:subject:date\n :message-id:reply-to;\n bh=gvFNNcpTaW4w7rt6pqMyH8rXZQ1Bk445sdtrns6945s=;\n b=I+pFTJdm3besCb5wp2OPzLDjekNSmChWbEfuz/E31VaSyH1axHGj0BmgN0n1FlbyQE\n 0uWL2nHg4tw/M0886UJVt1XMx7TKliWBdckUKO/2GDMnCqNPDZzvUpKdz+jG3liq83Eh\n DBSdMKyvI3JMsIfdPJ60hsrtXLeQ3xKfQe09TAcRmgG53+v1RIPVq5HtTAawikyeSS62\n LaRHVbTL1hdd+FkRD1p7n+w7KkrLRVDLBmLObb4vAT46QEDGJRkbeC2U/Q6OM7DpF6I0\n XPG5JnUplwLPqa6TSjQGolvoHXcmCGg1F/+hq3tF8A+JDBNPKnucXU04h/FXp4zdvhRY\n PZgw==","X-Gm-Message-State":"AOJu0YySRpTPJpz8ZX26KxGllZJezn5X8WtGmh63fy1hcLGoejOpctAc\n gQVsPOnZK+v/42PX8TTN/JlMBsmSXx/aYd/Oq1m2ZFH9wWEf2LJc7DHbEk4W1VjaGm6nhNYr5hw\n r4iKTJFAMXLgJji4p9tX4Sxyf0HjWrm+wZm5lY2kF8jMB0O86XT1nOKnUClmGa+I8JEviN/ggpS\n s0+ciBJ7ad1hv8W3EFDlFMlT6PI6sfxeX4iw==","X-Gm-Gg":"AeBDietoIpysxNcdTYXGw/lynEdAvrHUnSCABJ/NNnUl9R1NA62sflFNDBYX1tI1v2J\n Am5VOGAgNy9dABIrPb7JhzyzsAWAHsQuNtU3zzwqF9ftlIsS0kLAO7Y8h6f8NvtG8cltrIfMbIO\n 1EnO8yJDGKVz4PwMdWw/3/fjxdDDvaJLm+voioMxlRXC3EqBnLPjEvoTid+HzO8Q3P9Nl0r6VsD\n JIK5uzRudsk4wXHwMKkmLGAC9a7c56+BPDJFQNR6Ix3Y63LFnyPBfZSmRb2iPScnH7/O5j4N6gw\n 3jo=","X-Received":["by 2002:a05:690c:113:b0:7b6:de92:adb5 with SMTP id\n 00721157ae682-7bdf5f0873fmr31089007b3.49.1778069086568;\n Wed, 06 May 2026 05:04:46 -0700 (PDT)","by 2002:a05:690c:113:b0:7b6:de92:adb5 with SMTP id\n 00721157ae682-7bdf5f0873fmr31088337b3.49.1778069085837; Wed, 06 May 2026\n 05:04:45 -0700 (PDT)"],"MIME-Version":"1.0","References":"<20260506085339.325517-1-jwakely@redhat.com>\n <20260506085339.325517-3-jwakely@redhat.com>","In-Reply-To":"<20260506085339.325517-3-jwakely@redhat.com>","From":"Tomasz Kaminski <tkaminsk@redhat.com>","Date":"Wed, 6 May 2026 14:04:35 +0200","X-Gm-Features":"AVHnY4KoU21ubvJdtHG8MlO5juOMbrrJ22meRqz_7cJBnnMXvWoLKC2zVAuuyp0","Message-ID":"\n <CAKvuMXBF-z-m_R_muBcg-0kNkXjG9ZBRiSi-oYvMMJN4Cm4i2A@mail.gmail.com>","Subject":"Re: [PATCH v2 3/3] libstdc++: Remove non-concepts fallback for\n std::make_shared_for_overwrite","To":"Jonathan Wakely <jwakely@redhat.com>","Cc":"gcc-patches@gcc.gnu.org, libstdc++@gcc.gnu.org","X-Mimecast-Spam-Score":"0","X-Mimecast-MFC-PROC-ID":"m-2BHeLztEuBe2Ymwb17PWE6qt-aNRROas1qOEzuSuM_1778069087","X-Mimecast-Originator":"redhat.com","Content-Type":"multipart/alternative; boundary=\"0000000000003f8729065124f837\"","X-BeenThere":"gcc-patches@gcc.gnu.org","X-Mailman-Version":"2.1.30","Precedence":"list","List-Id":"Gcc-patches mailing list <gcc-patches.gcc.gnu.org>","List-Unsubscribe":"<https://gcc.gnu.org/mailman/options/gcc-patches>,\n <mailto:gcc-patches-request@gcc.gnu.org?subject=unsubscribe>","List-Archive":"<https://gcc.gnu.org/pipermail/gcc-patches/>","List-Post":"<mailto:gcc-patches@gcc.gnu.org>","List-Help":"<mailto:gcc-patches-request@gcc.gnu.org?subject=help>","List-Subscribe":"<https://gcc.gnu.org/mailman/listinfo/gcc-patches>,\n <mailto:gcc-patches-request@gcc.gnu.org?subject=subscribe>","Errors-To":"gcc-patches-bounces~incoming=patchwork.ozlabs.org@gcc.gnu.org"}}]