From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 39596 invoked by alias); 28 Sep 2018 19:16:16 -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 39575 invoked by uid 89); 28 Sep 2018 19:16:14 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-11.1 required=5.0 tests=BAYES_00,GIT_PATCH_2,GIT_PATCH_3,KAM_ASCII_DIVIDERS,SPF_HELO_PASS autolearn=ham version=3.3.2 spammy= X-HELO: userp2130.oracle.com Received: from userp2130.oracle.com (HELO userp2130.oracle.com) (156.151.31.86) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Fri, 28 Sep 2018 19:16:12 +0000 Received: from pps.filterd (userp2130.oracle.com [127.0.0.1]) by userp2130.oracle.com (8.16.0.22/8.16.0.22) with SMTP id w8SJE2NZ040161; Fri, 28 Sep 2018 19:16:03 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=subject : to : cc : references : from : message-id : date : mime-version : in-reply-to : content-type; s=corp-2018-07-02; bh=tnC8Jw6yM9CQIwcIIv/I6KI+IT2dB97M9VL+3w2pzno=; b=EiHtXPxg2M9y051juFMwaMYhlRqAF0CVjURMgKEkDpse3qbQsFWxbZvUPEuO0FHKbNb/ OOYrAeTfQ7TmUKkOAyp5gZ38Y0VDpF6+dLZNj4lCc39fHV8vL3Ayh5t/pIPj3/8U0PbA 7bTXh6ccxRgOuvUS3485QGzIcFGwKklF6r/L029JLIAdv03aiEsi6lF0cU6cjQ0SbeEP uCdiPDz+O+M/gbQN/wN+MEnF+s7ZkTgrNmRdECIsCQQ44jcdeGon6xUB7IzTl/GJvygF 6Mur+BzeHLweLgtmH02B96jPlKDi8k75DNWL2/XEvTbwIu7WTTSXGX2BSCtW2TQgshyF Nw== Received: from userv0021.oracle.com (userv0021.oracle.com [156.151.31.71]) by userp2130.oracle.com with ESMTP id 2mnd5u280p-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 28 Sep 2018 19:16:03 +0000 Received: from aserv0121.oracle.com (aserv0121.oracle.com [141.146.126.235]) by userv0021.oracle.com (8.14.4/8.14.4) with ESMTP id w8SJG2QI024841 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 28 Sep 2018 19:16:02 GMT Received: from abhmp0018.oracle.com (abhmp0018.oracle.com [141.146.116.24]) by aserv0121.oracle.com (8.14.4/8.13.8) with ESMTP id w8SJG1BT022495; Fri, 28 Sep 2018 19:16:01 GMT Received: from [192.168.1.4] (/87.21.233.110) by default (Oracle Beehive Gateway v4.0) with ESMTP ; Fri, 28 Sep 2018 12:16:01 -0700 Subject: Re: [C++ Patch] PR 84423 ("[6/7/8/9 Regression] [concepts] ICE with invalid using declaration") To: Jason Merrill Cc: "gcc-patches@gcc.gnu.org" , Nathan Sidwell References: <61471b27-ea85-8fc2-a7e3-178547e518d6@oracle.com> From: Paolo Carlini Message-ID: Date: Fri, 28 Sep 2018 20:26:00 -0000 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.0 MIME-Version: 1.0 In-Reply-To: Content-Type: multipart/mixed; boundary="------------991B0A0ABF13AAAB6E5353B2" X-IsSubscribed: yes X-SW-Source: 2018-09/txt/msg01753.txt.bz2 This is a multi-part message in MIME format. --------------991B0A0ABF13AAAB6E5353B2 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit Content-length: 1496 Hi, On 9/28/18 7:18 PM, Jason Merrill wrote: > On Fri, Sep 28, 2018 at 12:42 PM, Paolo Carlini > wrote: >> Hi, >> >> the primary issue here is a rather straightforward error-recovery, where, >> after a sensible (but see below) error message we ICE in >> get_underlying_template - called by convert_template_argument - because we >> don't handle correctly error_mark_node as TREE_TYPE, as set in >> grokdeclarator. While working on it I noticed that the error message emitted >> by grokdeclarator seems suboptimal, because, per 10.1.3/2, we correctly >> handle the alias declaration like a typedef but, I believe, we don't want to >> just say *typedef* in the error message: luckily the infrastructure to be >> more accurate is fully available, because we need it to set >> TYPE_DECL_ALIAS_P anyway. > OK, though as long as you're messing with this error you might want to > improve its location as well. Thanks. About the location, you are certainly right, but doesn't seem trivial. Something we can do *now* is using declspecs->locations[ds_typedef] and declspecs->locations[ds_alias], but that gives us the location of the keyword 'typedef' and 'using', respectively, whereas I think that we would like to have the location of 'auto' itself. I could look into that as a follow-up piece work (by the way, I'm always reluctant to embark in non trivial work having to do with locations because I suppose David is already on it?!?) Paolo. /////////////////// --------------991B0A0ABF13AAAB6E5353B2 Content-Type: text/plain; charset=UTF-8; name="p" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="p" Content-length: 2904 SW5kZXg6IGNvbnN0cmFpbnQuY2MKPT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot LS0gY29uc3RyYWludC5jYwkocmV2aXNpb24gMjY0Njg3KQorKysgY29uc3Ry YWludC5jYwkod29ya2luZyBjb3B5KQpAQCAtMTE2NCw2ICsxMTY0LDkgQEAg YnVpbGRfY29uc3RyYWludHMgKHRyZWUgdG1wbF9yZXFzLCB0cmVlIGRlY2xf cmVxcykKICAgaWYgKCF0bXBsX3JlcXMgJiYgIWRlY2xfcmVxcykKICAgICBy ZXR1cm4gTlVMTF9UUkVFOwogCisgIC8vaWYgKHRtcGxfcmVxcyA9PSBlcnJv cl9tYXJrX25vZGUgfHwgZGVjbF9yZXFzID09IGVycm9yX21hcmtfbm9kZSkK KyAgLy9yZXR1cm4gTlVMTF9UUkVFOworCiAgIHRyZWVfY29uc3RyYWludF9p bmZvKiBjaSA9IGJ1aWxkX2NvbnN0cmFpbnRfaW5mbyAoKTsKICAgY2ktPnRl bXBsYXRlX3JlcXMgPSB0bXBsX3JlcXM7CiAgIGNpLT5kZWNsYXJhdG9yX3Jl cXMgPSBkZWNsX3JlcXM7CkluZGV4OiBkZWNsLmMKPT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PQotLS0gZGVjbC5jCShyZXZpc2lvbiAyNjQ2ODcpCisrKyBkZWNs LmMJKHdvcmtpbmcgY29weSkKQEAgLTExODc5LDYgKzExODc5LDcgQEAgZ3Jv a2RlY2xhcmF0b3IgKGNvbnN0IGNwX2RlY2xhcmF0b3IgKmRlY2xhcmF0b3Is CiAgIC8qIElmIHRoaXMgaXMgZGVjbGFyaW5nIGEgdHlwZWRlZiBuYW1lLCBy ZXR1cm4gYSBUWVBFX0RFQ0wuICAqLwogICBpZiAodHlwZWRlZl9wICYmIGRl Y2xfY29udGV4dCAhPSBUWVBFTkFNRSkKICAgICB7CisgICAgICBib29sIGFs aWFzX3AgPSBkZWNsX3NwZWNfc2VxX2hhc19zcGVjX3AgKGRlY2xzcGVjcywg ZHNfYWxpYXMpOwogICAgICAgdHJlZSBkZWNsOwogCiAgICAgICAvKiBUaGlz IGRlY2xhcmF0aW9uOgpAQCAtMTE5MDEsNyArMTE5MDIsMTIgQEAgZ3Jva2Rl Y2xhcmF0b3IgKGNvbnN0IGNwX2RlY2xhcmF0b3IgKmRlY2xhcmF0b3IsCiAK ICAgICAgIGlmICh0eXBlX3VzZXNfYXV0byAodHlwZSkpCiAJewotCSAgZXJy b3IgKCJ0eXBlZGVmIGRlY2xhcmVkICU8YXV0byU+Iik7CisJICBpZiAoYWxp YXNfcCkKKwkgICAgZXJyb3JfYXQgKGRlY2xzcGVjcy0+bG9jYXRpb25zW2Rz X2FsaWFzXSwKKwkJICAgICAgIiU8YXV0byU+IG5vdCBhbGxvd2VkIGluIGFs aWFzIGRlY2xhcmF0aW9uIik7CisJICBlbHNlCisJICAgIGVycm9yX2F0IChk ZWNsc3BlY3MtPmxvY2F0aW9uc1tkc190eXBlZGVmXSwKKwkJICAgICAgInR5 cGVkZWYgZGVjbGFyZWQgJTxhdXRvJT4iKTsKIAkgIHR5cGUgPSBlcnJvcl9t YXJrX25vZGU7CiAJfQogCkBAIC0xMTk2MSw3ICsxMTk2Nyw3IEBAIGdyb2tk ZWNsYXJhdG9yIChjb25zdCBjcF9kZWNsYXJhdG9yICpkZWNsYXJhdG9yLAog CQkgICAgICBpbmxpbmVwLCBmcmllbmRwLCByYWlzZXMgIT0gTlVMTF9UUkVF LAogCQkgICAgICBkZWNsc3BlY3MtPmxvY2F0aW9ucyk7CiAKLSAgICAgIGlm IChkZWNsX3NwZWNfc2VxX2hhc19zcGVjX3AgKGRlY2xzcGVjcywgZHNfYWxp YXMpKQorICAgICAgaWYgKGFsaWFzX3ApCiAJLyogQWNrbm93bGVkZ2UgdGhh dCB0aGlzIHdhcyB3cml0dGVuOgogCSAgICAgYHVzaW5nIGFuYWxpYXMgPSBh dHlwZTsnLiAgKi8KIAlUWVBFX0RFQ0xfQUxJQVNfUCAoZGVjbCkgPSAxOwpJ bmRleDogcHQuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBwdC5jCShy ZXZpc2lvbiAyNjQ2ODcpCisrKyBwdC5jCSh3b3JraW5nIGNvcHkpCkBAIC03 Nzc2LDcgKzc3NzYsNyBAQCBjb252ZXJ0X3RlbXBsYXRlX2FyZ3VtZW50ICh0 cmVlIHBhcm0sCiAgIHRyZWUgdmFsOwogICBpbnQgaXNfdHlwZSwgcmVxdWly ZXNfdHlwZSwgaXNfdG1wbF90eXBlLCByZXF1aXJlc190bXBsX3R5cGU7CiAK LSAgaWYgKHBhcm0gPT0gZXJyb3JfbWFya19ub2RlKQorICBpZiAocGFybSA9 PSBlcnJvcl9tYXJrX25vZGUgfHwgZXJyb3Jfb3BlcmFuZF9wIChhcmcpKQog ICAgIHJldHVybiBlcnJvcl9tYXJrX25vZGU7CiAKICAgLyogVHJpdmlhbGx5 IGNvbnZlcnQgcGxhY2Vob2xkZXJzLiAqLwo= --------------991B0A0ABF13AAAB6E5353B2--