From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-wm1-x32d.google.com (mail-wm1-x32d.google.com [IPv6:2a00:1450:4864:20::32d]) by sourceware.org (Postfix) with ESMTPS id CB531385742F; Thu, 29 Jul 2021 23:19:20 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org CB531385742F Received: by mail-wm1-x32d.google.com with SMTP id o7-20020a05600c5107b0290257f956e02dso1458093wms.1; Thu, 29 Jul 2021 16:19:20 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=BmmTo1p8nEzqlTuAIPwFBkc6h8SG1raQfv/tZpkrR1M=; b=sEa61Ag3iz5aE52bcpSViJTsmvAspuV3TMydmMl7zPtw6k1mEJVTgMUdZCtLrNm7iM QrnF8xg72rT7BoZ2lawK84fg6wgmteMxBmcC/S9APM/T1FIN99ogGHdRJ07aPL/GYtLS gAgJJjzDn1Z737A2pAl5Lh0uKcG88d+dppep0BUEsTvTummKBhraBj0fKWCphS70KMRu 6IjUdEeanMnaDW/3wfCRGuq50p42SnFVFfP9cGqbTv1eFNItkG3B+Jzb3jy6//Jo26fv Vkmd7+SXzoZ0d5fNIuCJFZA4715WLZXswUPFrji/jrPQ2qHju8LjLgGngUB35bStBk1g y2rA== X-Gm-Message-State: AOAM5328zSwV8loRfSZ2b0Nd23SuFs73cIm39Ye4Nty1SD4wm9YOhlgt i+p2XVPa5VJ/sFSR/WtJVgdkDbg0kHY5eVGul9Q= X-Google-Smtp-Source: ABdhPJzRQlU0iqwqaeyMBPiStKGvORT+O87EbmXcX/hZjdtjb9RkYWLbsoeoDptZk2erU7oUChbaEaIzjlRn4wn/ECc= X-Received: by 2002:a1c:a187:: with SMTP id k129mr7128863wme.17.1627600759895; Thu, 29 Jul 2021 16:19:19 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Jonathan Wakely Date: Fri, 30 Jul 2021 00:19:06 +0100 Message-ID: Subject: Re: [PATCH] fix breakage from "libstdc++: Remove unnecessary uses of " To: Hans-Peter Nilsson Cc: gcc-patches , "libstdc++" , Jonathan Wakely X-Spam-Status: No, score=-8.0 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, FREEMAIL_FROM, GIT_PATCH_0, HTML_MESSAGE, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, 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 Content-Type: text/plain; charset="UTF-8" X-Content-Filtered-By: Mailman/MimeDel 2.1.29 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: Thu, 29 Jul 2021 23:19:22 -0000 On Thu, 29 Jul 2021, 23:44 Hans-Peter Nilsson, wrote: > Commit r12-2534 was incomplete and (by inspection derived from > an MMIX build) failing for targets without an insn for > compare_and_swap for pointer-size objects, IOW for targets for > which "ATOMIC_POINTER_LOCK_FREE != 2" is true: > > x/gcc/libstdc++-v3/src/c++17/memory_resource.cc: In member function > 'std::pmr::memory_resource* > > std::pmr::{anonymous}::atomic_mem_res::exchange(std::pmr::memory_resource*)': > x/gcc/libstdc++-v3/src/c++17/memory_resource.cc:140:21: error: > 'exchange' is not a member of 'std' > 140 | return std::exchange(val, r); > | ^~~~~~~~ > make[5]: *** [Makefile:577: memory_resource.lo] Error 1 > make[5]: Leaving directory > '/home/hp/tmp/newmmix-r12-2579-p3/gccobj/mmix/libstdc++-v3/src/c++17' > > This fix was derived from edits elsewhere in that patch. > > Tested mmix-knuth-mmixware, restoring build (together with > target-reviving patches as MMIX is currently and at that commit > broken for target-specific reasons). > > Ok to commit? > Yes, thanks. (We could also just include to get the declaration of std::exchange, since this isn't a header so we can include whatever we want, but this is fine.) > libstdc++-v3/: > * src/c++17/memory_resource.cc: Use __exchange instead > of std::exchange. > --- > libstdc++-v3/src/c++17/memory_resource.cc | 6 +++--- > 1 file changed, 3 insertions(+), 3 deletions(-) > > diff --git a/libstdc++-v3/src/c++17/memory_resource.cc > b/libstdc++-v3/src/c++17/memory_resource.cc > index 5dfc29fc0ec8..1ba79903f870 100644 > --- a/libstdc++-v3/src/c++17/memory_resource.cc > +++ b/libstdc++-v3/src/c++17/memory_resource.cc > @@ -29,7 +29,7 @@ > #include > #if ATOMIC_POINTER_LOCK_FREE != 2 > # include // std::mutex, std::lock_guard > -# include // std::exchange > +# include // std::__exchange > #endif > > namespace std _GLIBCXX_VISIBILITY(default) > @@ -117,7 +117,7 @@ namespace pmr > memory_resource* exchange(memory_resource* r) > { > lock_guard lock(mx); > - return std::exchange(val, r); > + return std::__exchange(val, r); > } > }; > #else > @@ -137,7 +137,7 @@ namespace pmr > > memory_resource* exchange(memory_resource* r) > { > - return std::exchange(val, r); > + return std::__exchange(val, r); > } > }; > #endif // ATOMIC_POINTER_LOCK_FREE == 2 > -- > 2.20.1 > >