From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 28824 invoked by alias); 6 Dec 2018 17:23:54 -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 28814 invoked by uid 89); 6 Dec 2018 17:23:53 -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,SPF_PASS autolearn=ham version=3.3.2 spammy= X-HELO: userp2120.oracle.com Received: from userp2120.oracle.com (HELO userp2120.oracle.com) (156.151.31.85) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Thu, 06 Dec 2018 17:23:48 +0000 Received: from pps.filterd (userp2120.oracle.com [127.0.0.1]) by userp2120.oracle.com (8.16.0.22/8.16.0.22) with SMTP id wB6HEwpJ145867; Thu, 6 Dec 2018 17:23:46 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=subject : to : references : from : message-id : date : mime-version : in-reply-to : content-type; s=corp-2018-07-02; bh=aw5Ak6npeIBJqayu6WhbhxQ0gYTLyDy32k3Fe18SqZg=; b=4aZ/3Rl17tRmfRGJRqdjW41x7FWDLsj9wa40gJmEljsnaw0C2Bz4gWngOqMpNOzDH+0k 4Wqbh+zpN/Zc+iz+u022hecklLMopiHck+ELio4BUzf+8BexX7AdbyeaWHrAoUyoOWEB EdG4RFjt25rJ/vtJcsJ+Lpi/gZr+Lhn31b5RQL6KDPAagr75t3+G6QApJlMoEoPYBEe1 htYiePb+f0JWlHZZZQ5MCFKG+LUmsXOpTjTZSnQ5tRyd+PLH0GmnAffaIeTWwZPbzxBL pHAtgNx5g5vsdeoI369vhkz+4aXqJo4GElGviC6pjhoX/25SwbjwxU/oS/296M8P2d4d aw== Received: from userv0021.oracle.com (userv0021.oracle.com [156.151.31.71]) by userp2120.oracle.com with ESMTP id 2p3jxrsgnu-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 06 Dec 2018 17:23:46 +0000 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 wB6HNfoC014984 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 6 Dec 2018 17:23:41 GMT Received: from abhmp0006.oracle.com (abhmp0006.oracle.com [141.146.116.12]) by userv0122.oracle.com (8.14.4/8.14.4) with ESMTP id wB6HNeHK008189; Thu, 6 Dec 2018 17:23:41 GMT Received: from [192.168.1.4] (/80.181.224.14) by default (Oracle Beehive Gateway v4.0) with ESMTP ; Thu, 06 Dec 2018 09:23:40 -0800 Subject: Re: [C++ Patch] Three additional bitfield diagnostic tweaks (a regression fix included) To: Jason Merrill , "gcc-patches@gcc.gnu.org" References: <767ff78b-747c-d48c-f061-766faab2f8e9@redhat.com> From: Paolo Carlini Message-ID: <87d811b1-a8df-0710-0107-67028e74d823@oracle.com> Date: Thu, 06 Dec 2018 17:23:00 -0000 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.3.0 MIME-Version: 1.0 In-Reply-To: <767ff78b-747c-d48c-f061-766faab2f8e9@redhat.com> Content-Type: multipart/mixed; boundary="------------BC1F4DAC72B7CEE25C834669" X-IsSubscribed: yes X-SW-Source: 2018-12/txt/msg00380.txt.bz2 This is a multi-part message in MIME format. --------------BC1F4DAC72B7CEE25C834669 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 8bit Content-length: 2678 Hi, On 06/12/18 16:11, Jason Merrill wrote: > 2- Unfortunately I have to fix another buglet I recently introduced, > completely similar to c++/88222 fixed by Marek. Well, at least we will > not print anymore an empty '' when the unqualified_id is null because > the field is unnamed. > >> -        error_at (declarator->id_loc, >> -              "%qE is neither function nor member function; " >> -              "cannot be declared friend", unqualified_id); >> +        if (unqualified_id && declarator) >> +          error_at (declarator->id_loc, >> +                "%qE is neither function nor member function; " >> +                "cannot be declared friend", unqualified_id); >> +        else >> +          error ("unnamed field is neither function nor member " >> +             "function; cannot be declared friend"); > > I wonder if we want to use the 'name' variable here. Well, the name variable doesn't seem that useful here because for the new testcase it has that famous catch all value "type name" . I have been thinking that here and in other places we could imagine keeping only the declarator check and dropping the "name" check. Probably it would work. But in *many* existing places we actually check *only* the name thus I'm nervous about attempting that now... > >> 3- In the non-static case too, when from grokdeclarator we are >> calling FIELD_DECL and passing the location as first argument, I >> think we want to likewise pass declarator->id_loc when available. > >> -        decl = build_decl (input_location, >> +        decl = build_decl (declarator >> +                   ? declarator->id_loc >> +                   : input_location, > > I think we want to put this in a local variable, to share with the > static case and probably other places in grokdeclarator. In the below I'm sharing it only with the static case, straightforward. Moving it one level up doesn't seem that useful because we only have rather safe IMHO unconditional uses either of input_location or of declarator->id_loc at the moment... Again, I'm pretty sure there is room for further clean-ups in this area, but, for 9, I'd rather take care of a bunch of additional small issues which I already have in my TODO list, in grokbitfield, for example, as already mentioned. By the way, if isn't already clear, I have been changing location bits only when I already have a set of testcases, constructed from our testsuite via (lenghty ;) instrumented runs. New version of the patch attached. Paolo. --------------BC1F4DAC72B7CEE25C834669 Content-Type: text/plain; charset=UTF-8; name="patch_grokbitfield2_2" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="patch_grokbitfield2_2" Content-length: 5913 SW5kZXg6IGNwL2NsYXNzLmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g Y3AvY2xhc3MuYwkocmV2aXNpb24gMjY2ODQwKQorKysgY3AvY2xhc3MuYwko d29ya2luZyBjb3B5KQpAQCAtMzIxOCw3ICszMjE4LDggQEAgY2hlY2tfYml0 ZmllbGRfZGVjbCAodHJlZSBmaWVsZCkKICAgLyogRGV0ZWN0IGludmFsaWQg Yml0LWZpZWxkIHR5cGUuICAqLwogICBpZiAoIUlOVEVHUkFMX09SX0VOVU1F UkFUSU9OX1RZUEVfUCAodHlwZSkpCiAgICAgewotICAgICAgZXJyb3IgKCJi aXQtZmllbGQgJXErI0Qgd2l0aCBub24taW50ZWdyYWwgdHlwZSIsIGZpZWxk KTsKKyAgICAgIGVycm9yX2F0IChERUNMX1NPVVJDRV9MT0NBVElPTiAoZmll bGQpLAorCQkiYml0LWZpZWxkICVxI0Qgd2l0aCBub24taW50ZWdyYWwgdHlw ZSAlcVQiLCBmaWVsZCwgdHlwZSk7CiAgICAgICB3ID0gZXJyb3JfbWFya19u b2RlOwogICAgIH0KICAgZWxzZQpJbmRleDogY3AvZGVjbC5jCj09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT0KLS0tIGNwL2RlY2wuYwkocmV2aXNpb24gMjY2ODQw KQorKysgY3AvZGVjbC5jCSh3b3JraW5nIGNvcHkpCkBAIC0xMjQ0Niw5ICsx MjQ0NiwxMyBAQCBncm9rZGVjbGFyYXRvciAoY29uc3QgY3BfZGVjbGFyYXRv ciAqZGVjbGFyYXRvciwKIAkgIHsKIAkgICAgaWYgKGZyaWVuZHApCiAJICAg ICAgewotCQllcnJvcl9hdCAoZGVjbGFyYXRvci0+aWRfbG9jLAotCQkJICAi JXFFIGlzIG5laXRoZXIgZnVuY3Rpb24gbm9yIG1lbWJlciBmdW5jdGlvbjsg IgotCQkJICAiY2Fubm90IGJlIGRlY2xhcmVkIGZyaWVuZCIsIHVucXVhbGlm aWVkX2lkKTsKKwkJaWYgKHVucXVhbGlmaWVkX2lkICYmIGRlY2xhcmF0b3Ip CisJCSAgZXJyb3JfYXQgKGRlY2xhcmF0b3ItPmlkX2xvYywKKwkJCSAgICAi JXFFIGlzIG5laXRoZXIgZnVuY3Rpb24gbm9yIG1lbWJlciBmdW5jdGlvbjsg IgorCQkJICAgICJjYW5ub3QgYmUgZGVjbGFyZWQgZnJpZW5kIiwgdW5xdWFs aWZpZWRfaWQpOworCQllbHNlCisJCSAgZXJyb3IgKCJ1bm5hbWVkIGZpZWxk IGlzIG5laXRoZXIgZnVuY3Rpb24gbm9yIG1lbWJlciAiCisJCQkgImZ1bmN0 aW9uOyBjYW5ub3QgYmUgZGVjbGFyZWQgZnJpZW5kIik7CiAJCXJldHVybiBl cnJvcl9tYXJrX25vZGU7CiAJICAgICAgfQogCSAgICBkZWNsID0gTlVMTF9U UkVFOwpAQCAtMTI0ODMsMTQgKzEyNDg3LDEzIEBAIGdyb2tkZWNsYXJhdG9y IChjb25zdCBjcF9kZWNsYXJhdG9yICpkZWNsYXJhdG9yLAogCiAJaWYgKGRl Y2wgPT0gTlVMTF9UUkVFKQogCSAgeworCSAgICBsb2NhdGlvbl90IGxvYyA9 IGRlY2xhcmF0b3IgPyBkZWNsYXJhdG9yLT5pZF9sb2MgOiBpbnB1dF9sb2Nh dGlvbjsKIAkgICAgaWYgKHN0YXRpY3ApCiAJICAgICAgewogCQkvKiBDKysg YWxsb3dzIHN0YXRpYyBjbGFzcyBtZW1iZXJzLiAgQWxsIG90aGVyIHdvcmsK IAkJICAgZm9yIHRoaXMgaXMgZG9uZSBieSBncm9rZmllbGQuICAqLwotCQlk ZWNsID0gYnVpbGRfbGFuZ19kZWNsX2xvYyAoZGVjbGFyYXRvcgotCQkJCQkg ICAgPyBkZWNsYXJhdG9yLT5pZF9sb2MKLQkJCQkJICAgIDogaW5wdXRfbG9j YXRpb24sCi0JCQkJCSAgICBWQVJfREVDTCwgdW5xdWFsaWZpZWRfaWQsIHR5 cGUpOworCQlkZWNsID0gYnVpbGRfbGFuZ19kZWNsX2xvYyAobG9jLCBWQVJf REVDTCwKKwkJCQkJICAgIHVucXVhbGlmaWVkX2lkLCB0eXBlKTsKIAkJc2V0 X2xpbmthZ2VfZm9yX3N0YXRpY19kYXRhX21lbWJlciAoZGVjbCk7CiAJCWlm IChjb25jZXB0X3ApCiAJCSAgZXJyb3JfYXQgKGRlY2xzcGVjcy0+bG9jYXRp b25zW2RzX2NvbmNlcHRdLApAQCAtMTI1MzYsOCArMTI1MzksNyBAQCBncm9r ZGVjbGFyYXRvciAoY29uc3QgY3BfZGVjbGFyYXRvciAqZGVjbGFyYXRvciwK IAkJCSAgICAgIHVucXVhbGlmaWVkX2lkKTsKIAkJICAgIGNvbnN0ZXhwcl9w ID0gZmFsc2U7CiAJCSAgfQotCQlkZWNsID0gYnVpbGRfZGVjbCAoaW5wdXRf bG9jYXRpb24sCi0JCQkJICAgRklFTERfREVDTCwgdW5xdWFsaWZpZWRfaWQs IHR5cGUpOworCQlkZWNsID0gYnVpbGRfZGVjbCAobG9jLCBGSUVMRF9ERUNM LCB1bnF1YWxpZmllZF9pZCwgdHlwZSk7CiAJCURFQ0xfTk9OQUREUkVTU0FC TEVfUCAoZGVjbCkgPSBiaXRmaWVsZDsKIAkJaWYgKGJpdGZpZWxkICYmICF1 bnF1YWxpZmllZF9pZCkKIAkJICB7CkluZGV4OiB0ZXN0c3VpdGUvZysrLmRn L290aGVyL2JpdGZpZWxkMi5DCj09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t IHRlc3RzdWl0ZS9nKysuZGcvb3RoZXIvYml0ZmllbGQyLkMJKHJldmlzaW9u IDI2Njg0MCkKKysrIHRlc3RzdWl0ZS9nKysuZGcvb3RoZXIvYml0ZmllbGQy LkMJKHdvcmtpbmcgY29weSkKQEAgLTMsNyArMyw3IEBACiAKIHN0cnVjdCBB CiB7Ci0gIGRvdWJsZSBkIDogMjsgIC8vIHsgZGctZXJyb3IgIm5vbi1pbnRl Z3JhbCIgfQorICBkb3VibGUgZCA6IDI7ICAvLyB7IGRnLWVycm9yICIxMDpi aXQtZmllbGQgLmQuIHdpdGggbm9uLWludGVncmFsIHR5cGUgLmRvdWJsZS4i IH0KICAgQSgpIHt9CiAgIH5BKCkge30KIH07CkluZGV4OiB0ZXN0c3VpdGUv ZysrLmRnL3BhcnNlL2JpdGZpZWxkMS5DCj09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0KLS0tIHRlc3RzdWl0ZS9nKysuZGcvcGFyc2UvYml0ZmllbGQxLkMJKHJl dmlzaW9uIDI2Njg0MCkKKysrIHRlc3RzdWl0ZS9nKysuZGcvcGFyc2UvYml0 ZmllbGQxLkMJKHdvcmtpbmcgY29weSkKQEAgLTIsNyArMiw3IEBACiAKIHN0 cnVjdCBBCiB7Ci0gIGRvdWJsZSBpIDogODsgLy8geyBkZy1lcnJvciAidHlw ZSIgfQorICBkb3VibGUgaSA6IDg7IC8vIHsgZGctZXJyb3IgIjEwOmJpdC1m aWVsZCAuaS4gd2l0aCBub24taW50ZWdyYWwgdHlwZSAuZG91YmxlLiIgfQog fTsKIAogdm9pZCBmb28oQSYgYSkKSW5kZXg6IHRlc3RzdWl0ZS9nKysuZGcv cGFyc2UvYml0ZmllbGQyLkMKPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g dGVzdHN1aXRlL2crKy5kZy9wYXJzZS9iaXRmaWVsZDIuQwkocmV2aXNpb24g MjY2ODQwKQorKysgdGVzdHN1aXRlL2crKy5kZy9wYXJzZS9iaXRmaWVsZDIu Qwkod29ya2luZyBjb3B5KQpAQCAtNCw3ICs0LDcgQEAgc3RydWN0IFgge307 CiAKIHN0cnVjdCBBCiB7Ci0gICAgWCB4IDogMjsgICAgICAgICAgICAvLyB7 IGRnLWVycm9yICJub24taW50ZWdyYWwgdHlwZSIgfQorICAgIFggeCA6IDI7 ICAgICAgICAgICAgLy8geyBkZy1lcnJvciAiNzpiaXQtZmllbGQgLnguIHdp dGggbm9uLWludGVncmFsIHR5cGUgLlguIiB9CiB9Owogc3RydWN0IEIgOiBB IHt9OwogCkBAIC0xOSw3ICsxOSw3IEBAIEM8aW50PiBjOwogdGVtcGxhdGUg PHR5cGVuYW1lIFQ+CiBzdHJ1Y3QgRAogewotICBUIHQgOiAzOyAgICAgICAg ICAgICAgLy8geyBkZy1lcnJvciAibm9uLWludGVncmFsIHR5cGUiIH0KKyAg VCB0IDogMzsgICAgICAgICAgICAgIC8vIHsgZGctZXJyb3IgIjU6Yml0LWZp ZWxkIC5kb3VibGUgRFxcPGRvdWJsZVxcPjo6dC4gd2l0aCBub24taW50ZWdy YWwgdHlwZSAuZG91YmxlLiIgfQogfTsKIAogRDxkb3VibGU+IGQ7ICAgICAg ICAgICAgLy8geyBkZy1tZXNzYWdlICJyZXF1aXJlZCIgfQpAQCAtMjgsNyAr MjgsNyBAQCB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KIHN0cnVjdCBFCiB7CiAg IHR5cGVkZWYgVCogVTsKLSAgVSB0IDogMzsgICAgICAgICAgICAgLy8geyBk Zy1lcnJvciAibm9uLWludGVncmFsIHR5cGUiIH0KKyAgVSB0IDogMzsgICAg ICAgICAgICAgLy8geyBkZy1lcnJvciAiNTpiaXQtZmllbGQgLnQuIHdpdGgg bm9uLWludGVncmFsIHR5cGUgLkVcXDxUXFw+OjpVLiIgfQogfTsKIAogRTxk b3VibGU+IGU7CkluZGV4OiB0ZXN0c3VpdGUvZysrLmRnL3BhcnNlL2JpdGZp ZWxkNy5DCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHRlc3RzdWl0ZS9n KysuZGcvcGFyc2UvYml0ZmllbGQ3LkMJKG5vbmV4aXN0ZW50KQorKysgdGVz dHN1aXRlL2crKy5kZy9wYXJzZS9iaXRmaWVsZDcuQwkod29ya2luZyBjb3B5 KQpAQCAtMCwwICsxLDQgQEAKK3N0cnVjdCBBCit7CisgIGZyaWVuZCBpbnQg OiAxOyAgLy8geyBkZy1lcnJvciAidW5uYW1lZCBmaWVsZCIgfQorfTsK --------------BC1F4DAC72B7CEE25C834669--