From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 108857 invoked by alias); 27 Apr 2017 18:02:14 -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 108588 invoked by uid 89); 27 Apr 2017 18:02:12 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-16.1 required=5.0 tests=BAYES_00,GIT_PATCH_1,GIT_PATCH_2,GIT_PATCH_3,KAM_ASCII_DIVIDERS,RP_MATCHES_RCVD,SPF_PASS autolearn=ham version=3.3.2 spammy=61617, our X-HELO: aserp1040.oracle.com Received: from aserp1040.oracle.com (HELO aserp1040.oracle.com) (141.146.126.69) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Thu, 27 Apr 2017 18:02:10 +0000 Received: from userv0021.oracle.com (userv0021.oracle.com [156.151.31.71]) by aserp1040.oracle.com (Sentrion-MTA-4.3.2/Sentrion-MTA-4.3.2) with ESMTP id v3RI28Ph000796 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 27 Apr 2017 18:02:09 GMT Received: from userv0122.oracle.com (userv0122.oracle.com [156.151.31.75]) by userv0021.oracle.com (8.14.4/8.14.4) with ESMTP id v3RI28lk001901 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 27 Apr 2017 18:02:08 GMT Received: from abhmp0017.oracle.com (abhmp0017.oracle.com [141.146.116.23]) by userv0122.oracle.com (8.14.4/8.14.4) with ESMTP id v3RI27kA020631; Thu, 27 Apr 2017 18:02:07 GMT Received: from [192.168.1.4] (/87.20.193.125) by default (Oracle Beehive Gateway v4.0) with ESMTP ; Thu, 27 Apr 2017 11:02:07 -0700 Subject: [C++ Patch] Remove is_auto_or_concept, etc (Was: Re: [C++, concepts] Two slightly obscure pt.c functions?) To: "gcc@gnu.org" References: <5859ec12-a027-c944-57a4-7c49320429c6@oracle.com> Cc: Jason Merrill , Adam Butcher , "gcc-patches@gcc.gnu.org" From: Paolo Carlini Message-ID: <24d74e87-7b21-0f8f-fe9b-08d0824a2c64@oracle.com> Date: Thu, 27 Apr 2017 18:41:00 -0000 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.8.0 MIME-Version: 1.0 In-Reply-To: <5859ec12-a027-c944-57a4-7c49320429c6@oracle.com> Content-Type: multipart/mixed; boundary="------------7C477D429758ADB63DB0683F" X-IsSubscribed: yes X-SW-Source: 2017-04/txt/msg01420.txt.bz2 This is a multi-part message in MIME format. --------------7C477D429758ADB63DB0683F Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit Content-length: 1301 Hi again, On 26/04/2017 12:32, Paolo Carlini wrote: > Hi, > > in 2013 (2013-09-16) Adam added two slightly obscure functions and I > can't find much around in terms of rationale, etc: > > /* Returns true iff TYPE is a TEMPLATE_TYPE_PARM representing 'auto', > 'decltype(auto)' or a concept. */ > > bool > is_auto_or_concept (const_tree type) > { > return is_auto (type); // or concept > } > > /* Returns the TEMPLATE_TYPE_PARM in TYPE representing a generic type > (`auto' or > a concept identifier) iff TYPE contains a use of a generic type. > Returns > NULL_TREE otherwise. */ > > tree > type_uses_auto_or_concept (tree type) > { > return find_type_usage (type, is_auto_or_concept); > } > > The latter seems completely unused (it's meant for debugging > purposes?); the former evidently simply forwards to is_auto, and we > end up in the front-end with uses of both, which in fact are > equivalent, which seems weird: IMHO, if they are actually equivalent > in our implementation we should clearly explain that in the comment > and have only one. Or what? ... replying to myself, in practice we could do the below, which certainly passes testing, and in fact now seems to me even more obvious than I thought a couple of days ago... Thanks, Paolo. ///////////////////// --------------7C477D429758ADB63DB0683F Content-Type: text/plain; charset=UTF-8; name="CL_CU2" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="CL_CU2" Content-length: 415 MjAxNy0wNC0yNyAgUGFvbG8gQ2FybGluaSAgPHBhb2xvLmNhcmxpbmlAb3Jh Y2xlLmNvbT4KCgkqIHB0LmMgKGlzX2F1dG9fb3JfY29uY2VwdCk6IFJlbW92 ZS4KCSh0eXBlX3VzZXNfYXV0b19vcl9jb25jZXB0KTogUmVtb3ZlLCB1bnVz ZWQuCgkoZmluZF9wYXJhbWV0ZXJfcGFja3NfciwgZXh0cmFjdF9hdXRvc19y LCBpc19hdXRvX3IpOiBBZGp1c3QuCgkqIHBhcnNlci5jICh0cmVlX3R5cGVf aXNfYXV0b19vcl9jb25jZXB0KTogUmVtb3ZlLCB1bnVzZWQuCgkqIGNwLXRy ZWUuaCAoaXNfYXV0b19vcl9jb25jZXB0KTogUmVtb3ZlLgo= --------------7C477D429758ADB63DB0683F Content-Type: text/plain; charset=UTF-8; name="patch_CU2" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="patch_CU2" Content-length: 4441 SW5kZXg6IGNwLXRyZWUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBj cC10cmVlLmgJKHJldmlzaW9uIDI0NzM0NykKKysrIGNwLXRyZWUuaAkod29y a2luZyBjb3B5KQpAQCAtNjE2MSw3ICs2MTYxLDYgQEAgZXh0ZXJuIHZvaWQg YXBwZW5kX3R5cGVfdG9fdGVtcGxhdGVfZm9yX2FjY2Vzc19jaGUKIGV4dGVy biB0cmVlIGNvbnZlcnRfZ2VuZXJpY190eXBlc190b19wYWNrcwkodHJlZSwg aW50LCBpbnQpOwogZXh0ZXJuIHRyZWUgc3BsaWNlX2xhdGVfcmV0dXJuX3R5 cGUJCSh0cmVlLCB0cmVlKTsKIGV4dGVybiBib29sIGlzX2F1dG8JCQkJKGNv bnN0X3RyZWUpOwotZXh0ZXJuIGJvb2wgaXNfYXV0b19vcl9jb25jZXB0CQkJ KGNvbnN0X3RyZWUpOwogZXh0ZXJuIHRyZWUgcHJvY2Vzc190ZW1wbGF0ZV9w YXJtCQkodHJlZSwgbG9jYXRpb25fdCwgdHJlZSwgCiAJCQkJCQkgYm9vbCwg Ym9vbCk7CiBleHRlcm4gdHJlZSBlbmRfdGVtcGxhdGVfcGFybV9saXN0CQko dHJlZSk7CkluZGV4OiBwYXJzZXIuYwo9PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 Ci0tLSBwYXJzZXIuYwkocmV2aXNpb24gMjQ3MzQ3KQorKysgcGFyc2VyLmMJ KHdvcmtpbmcgY29weSkKQEAgLTM4NzkxLDE2ICszODc5MSw2IEBAIG1ha2Vf Z2VuZXJpY190eXBlX25hbWUgKCkKICAgcmV0dXJuIGdldF9pZGVudGlmaWVy IChidWYpOwogfQogCi0vKiBQcmVkaWNhdGUgdGhhdCBiZWhhdmVzIGFzIGlz X2F1dG9fb3JfY29uY2VwdCBidXQgbWF0Y2hlcyB0aGUgcGFyZW50Ci0gICBu b2RlIG9mIHRoZSBnZW5lcmljIHR5cGUgcmF0aGVyIHRoYW4gdGhlIGdlbmVy aWMgdHlwZSBpdHNlbGYuICBUaGlzCi0gICBhbGxvd3MgZm9yIHR5cGUgdHJh bnNmb3JtYXRpb24gaW4gYWRkX2ltcGxpY2l0X3RlbXBsYXRlX3Bhcm1zLiAg Ki8KLQotc3RhdGljIGlubGluZSBib29sCi10cmVlX3R5cGVfaXNfYXV0b19v cl9jb25jZXB0IChjb25zdF90cmVlIHQpCi17Ci0gIHJldHVybiBUUkVFX1RZ UEUgKHQpICYmIGlzX2F1dG9fb3JfY29uY2VwdCAoVFJFRV9UWVBFICh0KSk7 Ci19Ci0KIC8qIEFkZCBhbiBpbXBsaWNpdCB0ZW1wbGF0ZSB0eXBlIHBhcmFt ZXRlciB0byB0aGUgQ1VSUkVOVF9URU1QTEFURV9QQVJNUwogICAgKGNyZWF0 aW5nIGEgbmV3IHRlbXBsYXRlIHBhcmFtZXRlciBsaXN0IGlmIG5lY2Vzc2Fy eSkuICBSZXR1cm5zIHRoZSBuZXdseQogICAgY3JlYXRlZCB0ZW1wbGF0ZSB0 eXBlIHBhcm0uICAqLwpJbmRleDogcHQuYwo9PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09Ci0tLSBwdC5jCShyZXZpc2lvbiAyNDczNDcpCisrKyBwdC5jCSh3b3Jr aW5nIGNvcHkpCkBAIC0zNDg5LDcgKzM0ODksNyBAQCBmaW5kX3BhcmFtZXRl cl9wYWNrc19yICh0cmVlICp0cCwgaW50ICp3YWxrX3N1YnRyZQogCSBwYXJh bWV0ZXIgcGFjayAoMTQuNi4zKSwgb3IgdGhlIHR5cGUtc3BlY2lmaWVyLXNl cSBvZiBhIHR5cGUtaWQgdGhhdAogCSBpcyBhIHBhY2sgZXhwYW5zaW9uLCB0 aGUgaW52ZW50ZWQgdGVtcGxhdGUgcGFyYW1ldGVyIGlzIGEgdGVtcGxhdGUK IAkgcGFyYW1ldGVyIHBhY2suICAqLwotICAgICAgaWYgKHBwZC0+dHlwZV9w YWNrX2V4cGFuc2lvbl9wICYmIGlzX2F1dG9fb3JfY29uY2VwdCAodCkpCisg ICAgICBpZiAocHBkLT50eXBlX3BhY2tfZXhwYW5zaW9uX3AgJiYgaXNfYXV0 byAodCkpCiAJVEVNUExBVEVfVFlQRV9QQVJBTUVURVJfUEFDSyAodCkgPSB0 cnVlOwogICAgICAgaWYgKFRFTVBMQVRFX1RZUEVfUEFSQU1FVEVSX1BBQ0sg KHQpKQogICAgICAgICBwYXJhbWV0ZXJfcGFja19wID0gdHJ1ZTsKQEAgLTI0 ODA2LDcgKzI0ODA2LDcgQEAgc3RhdGljIGludAogZXh0cmFjdF9hdXRvc19y ICh0cmVlIHQsIHZvaWQgKmRhdGEpCiB7CiAgIGhhc2hfdGFibGU8YXV0b19o YXNoPiAmaGFzaCA9ICooaGFzaF90YWJsZTxhdXRvX2hhc2g+KilkYXRhOwot ICBpZiAoaXNfYXV0b19vcl9jb25jZXB0ICh0KSkKKyAgaWYgKGlzX2F1dG8g KHQpKQogICAgIHsKICAgICAgIC8qIEFsbCB0aGUgYXV0b3Mgd2VyZSBidWls dCB3aXRoIGluZGV4IDA7IGZpeCB0aGF0IHVwIG5vdy4gICovCiAgICAgICB0 cmVlICpwID0gaGFzaC5maW5kX3Nsb3QgKHQsIElOU0VSVCk7CkBAIC0yNTUz MCw3ICsyNTUzMCw3IEBAIGlzX2F1dG8gKGNvbnN0X3RyZWUgdHlwZSkKIGlu dAogaXNfYXV0b19yICh0cmVlIHRwLCB2b2lkICovKmRhdGEqLykKIHsKLSAg cmV0dXJuIGlzX2F1dG9fb3JfY29uY2VwdCAodHApOworICByZXR1cm4gaXNf YXV0byAodHApOwogfQogCiAvKiBSZXR1cm5zIHRoZSBURU1QTEFURV9UWVBF X1BBUk0gaW4gVFlQRSByZXByZXNlbnRpbmcgYGF1dG8nIGlmZiBUWVBFIGNv bnRhaW5zCkBAIC0yNTU1NiwyNiArMjU1NTYsNiBAQCB0eXBlX3VzZXNfYXV0 byAodHJlZSB0eXBlKQogICAgIHJldHVybiBmaW5kX3R5cGVfdXNhZ2UgKHR5 cGUsIGlzX2F1dG8pOwogfQogCi0vKiBSZXR1cm5zIHRydWUgaWZmIFRZUEUg aXMgYSBURU1QTEFURV9UWVBFX1BBUk0gcmVwcmVzZW50aW5nICdhdXRvJywK LSAgICdkZWNsdHlwZShhdXRvKScgb3IgYSBjb25jZXB0LiAgKi8KLQotYm9v bAotaXNfYXV0b19vcl9jb25jZXB0IChjb25zdF90cmVlIHR5cGUpCi17Ci0g IHJldHVybiBpc19hdXRvICh0eXBlKTsgLy8gb3IgY29uY2VwdAotfQotCi0v KiBSZXR1cm5zIHRoZSBURU1QTEFURV9UWVBFX1BBUk0gaW4gVFlQRSByZXBy ZXNlbnRpbmcgYSBnZW5lcmljIHR5cGUgKGBhdXRvJyBvcgotICAgYSBjb25j ZXB0IGlkZW50aWZpZXIpIGlmZiBUWVBFIGNvbnRhaW5zIGEgdXNlIG9mIGEg Z2VuZXJpYyB0eXBlLiAgUmV0dXJucwotICAgTlVMTF9UUkVFIG90aGVyd2lz ZS4gICovCi0KLXRyZWUKLXR5cGVfdXNlc19hdXRvX29yX2NvbmNlcHQgKHRy ZWUgdHlwZSkKLXsKLSAgcmV0dXJuIGZpbmRfdHlwZV91c2FnZSAodHlwZSwg aXNfYXV0b19vcl9jb25jZXB0KTsKLX0KLQotCiAvKiBGb3IgYSBnaXZlbiB0 ZW1wbGF0ZSBULCByZXR1cm4gdGhlIHZlY3RvciBvZiB0eXBlZGVmcyByZWZl cmVuY2VkCiAgICBpbiBUIGZvciB3aGljaCBhY2Nlc3MgY2hlY2sgaXMgbmVl ZGVkIGF0IFQgaW5zdGFudGlhdGlvbiB0aW1lLgogICAgVCBpcyBlaXRoZXIg IGEgRlVOQ1RJT05fREVDTCBvciBhIFJFQ09SRF9UWVBFLgo= --------------7C477D429758ADB63DB0683F--