From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-wr1-x42f.google.com (mail-wr1-x42f.google.com [IPv6:2a00:1450:4864:20::42f]) by sourceware.org (Postfix) with ESMTPS id 5D15E3860763; Wed, 14 Feb 2024 21:48:15 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 5D15E3860763 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=gmail.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 5D15E3860763 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=2a00:1450:4864:20::42f ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1707947297; cv=none; b=cdwsQVgij7Q/BoBJ2MV6HnAwSDf5xhWlW7/zmnkUTgFS4ibr2Rk/cuTk6zQOmvvXI+V4kVuwM0+lH4W3CJKt+i+0epzpqidLUq9hGDhCFa84XhhyjgJu403fibTcqn5dvclSPJG1UXCTMP2hjesDdiH+6EX+5gEAKLQWijO1gfM= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1707947297; c=relaxed/simple; bh=ICoUW86/f3B0wQMGAveuoQZTkRocSasH5XU1VDxUpPI=; h=DKIM-Signature:Message-ID:Date:MIME-Version:Subject:To:From; b=KjmN9v3biBbpIL03Tf0VDBrzf+Zk/hptECT/9FNIKxEqN5kfLBoSQUboSd7gQGWV+8dHiL4LYFz8ydxssDgrWZzJuuOCphJftD/AiE9ksoMsz9rphCVCRaPbRBfij6fiuJewNwasxC3npl7Cxv4VyjhK75rc2pYpCVgHrXMv/jM= ARC-Authentication-Results: i=1; server2.sourceware.org Received: by mail-wr1-x42f.google.com with SMTP id ffacd0b85a97d-3394b892691so155678f8f.1; Wed, 14 Feb 2024 13:48:15 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1707947294; x=1708552094; darn=gcc.gnu.org; h=in-reply-to:from:content-language:references:cc:to:subject :user-agent:mime-version:date:message-id:from:to:cc:subject:date :message-id:reply-to; bh=bNTIxPK61ZLf2xImy+tQerXYYm1J2h0x9nfDqFeFkqQ=; b=gOM4wgMF/izE9MllgP+T1mHmwaXR8uY6x5AUz//QR5JuJnoS98TtuhgEloKhJV8cbV et6SsP++eUr+PyNaLckEgnV7ga1pJ/ZjEOe11hlpq2HzKE11rvA4VwtkBOeGYmK/3CsC pPxMHtvVQ7iE6XOy0escbPI2BH6Ou4kelluqNpIXHkweqXRaT+4UNCQcsO2/dCuCQmtD uVjwdhzT91T4bnVU+cD2DDSyJXFwOujB73YG/bZjW8sKSHKRmYmZJahFZsRw4YgX3a8g wQKVToplT/uE61dRRtq12DvVuXE15X0DdqKQd9e2aMfbOJzv2xT0MPQ5IdWtJs9L0OTn edAg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1707947294; x=1708552094; h=in-reply-to:from:content-language:references:cc:to:subject :user-agent:mime-version:date:message-id:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=bNTIxPK61ZLf2xImy+tQerXYYm1J2h0x9nfDqFeFkqQ=; b=HUmPkHZ0Kb+S4GqowDcmnFM45iRYNggodQ1Lw6GEUzMekInmUYehZFscdK6DSUfg2P HmPLLexDCg1l2FoQcMKIv/nAXrJKih1Ckk1QBIcVb6HXAXy4vmnCEM38k6+5Q6LbdAqd hEpEuE/3h/gjkFSYTtoyMeYPVbydjwc88QJhKNxnUR+Jx3twuV4eKnQCX/nh1ZMsa7Me keotwgtR1HISf+d3P0siWQD2ytI16qUr8nJiA8n5utZYpYVCD5QyOh+1r+r4nqRQO+Yx 6Bt7W7IbmgH6nkwmYkiWgBeT5XjIqfkoJRmBAhX1mqJFKx6NgvDhRw16qT7DItGMwy4H JhTA== X-Forwarded-Encrypted: i=1; AJvYcCX6ZkDLKEZMhMK/1Nu9QY+mTcg8DVnun8zcAOMLA9SqPUyiuHJ4AlZF5/HSGE3t70i0FGxlTuDSvCt64a6KotwgsAFInWYuSA== X-Gm-Message-State: AOJu0YwsyXsdAPm0YYlm75R6FxCmwrH1naTnJjAvTGdQCbCUTVY4yycS p3WEBgeTvFfEQitmtA0TBtZMGz8DOR6mL456PDGmo1FqwhoWvW4s X-Google-Smtp-Source: AGHT+IEsERfjdstt/riNKqxKOcoMmY2XGeJP7lH9x9a9uKwopVy9u/ZAl/ubHO/NnvQjCoOunlSapQ== X-Received: by 2002:a5d:6907:0:b0:33c:e45c:f17f with SMTP id t7-20020a5d6907000000b0033ce45cf17fmr2741591wru.13.1707947293713; Wed, 14 Feb 2024 13:48:13 -0800 (PST) X-Forwarded-Encrypted: i=1; AJvYcCU5ena+fRvbpI8V+tiHesrJLi1dAwffNExV5KtMhDRk9KSdUg/4skRLrdT9TuA6d8dGGFr+lDl8Vkya52gM7oNR9LoKBg8+Vw== Received: from ?IPV6:2a01:e0a:1dc:b1c0:c9fa:181e:a7c1:49f7? ([2a01:e0a:1dc:b1c0:c9fa:181e:a7c1:49f7]) by smtp.gmail.com with ESMTPSA id j1-20020a05600c1c0100b00410833555d5sm3132003wms.21.2024.02.14.13.48.12 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Wed, 14 Feb 2024 13:48:12 -0800 (PST) Content-Type: multipart/mixed; boundary="------------20A508tEzLQfk0zD0QYuwEWk" Message-ID: Date: Wed, 14 Feb 2024 22:48:12 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH][_GLIBCXX_DEBUG] Fix std::__niter_base behavior To: Jonathan Wakely Cc: libstdc++ , gcc-patches References: <4c78d538-da4d-4a54-987d-3c4257913035@gmail.com> Content-Language: en-US From: =?UTF-8?Q?Fran=C3=A7ois_Dumont?= In-Reply-To: X-Spam-Status: No, score=-9.7 required=5.0 tests=BAYES_00,BODY_8BITS,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,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: This is a multi-part message in MIME format. --------------20A508tEzLQfk0zD0QYuwEWk Content-Type: multipart/alternative; boundary="------------xW9ZfBO7uOlCc089H9SgYHIj" --------------xW9ZfBO7uOlCc089H9SgYHIj Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit On 14/02/2024 20:44, Jonathan Wakely wrote: > > > On Wed, 14 Feb 2024 at 18:39, François Dumont > wrote: > > libstdc++: [_GLIBCXX_DEBUG] Fix std::__niter_base behavior > > std::__niter_base is used in _GLIBCXX_DEBUG mode to remove > _Safe_iterator<> > wrapper on random access iterators. But doing so it should also > preserve > original > behavior to remove __normal_iterator wrapper. > > libstdc++-v3/ChangeLog: > >      * include/bits/stl_algobase.h (std::__niter_base): Redefine the > overload >      definitions for __gnu_debug::_Safe_iterator. >      * include/debug/safe_iterator.tcc (std::__niter_base): Adapt > declarations. > > Ok to commit once all tests completed (still need to check > pre-c++11) ? > > > > The declaration in  include/bits/stl_algobase.h has a > noexcept-specifier but the definition in > include/debug/safe_iterator.tcc does not have one - that seems wrong > (I'm surprised it even compiles). It does ! I thought it was only necessary at declaration, and I also had troubles doing it right at definition because of the interaction with the auto and ->. Now simplified and consistent in this new proposal. > Just using std::is_nothrow_copy_constructible<_Ite> seems simpler, > that will be true for __normal_iterator if > is_nothrow_copy_constructible is true. > Ok > The definition in include/debug/safe_iterator.tcc should use > std::declval<_Ite>() not declval<_Ite>(). Is there any reason why the > definition uses a late-specified-return-type (i.e. auto and ->) when > the declaration doesn't? > > I initially plan to use '-> std::decltype(std::__niter_base(__it.base()))' but this did not compile, ambiguity issue. So I resort to using std::declval and I could have then done it the same way as declaration, done now. Attached is what I'm testing, ok to commit once fully tested ? François --------------xW9ZfBO7uOlCc089H9SgYHIj-- --------------20A508tEzLQfk0zD0QYuwEWk Content-Type: text/plain; charset=UTF-8; name="niter_base_patch.txt" Content-Disposition: attachment; filename="niter_base_patch.txt" Content-Transfer-Encoding: base64 ZGlmZiAtLWdpdCBhL2xpYnN0ZGMrKy12My9pbmNsdWRlL2JpdHMvc3RsX2Fs Z29iYXNlLmggYi9saWJzdGRjKystdjMvaW5jbHVkZS9iaXRzL3N0bF9hbGdv YmFzZS5oCmluZGV4IGU3MjA3ZjY3MjY2Li4wZjczZGExMzE3MiAxMDA2NDQK LS0tIGEvbGlic3RkYysrLXYzL2luY2x1ZGUvYml0cy9zdGxfYWxnb2Jhc2Uu aAorKysgYi9saWJzdGRjKystdjMvaW5jbHVkZS9iaXRzL3N0bF9hbGdvYmFz ZS5oCkBAIC0zMTcsMTIgKzMxNywyNiBAQCBfR0xJQkNYWF9CRUdJTl9OQU1F U1BBQ0VfVkVSU0lPTgogICAgIF9HTElCQ1hYX05PRVhDRVBUX0lGKHN0ZDo6 aXNfbm90aHJvd19jb3B5X2NvbnN0cnVjdGlibGU8X0l0ZXJhdG9yPjo6dmFs dWUpCiAgICAgeyByZXR1cm4gX19pdDsgfQogCisjaWYgX19jcGx1c3BsdXMg PCAyMDExMDNMCiAgIHRlbXBsYXRlPHR5cGVuYW1lIF9JdGUsIHR5cGVuYW1l IF9TZXE+Ci0gICAgX0dMSUJDWFgyMF9DT05TVEVYUFIKICAgICBfSXRlCiAg ICAgX19uaXRlcl9iYXNlKGNvbnN0IDo6X19nbnVfZGVidWc6Ol9TYWZlX2l0 ZXJhdG9yPF9JdGUsIF9TZXEsCiAJCSBzdGQ6OnJhbmRvbV9hY2Nlc3NfaXRl cmF0b3JfdGFnPiYpOwogCisgdGVtcGxhdGU8dHlwZW5hbWUgX0l0ZSwgdHlw ZW5hbWUgX0NvbnQsIHR5cGVuYW1lIF9TZXE+CisgICAgX0l0ZQorICAgIF9f bml0ZXJfYmFzZShjb25zdCA6Ol9fZ251X2RlYnVnOjpfU2FmZV9pdGVyYXRv cjwKKwkJIDo6X19nbnVfY3h4OjpfX25vcm1hbF9pdGVyYXRvcjxfSXRlLCBf Q29udD4sIF9TZXEsCisJCSBzdGQ6OnJhbmRvbV9hY2Nlc3NfaXRlcmF0b3Jf dGFnPiYpOworI2Vsc2UKKyAgdGVtcGxhdGU8dHlwZW5hbWUgX0l0ZSwgdHlw ZW5hbWUgX1NlcT4KKyAgICBfR0xJQkNYWDIwX0NPTlNURVhQUgorICAgIGRl Y2x0eXBlKHN0ZDo6X19uaXRlcl9iYXNlKHN0ZDo6ZGVjbHZhbDxfSXRlPigp KSkKKyAgICBfX25pdGVyX2Jhc2UoY29uc3QgOjpfX2dudV9kZWJ1Zzo6X1Nh ZmVfaXRlcmF0b3I8X0l0ZSwgX1NlcSwKKwkJIHN0ZDo6cmFuZG9tX2FjY2Vz c19pdGVyYXRvcl90YWc+JikKKyAgICBub2V4Y2VwdChzdGQ6OmlzX25vdGhy b3dfY29weV9jb25zdHJ1Y3RpYmxlPF9JdGU+Ojp2YWx1ZSk7CisjZW5kaWYK KwogICAvLyBSZXZlcnNlIHRoZSBfX25pdGVyX2Jhc2UgdHJhbnNmb3JtYXRp b24gdG8gZ2V0IGEKICAgLy8gX19ub3JtYWxfaXRlcmF0b3IgYmFjayBhZ2Fp biAodGhpcyBhc3N1bWVzIHRoYXQgX19ub3JtYWxfaXRlcmF0b3IKICAgLy8g aXMgb25seSB1c2VkIHRvIHdyYXAgcmFuZG9tIGFjY2VzcyBpdGVyYXRvcnMs IGxpa2UgcG9pbnRlcnMpLgpkaWZmIC0tZ2l0IGEvbGlic3RkYysrLXYzL2lu Y2x1ZGUvZGVidWcvc2FmZV9pdGVyYXRvci50Y2MgYi9saWJzdGRjKystdjMv aW5jbHVkZS9kZWJ1Zy9zYWZlX2l0ZXJhdG9yLnRjYwppbmRleCA2ZWI3MGNi ZGEwNC4uYThiMjQyMzNlODUgMTAwNjQ0Ci0tLSBhL2xpYnN0ZGMrKy12My9p bmNsdWRlL2RlYnVnL3NhZmVfaXRlcmF0b3IudGNjCisrKyBiL2xpYnN0ZGMr Ky12My9pbmNsdWRlL2RlYnVnL3NhZmVfaXRlcmF0b3IudGNjCkBAIC0yMzUs MTMgKzIzNSwyOSBAQCBuYW1lc3BhY2Ugc3RkIF9HTElCQ1hYX1ZJU0lCSUxJ VFkoZGVmYXVsdCkKIHsKIF9HTElCQ1hYX0JFR0lOX05BTUVTUEFDRV9WRVJT SU9OCiAKKyNpZiBfX2NwbHVzcGx1cyA8IDIwMTEwM0wKICAgdGVtcGxhdGU8 dHlwZW5hbWUgX0l0ZSwgdHlwZW5hbWUgX1NlcT4KLSAgICBfR0xJQkNYWDIw X0NPTlNURVhQUgogICAgIF9JdGUKICAgICBfX25pdGVyX2Jhc2UoY29uc3Qg OjpfX2dudV9kZWJ1Zzo6X1NhZmVfaXRlcmF0b3I8X0l0ZSwgX1NlcSwKIAkJ IHN0ZDo6cmFuZG9tX2FjY2Vzc19pdGVyYXRvcl90YWc+JiBfX2l0KQogICAg IHsgcmV0dXJuIF9faXQuYmFzZSgpOyB9CiAKKyAgdGVtcGxhdGU8dHlwZW5h bWUgX0l0ZSwgdHlwZW5hbWUgX0NvbnQsIHR5cGVuYW1lIF9EYmdTZXE+Cisg ICAgX0l0ZQorICAgIF9fbml0ZXJfYmFzZShjb25zdCA6Ol9fZ251X2RlYnVn OjpfU2FmZV9pdGVyYXRvcjwKKwkJIDo6X19nbnVfY3h4OjpfX25vcm1hbF9p dGVyYXRvcjxfSXRlLCBfQ29udD4sIF9EYmdTZXEsCisJCSBzdGQ6OnJhbmRv bV9hY2Nlc3NfaXRlcmF0b3JfdGFnPiYgX19pdCkKKyAgICB7IHJldHVybiBf X2l0LmJhc2UoKS5iYXNlKCk7IH0KKyNlbHNlCisgIHRlbXBsYXRlPHR5cGVu YW1lIF9JdGUsIHR5cGVuYW1lIF9TZXE+CisgICAgX0dMSUJDWFgyMF9DT05T VEVYUFIKKyAgICBkZWNsdHlwZShzdGQ6Ol9fbml0ZXJfYmFzZShzdGQ6OmRl Y2x2YWw8X0l0ZT4oKSkpCisgICAgX19uaXRlcl9iYXNlKGNvbnN0IDo6X19n bnVfZGVidWc6Ol9TYWZlX2l0ZXJhdG9yPF9JdGUsIF9TZXEsCisJCSBzdGQ6 OnJhbmRvbV9hY2Nlc3NfaXRlcmF0b3JfdGFnPiYgX19pdCkKKyAgICBub2V4 Y2VwdChzdGQ6OmlzX25vdGhyb3dfY29weV9jb25zdHJ1Y3RpYmxlPF9JdGU+ Ojp2YWx1ZSkKKyAgICB7IHJldHVybiBzdGQ6Ol9fbml0ZXJfYmFzZShfX2l0 LmJhc2UoKSk7IH0KKyNlbmRpZgorCiAgIHRlbXBsYXRlPGJvb2wgX0lzTW92 ZSwKIAkgICB0eXBlbmFtZSBfSXRlLCB0eXBlbmFtZSBfU2VxLCB0eXBlbmFt ZSBfQ2F0LCB0eXBlbmFtZSBfT0k+CiAgICAgX0dMSUJDWFgyMF9DT05TVEVY UFIK --------------20A508tEzLQfk0zD0QYuwEWk--