From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 88001 invoked by alias); 14 Apr 2015 08:24:27 -0000 Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Received: (qmail 87980 invoked by uid 89); 14 Apr 2015 08:24:27 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-0.7 required=5.0 tests=AWL,BAYES_50,KAM_ASCII_DIVIDERS,KAM_LAZY_DOMAIN_SECURITY,T_RP_MATCHES_RCVD autolearn=no version=3.3.2 X-Spam-User: qpsmtpd, 2 recipients X-HELO: mail2-relais-roc.national.inria.fr Received: from mail2-relais-roc.national.inria.fr (HELO mail2-relais-roc.national.inria.fr) (192.134.164.83) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (CAMELLIA256-SHA encrypted) ESMTPS; Tue, 14 Apr 2015 08:24:25 +0000 Received: from stedding.saclay.inria.fr (HELO stedding) ([193.55.250.194]) by mail2-relais-roc.national.inria.fr with ESMTP/TLS/AES128-SHA; 14 Apr 2015 10:24:21 +0200 Received: from glisse (helo=localhost) by stedding with local-esmtp (Exim 4.84) (envelope-from ) id 1Yhw8r-0007fw-NQ; Tue, 14 Apr 2015 10:24:21 +0200 Date: Tue, 14 Apr 2015 08:24:00 -0000 From: Marc Glisse To: Jonathan Wakely cc: libstdc++@gcc.gnu.org, gcc-patches@gcc.gnu.org Subject: Re: [libstdc++/61347] std::distance(list.first(),list.end()) in O(1) In-Reply-To: <20150413151057.GK9755@redhat.com> Message-ID: References: <20150413134025.GI9755@redhat.com> <20150413151057.GK9755@redhat.com> User-Agent: Alpine 2.02 (DEB 1266 2009-07-14) MIME-Version: 1.0 Content-Type: MULTIPART/MIXED; BOUNDARY="8323329-1942501123-1428999861=:27632" X-SW-Source: 2015-04/txt/msg00642.txt.bz2 This message is in MIME format. The first part should be readable text, while the remaining parts are likely unreadable without MIME-aware tools. --8323329-1942501123-1428999861=:27632 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed Content-length: 980 On Mon, 13 Apr 2015, Jonathan Wakely wrote: > I don't have a preference, but I think the forward declarations should > work without problems. includes bits/stl_iterator_base_funcs.h > so if the forward declarations didn't match the definitions for some > reason we'd know right away. Here is a new version that also passes the tests. I guess we will have plenty of time during stage1 to notice if it causes problems. We could probably move the new definitions of __distance to bits/stl_iterator_base_funcs.h, I don't have a clear preference. 2015-04-14 Marc Glisse PR libstdc++/61347 * include/bits/stl_iterator_base_funcs.h (_List_iterator, _List_const_iterator): Declare. (__distance): Declare new overloads for _List_iterator and _List_const_iterator. * include/bits/stl_list.h (__distance): New overloads for _List_iterator and _List_const_iterator. * testsuite/23_containers/list/61347.cc: New testcase. -- Marc Glisse --8323329-1942501123-1428999861=:27632 Content-Type: TEXT/PLAIN; charset=US-ASCII; name=p5 Content-Transfer-Encoding: BASE64 Content-ID: Content-Description: Content-Disposition: inline; filename=p5 Content-length: 8085 SW5kZXg6IGluY2x1ZGUvYml0cy9zdGxfaXRlcmF0b3JfYmFzZV9mdW5jcy5o DQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0gaW5jbHVkZS9iaXRzL3N0 bF9pdGVyYXRvcl9iYXNlX2Z1bmNzLmgJKHJldmlzaW9uIDIyMjA3NikNCisr KyBpbmNsdWRlL2JpdHMvc3RsX2l0ZXJhdG9yX2Jhc2VfZnVuY3MuaAkod29y a2luZyBjb3B5KQ0KQEAgLTU5LDIwICs1OSwyNiBAQA0KICNpZm5kZWYgX1NU TF9JVEVSQVRPUl9CQVNFX0ZVTkNTX0gNCiAjZGVmaW5lIF9TVExfSVRFUkFU T1JfQkFTRV9GVU5DU19IIDENCiANCiAjcHJhZ21hIEdDQyBzeXN0ZW1faGVh ZGVyDQogDQogI2luY2x1ZGUgPGJpdHMvY29uY2VwdF9jaGVjay5oPg0KICNp bmNsdWRlIDxkZWJ1Zy9kZWJ1Zy5oPg0KIA0KIG5hbWVzcGFjZSBzdGQgX0dM SUJDWFhfVklTSUJJTElUWShkZWZhdWx0KQ0KIHsNCitfR0xJQkNYWF9CRUdJ Tl9OQU1FU1BBQ0VfQ09OVEFJTkVSDQorICAvLyBGb3J3YXJkIGRlY2xhcmF0 aW9uIGZvciB0aGUgb3ZlcmxvYWRzIG9mIF9fZGlzdGFuY2UuDQorICB0ZW1w bGF0ZSA8dHlwZW5hbWU+IHN0cnVjdCBfTGlzdF9pdGVyYXRvcjsNCisgIHRl bXBsYXRlIDx0eXBlbmFtZT4gc3RydWN0IF9MaXN0X2NvbnN0X2l0ZXJhdG9y Ow0KK19HTElCQ1hYX0VORF9OQU1FU1BBQ0VfQ09OVEFJTkVSDQorDQogX0dM SUJDWFhfQkVHSU5fTkFNRVNQQUNFX1ZFUlNJT04NCiANCiAgIHRlbXBsYXRl PHR5cGVuYW1lIF9JbnB1dEl0ZXJhdG9yPg0KICAgICBpbmxpbmUgdHlwZW5h bWUgaXRlcmF0b3JfdHJhaXRzPF9JbnB1dEl0ZXJhdG9yPjo6ZGlmZmVyZW5j ZV90eXBlDQogICAgIF9fZGlzdGFuY2UoX0lucHV0SXRlcmF0b3IgX19maXJz dCwgX0lucHV0SXRlcmF0b3IgX19sYXN0LA0KICAgICAgICAgICAgICAgIGlu cHV0X2l0ZXJhdG9yX3RhZykNCiAgICAgew0KICAgICAgIC8vIGNvbmNlcHQg cmVxdWlyZW1lbnRzDQogICAgICAgX19nbGliY3h4X2Z1bmN0aW9uX3JlcXVp cmVzKF9JbnB1dEl0ZXJhdG9yQ29uY2VwdDxfSW5wdXRJdGVyYXRvcj4pDQog DQpAQCAtODksMjAgKzk1LDM1IEBAIF9HTElCQ1hYX0JFR0lOX05BTUVTUEFD RV9WRVJTSU9ODQogICAgIGlubGluZSB0eXBlbmFtZSBpdGVyYXRvcl90cmFp dHM8X1JhbmRvbUFjY2Vzc0l0ZXJhdG9yPjo6ZGlmZmVyZW5jZV90eXBlDQog ICAgIF9fZGlzdGFuY2UoX1JhbmRvbUFjY2Vzc0l0ZXJhdG9yIF9fZmlyc3Qs IF9SYW5kb21BY2Nlc3NJdGVyYXRvciBfX2xhc3QsDQogICAgICAgICAgICAg ICAgcmFuZG9tX2FjY2Vzc19pdGVyYXRvcl90YWcpDQogICAgIHsNCiAgICAg ICAvLyBjb25jZXB0IHJlcXVpcmVtZW50cw0KICAgICAgIF9fZ2xpYmN4eF9m dW5jdGlvbl9yZXF1aXJlcyhfUmFuZG9tQWNjZXNzSXRlcmF0b3JDb25jZXB0 PA0KIAkJCQkgIF9SYW5kb21BY2Nlc3NJdGVyYXRvcj4pDQogICAgICAgcmV0 dXJuIF9fbGFzdCAtIF9fZmlyc3Q7DQogICAgIH0NCiANCisjaWYgX0dMSUJD WFhfVVNFX0NYWDExX0FCSQ0KKyAgLy8gRm9yd2FyZCBkZWNsYXJhdGlvbiBi ZWNhdXNlIG9mIHRoZSBxdWFsaWZpZWQgY2FsbCBpbiBkaXN0YW5jZS4NCisg IHRlbXBsYXRlPHR5cGVuYW1lIF9UcD4NCisgICAgcHRyZGlmZl90DQorICAg IF9fZGlzdGFuY2UoX0dMSUJDWFhfU1REX0M6Ol9MaXN0X2l0ZXJhdG9yPF9U cD4sDQorCSAgICAgICBfR0xJQkNYWF9TVERfQzo6X0xpc3RfaXRlcmF0b3I8 X1RwPiwNCisJICAgICAgIGlucHV0X2l0ZXJhdG9yX3RhZyk7DQorDQorICB0 ZW1wbGF0ZTx0eXBlbmFtZSBfVHA+DQorICAgIHB0cmRpZmZfdA0KKyAgICBf X2Rpc3RhbmNlKF9HTElCQ1hYX1NURF9DOjpfTGlzdF9jb25zdF9pdGVyYXRv cjxfVHA+LA0KKwkgICAgICAgX0dMSUJDWFhfU1REX0M6Ol9MaXN0X2NvbnN0 X2l0ZXJhdG9yPF9UcD4sDQorCSAgICAgICBpbnB1dF9pdGVyYXRvcl90YWcp Ow0KKyNlbmRpZg0KKw0KICAgLyoqDQogICAgKiAgQGJyaWVmIEEgZ2VuZXJh bGl6YXRpb24gb2YgcG9pbnRlciBhcml0aG1ldGljLg0KICAgICogIEBwYXJh bSAgX19maXJzdCAgQW4gaW5wdXQgaXRlcmF0b3IuDQogICAgKiAgQHBhcmFt ICBfX2xhc3QgIEFuIGlucHV0IGl0ZXJhdG9yLg0KICAgICogIEByZXR1cm4g IFRoZSBkaXN0YW5jZSBiZXR3ZWVuIHRoZW0uDQogICAgKg0KICAgICogIFJl dHVybnMgQGMgbiBzdWNoIHRoYXQgX19maXJzdCArIG4gPT0gX19sYXN0LiAg VGhpcyByZXF1aXJlcw0KICAgICogIHRoYXQgQHAgX19sYXN0IG11c3QgYmUg cmVhY2hhYmxlIGZyb20gQHAgX19maXJzdC4gIE5vdGUgdGhhdCBAYw0KICAg ICogIG4gbWF5IGJlIG5lZ2F0aXZlLg0KICAgICoNCkluZGV4OiBpbmNsdWRl L2JpdHMvc3RsX2xpc3QuaA0KPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0t IGluY2x1ZGUvYml0cy9zdGxfbGlzdC5oCShyZXZpc2lvbiAyMjIwNzYpDQor KysgaW5jbHVkZS9iaXRzL3N0bF9saXN0LmgJKHdvcmtpbmcgY29weSkNCkBA IC0xODYxLDEzICsxODYxLDUyIEBAIF9HTElCQ1hYX0VORF9OQU1FU1BBQ0Vf Q1hYMTENCiAgICAgb3BlcmF0b3I+PShjb25zdCBsaXN0PF9UcCwgX0FsbG9j PiYgX194LCBjb25zdCBsaXN0PF9UcCwgX0FsbG9jPiYgX195KQ0KICAgICB7 IHJldHVybiAhKF9feCA8IF9feSk7IH0NCiANCiAgIC8vLyBTZWUgc3RkOjps aXN0Ojpzd2FwKCkuDQogICB0ZW1wbGF0ZTx0eXBlbmFtZSBfVHAsIHR5cGVu YW1lIF9BbGxvYz4NCiAgICAgaW5saW5lIHZvaWQNCiAgICAgc3dhcChsaXN0 PF9UcCwgX0FsbG9jPiYgX194LCBsaXN0PF9UcCwgX0FsbG9jPiYgX195KQ0K ICAgICB7IF9feC5zd2FwKF9feSk7IH0NCiANCiBfR0xJQkNYWF9FTkRfTkFN RVNQQUNFX0NPTlRBSU5FUg0KKw0KKyNpZiBfR0xJQkNYWF9VU0VfQ1hYMTFf QUJJDQorX0dMSUJDWFhfQkVHSU5fTkFNRVNQQUNFX1ZFUlNJT04NCisNCisg IC8vIERldGVjdCB3aGVuIGRpc3RhbmNlIGlzIHVzZWQgdG8gY29tcHV0ZSB0 aGUgc2l6ZSBvZiB0aGUgd2hvbGUgbGlzdC4NCisgIHRlbXBsYXRlPHR5cGVu YW1lIF9UcD4NCisgICAgaW5saW5lIHB0cmRpZmZfdA0KKyAgICBfX2Rpc3Rh bmNlKF9HTElCQ1hYX1NURF9DOjpfTGlzdF9pdGVyYXRvcjxfVHA+IF9fZmly c3QsDQorCSAgICAgICBfR0xJQkNYWF9TVERfQzo6X0xpc3RfaXRlcmF0b3I8 X1RwPiBfX2xhc3QsDQorCSAgICAgICBpbnB1dF9pdGVyYXRvcl90YWcgX190 YWcpDQorICAgIHsNCisgICAgICB0eXBlZGVmIF9HTElCQ1hYX1NURF9DOjpf TGlzdF9jb25zdF9pdGVyYXRvcjxfVHA+IF9DSXRlcjsNCisgICAgICByZXR1 cm4gc3RkOjpfX2Rpc3RhbmNlKF9DSXRlcihfX2ZpcnN0KSwgX0NJdGVyKF9f bGFzdCksIF9fdGFnKTsNCisgICAgfQ0KKw0KKyAgdGVtcGxhdGU8dHlwZW5h bWUgX1RwPg0KKyAgICBpbmxpbmUgcHRyZGlmZl90DQorICAgIF9fZGlzdGFu Y2UoX0dMSUJDWFhfU1REX0M6Ol9MaXN0X2NvbnN0X2l0ZXJhdG9yPF9UcD4g X19maXJzdCwNCisJICAgICAgIF9HTElCQ1hYX1NURF9DOjpfTGlzdF9jb25z dF9pdGVyYXRvcjxfVHA+IF9fbGFzdCwNCisJICAgICAgIGlucHV0X2l0ZXJh dG9yX3RhZykNCisgICAgew0KKyAgICAgIHR5cGVkZWYgX0dMSUJDWFhfU1RE X0M6Ol9MaXN0X25vZGU8c2l6ZV90PiBfU2VudGluZWw7DQorICAgICAgX0dM SUJDWFhfU1REX0M6Ol9MaXN0X2NvbnN0X2l0ZXJhdG9yPF9UcD4gX19iZXlv bmQgPSBfX2xhc3Q7DQorICAgICAgKytfX2JleW9uZDsNCisgICAgICBib29s IF9fd2hvbGUgPSBfX2ZpcnN0ID09IF9fYmV5b25kOw0KKyAgICAgIGlmIChf X2J1aWx0aW5fY29uc3RhbnRfcCAoX193aG9sZSkgJiYgX193aG9sZSkNCisJ cmV0dXJuIHN0YXRpY19jYXN0PGNvbnN0IF9TZW50aW5lbCo+KF9fbGFzdC5f TV9ub2RlKS0+X01fZGF0YTsNCisNCisgICAgICBwdHJkaWZmX3QgX19uID0g MDsNCisgICAgICB3aGlsZSAoX19maXJzdCAhPSBfX2xhc3QpDQorCXsNCisJ ICArK19fZmlyc3Q7DQorCSAgKytfX247DQorCX0NCisgICAgICByZXR1cm4g X19uOw0KKyAgICB9DQorDQorX0dMSUJDWFhfRU5EX05BTUVTUEFDRV9WRVJT SU9ODQorI2VuZGlmDQogfSAvLyBuYW1lc3BhY2Ugc3RkDQogDQogI2VuZGlm IC8qIF9TVExfTElTVF9IICovDQpJbmRleDogdGVzdHN1aXRlLzIzX2NvbnRh aW5lcnMvbGlzdC82MTM0Ny5jYw0KPT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0K LS0tIHRlc3RzdWl0ZS8yM19jb250YWluZXJzL2xpc3QvNjEzNDcuY2MJKHJl dmlzaW9uIDApDQorKysgdGVzdHN1aXRlLzIzX2NvbnRhaW5lcnMvbGlzdC82 MTM0Ny5jYwkod29ya2luZyBjb3B5KQ0KQEAgLTAsMCArMSw0OSBAQA0KKy8v IHsgZGctb3B0aW9ucyAiLXN0ZD1nbnUrKzExIC1PMiAtRF9HTElCQ1hYX1VT RV9DWFgxMV9BQkkiIH0NCisNCisvLyBDb3B5cmlnaHQgKEMpIDIwMTUgRnJl ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuDQorLy8NCisvLyBUaGlzIGZp bGUgaXMgcGFydCBvZiB0aGUgR05VIElTTyBDKysgTGlicmFyeS4gIFRoaXMg bGlicmFyeSBpcyBmcmVlDQorLy8gc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0 cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIgdGhlDQorLy8gdGVy bXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxp c2hlZCBieSB0aGUNCisvLyBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVp dGhlciB2ZXJzaW9uIDMsIG9yIChhdCB5b3VyIG9wdGlvbikNCisvLyBhbnkg bGF0ZXIgdmVyc2lvbi4NCisNCisvLyBUaGlzIGxpYnJhcnkgaXMgZGlzdHJp YnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwNCisv LyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUg aW1wbGllZCB3YXJyYW50eSBvZg0KKy8vIE1FUkNIQU5UQUJJTElUWSBvciBG SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUNCisv LyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxz Lg0KKw0KKy8vIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2Yg dGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFsb25nDQorLy8gd2l0 aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HMy4gIElmIG5v dCBzZWUNCisvLyA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uDQor DQorI2luY2x1ZGUgPGxpc3Q+DQorI2luY2x1ZGUgPGl0ZXJhdG9yPg0KKyNp bmNsdWRlIDx0ZXN0c3VpdGVfaG9va3MuaD4NCisNCitfX2F0dHJpYnV0ZV9f KChfX25vaW5saW5lX18sIF9fbm9jbG9uZV9fKSkNCit2b2lkIHRlc3RtKHN0 ZDo6bGlzdDxzaG9ydD4mIGwpDQorew0KKyAgYm9vbCBiID0gc3RkOjpkaXN0 YW5jZShsLmJlZ2luKCksIGwuZW5kKCkpID09IGwuc2l6ZSgpOw0KKyAgVkVS SUZZKCBfX2J1aWx0aW5fY29uc3RhbnRfcChiKSApOw0KKyAgVkVSSUZZKCBi ICk7DQorfQ0KKw0KK19fYXR0cmlidXRlX18oKF9fbm9pbmxpbmVfXywgX19u b2Nsb25lX18pKQ0KK3ZvaWQgdGVzdGMoY29uc3Qgc3RkOjpsaXN0PHNob3J0 PiYgbCkNCit7DQorICBib29sIGIgPSBzdGQ6OmRpc3RhbmNlKGwuYmVnaW4o KSwgbC5lbmQoKSkgPT0gbC5zaXplKCk7DQorICBWRVJJRlkoIF9fYnVpbHRp bl9jb25zdGFudF9wKGIpICk7DQorICBWRVJJRlkoIGIgKTsNCit9DQorDQor aW50IG1haW4oKQ0KK3sNCisgIGJvb2wgdGVzdCBfX2F0dHJpYnV0ZV9fKCh1 bnVzZWQpKSA9IHRydWU7DQorDQorI2lmIF9HTElCQ1hYX1VTRV9EVUFMX0FC SQ0KKyAgc3RkOjpsaXN0PHNob3J0PiBsOw0KKyAgdGVzdG0obCk7DQorICB0 ZXN0YyhsKTsNCisjZW5kaWYNCit9DQo= --8323329-1942501123-1428999861=:27632--