From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-wm1-x32e.google.com (mail-wm1-x32e.google.com [IPv6:2a00:1450:4864:20::32e]) by sourceware.org (Postfix) with ESMTPS id 8A2943858408; Thu, 11 Nov 2021 21:33:30 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 8A2943858408 Received: by mail-wm1-x32e.google.com with SMTP id 77-20020a1c0450000000b0033123de3425so8390505wme.0; Thu, 11 Nov 2021 13:33:30 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:subject:to:cc:references:from:message-id:date :user-agent:mime-version:in-reply-to:content-language; bh=R1JwaMZ3B4DjH6I7POnJQLlWVNKNDTto9Bu5zEDoBpc=; b=oQ1IsyFVNPTvhjJ3BYlK9tHDRpXeqDEapR95tJTFvpo+36xIfCgvNAKqIF8qKqPlot 6zSc58eYk+DXhpMW6QZHqYW5WLIqIN+e78cOkKNazlVVrdL6D787xVd3yZApJLjTilBI wohLEgKRAn4VOUenillL/y0ed/tGhwOqfHeAEOLnSacDeg+PyeXqGn/CVP3EqswVbFyZ wIWUIFsKLCtvpNmhibUMTaRvqX+ykVVyIpqkpwWueizbkvv5LHB1yZY9dEZAiUZugIRQ ElbSfCzIYuMsAtIVXntu+9JRu+IA7yM02be25rl2Mz2oNUVqlnW8mjgBVRts+wWAstxG 5uzA== X-Gm-Message-State: AOAM5312PwhcVGijLcu+2eKMsC9p5uR+XNdIzEwN9Gh33+HxELs/XYA2 MT+POUqF8ceMz9+ZOmcNTVHgf7qgNXE= X-Google-Smtp-Source: ABdhPJyHge3tOeRdqNi12LHJSiDIbwtWUb36kpi634XLE1XLVGgn1OfujgKvZJoB38qFQqEplZk5OQ== X-Received: by 2002:a05:600c:34c2:: with SMTP id d2mr9542915wmq.142.1636666409084; Thu, 11 Nov 2021 13:33:29 -0800 (PST) Received: from ?IPv6:2a01:e0a:1dc:b1c0:8455:5bb5:efb5:e2ac? ([2a01:e0a:1dc:b1c0:8455:5bb5:efb5:e2ac]) by smtp.googlemail.com with ESMTPSA id o1sm4126788wrn.63.2021.11.11.13.33.28 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Thu, 11 Nov 2021 13:33:28 -0800 (PST) Subject: Re: [PATH][_GLIBCXX_DEBUG] Fix unordered container merge To: Jonathan Wakely Cc: libstdc++ , gcc-patches 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> From: =?UTF-8?Q?Fran=c3=a7ois_Dumont?= Message-ID: <74588721-da55-6caa-d578-336410bd0112@gmail.com> Date: Thu, 11 Nov 2021 22:33:27 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.13.0 MIME-Version: 1.0 In-Reply-To: Content-Language: en-US X-Spam-Status: No, score=-4.8 required=5.0 tests=BAYES_00, BODY_8BITS, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, FREEMAIL_FROM, HTML_MESSAGE, NICE_REPLY_A, 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; format=flowed Content-Transfer-Encoding: 8bit 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 21:33:35 -0000 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çois 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="conformance.exp=23_containers/*/invalidation/* > --target_board=unix/-D_GLIBCXX_DEBUG/-std=gnu++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=(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'll just complete it with some additional cleanup I did to suppress _Safe_container::_M_safe() and reduce usages of _M_base(). Thanks