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 [216.205.24.124]) by sourceware.org (Postfix) with ESMTPS id A63B53857820 for ; Thu, 11 Nov 2021 22:02:01 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org A63B53857820 Received: from mail-yb1-f197.google.com (mail-yb1-f197.google.com [209.85.219.197]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-97-DZXb0t02PBWwaxgle6kNzA-1; Thu, 11 Nov 2021 17:01:59 -0500 X-MC-Unique: DZXb0t02PBWwaxgle6kNzA-1 Received: by mail-yb1-f197.google.com with SMTP id r18-20020a25ac52000000b005c9047c420bso7063824ybd.4 for ; Thu, 11 Nov 2021 14:01:59 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=9ySFHymeSgJfNVTxwKfKwFSNFd5VkbOtYJHFBVEmBqQ=; b=pmMzn7VNTg0/R6TdIk3426t8L49VwqBsAtcBeXZDgcYxyyY7FZWdi0kgMrqu+E1tin v6yeWK4w15UVL3QXJzNEoe8G4qxqwAgKx6HBi2EeH6Kwa9R3sxSwH7C87ka3mdyHJBY6 Fht9SBx/f0ml/+IdvpJzIQTWDQ4xdz8cvzNvl0vmGzDvf4ogfL2VYa+BTzxjEKtbHyp6 ldC9drmaYcTwunhSFt+jekX/Q7YejCTAV3MQMb06ZIpn9HVLb6ND7mwSyKwtRQ16XQ5i 9cR0vNCw7s1QIoxa/3e1tbxHmnlGQPUylwYvlYU+hg4cZj3JopWwOhlotLgoe7/5CfeH atcA== X-Gm-Message-State: AOAM532Q0CNSAnAq3+BJ4Uprh9lUv1qkRXDrtEPH20bHQdaYnREPB9Kk 7uJIlKty00veISw9z1AWZxoO+Ft1y539Rgpw35wy64LL9d3oasm1qeH08fAFpdgsE0NxdGieNq3 BAQV0etfXAar6U4xQ1oOHqxO/Y7KNpTg= X-Received: by 2002:a25:238a:: with SMTP id j132mr11321248ybj.530.1636668119295; Thu, 11 Nov 2021 14:01:59 -0800 (PST) X-Google-Smtp-Source: ABdhPJzCRuLt6emQYqacbI9QYQ+HvgGdQFcTNPtElBfBMSBzjugGkot+ITRSzBf5GhCusJHZxwk4pOKlvo6o5Op/3/0= X-Received: by 2002:a25:238a:: with SMTP id j132mr11321221ybj.530.1636668119073; Thu, 11 Nov 2021 14:01:59 -0800 (PST) MIME-Version: 1.0 References: <4eec3fb9-851e-3e4e-f9f4-1110db3af747@gmail.com> <6c349652-8b6f-2027-08c3-6ce58a765aeb@gmail.com> <22bf1b42-8cf4-7a6e-d5dc-c322ccbb2b46@gmail.com> <68641ea0-2a14-e3a5-8315-a7b3a9c1fdb4@gmail.com> <74588721-da55-6caa-d578-336410bd0112@gmail.com> In-Reply-To: <74588721-da55-6caa-d578-336410bd0112@gmail.com> From: Jonathan Wakely Date: Thu, 11 Nov 2021 22:01:48 +0000 Message-ID: Subject: Re: [PATH][_GLIBCXX_DEBUG] Fix unordered container merge To: =?UTF-8?Q?Fran=C3=A7ois_Dumont?= Cc: "libstdc++" , gcc-patches X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com X-Spam-Status: No, score=-7.3 required=5.0 tests=BAYES_00, DKIMWL_WL_HIGH, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, HTML_MESSAGE, RCVD_IN_DNSWL_LOW, RCVD_IN_MSPIKE_H2, 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 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable 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, 11 Nov 2021 22:02:03 -0000 On Thu, 11 Nov 2021 at 21:33, Fran=C3=A7ois Dumont wrote: > On 11/11/21 9:41 pm, Jonathan Wakely wrote: > > > > On Wed, 10 Nov 2021 at 11:55, Jonathan Wakely wrote: > >> >> >> On Tue, 9 Nov 2021 at 16:25, Jonathan Wakely wrote: >> >>> >>> >>> On Mon, 8 Nov 2021 at 21:36, Fran=C3=A7ois Dumont >>> wrote: >>> >>>> Yet another version this time with only 1 guard implementation. The >>>> predicate to invalidate the safe iterators has been externalized. >>>> >>>> Ok to commit ? >>>> >>> >>> I like this version a lot - thanks for persisting with it. >>> >>> >> >> I'm seeing new failures with this: >> >> make check RUNTESTFLAGS=3D"conformance.exp=3D23_containers/*/invalidatio= n/* >> --target_board=3Dunix/-D_GLIBCXX_DEBUG/-std=3Dgnu++98" >> >> FAIL: 23_containers/deque/debug/invalidation/1.cc (test for excess >> errors) >> FAIL: 23_containers/list/debug/invalidation/1.cc (test for excess errors= ) >> FAIL: 23_containers/map/debug/invalidation/1.cc (test for excess errors) >> FAIL: 23_containers/multimap/debug/invalidation/1.cc (test for excess >> errors) >> FAIL: 23_containers/multiset/debug/invalidation/1.cc (test for excess >> errors) >> FAIL: 23_containers/set/debug/invalidation/1.cc (test for excess errors) >> FAIL: 23_containers/vector/debug/invalidation/1.cc (test for excess >> errors) >> > > It's caused by: > > --- a/libstdc++-v3/include/debug/safe_container.h > +++ b/libstdc++-v3/include/debug/safe_container.h > @@ -78,7 +78,6 @@ namespace __gnu_debug > { } > #endif > > - public: > // Copy assignment invalidate all iterators. > _Safe_container& > operator=3D(const _Safe_container&) _GLIBCXX_NOEXCEPT > > > For C++98 mode that gets called explicitly by the user-provided copy > assignment operators in the derived class. > > I'm testing the attached fix. > > I am also testing a patch but yours looks nicer so go ahead. > I've pushed it to trunk now. > I'll just complete it with some additional cleanup I did to suppress > _Safe_container::_M_safe() and reduce usages of _M_base(). > Sounds good, thanks.