From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 59087 invoked by alias); 6 Mar 2018 22:00:37 -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 58958 invoked by uid 89); 6 Mar 2018 22:00:27 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-11.1 required=5.0 tests=BAYES_00,GIT_PATCH_2,GIT_PATCH_3,KAM_ASCII_DIVIDERS,SPF_PASS,T_RP_MATCHES_RCVD autolearn=ham version=3.3.2 spammy=snippets X-HELO: aserp2120.oracle.com Received: from aserp2120.oracle.com (HELO aserp2120.oracle.com) (141.146.126.78) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Tue, 06 Mar 2018 22:00:24 +0000 Received: from pps.filterd (aserp2120.oracle.com [127.0.0.1]) by aserp2120.oracle.com (8.16.0.22/8.16.0.22) with SMTP id w26Lvrm2023329; Tue, 6 Mar 2018 22:00:20 GMT Received: from aserv0022.oracle.com (aserv0022.oracle.com [141.146.126.234]) by aserp2120.oracle.com with ESMTP id 2gj38h019v-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 06 Mar 2018 22:00:20 +0000 Received: from userv0121.oracle.com (userv0121.oracle.com [156.151.31.72]) by aserv0022.oracle.com (8.14.4/8.14.4) with ESMTP id w26M0Jn7020860 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 6 Mar 2018 22:00:20 GMT Received: from abhmp0019.oracle.com (abhmp0019.oracle.com [141.146.116.25]) by userv0121.oracle.com (8.14.4/8.13.8) with ESMTP id w26M0IVC018073; Tue, 6 Mar 2018 22:00:19 GMT Received: from [192.168.1.4] (/79.12.225.62) by default (Oracle Beehive Gateway v4.0) with ESMTP ; Tue, 06 Mar 2018 14:00:18 -0800 Subject: Re: [C++ Patch/RFC] PR 71169 ("[7/8 Regression] ICE on invalid C++ code in pop_nested_class"), PR 71832 and more To: Jason Merrill Cc: "gcc-patches@gcc.gnu.org" References: <08cb94c2-f549-cf3a-47da-1447782a3796@oracle.com> <1cd142d6-4349-90a6-a6f9-f3043976435e@oracle.com> From: Paolo Carlini Message-ID: Date: Tue, 06 Mar 2018 22:00:00 -0000 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.6.0 MIME-Version: 1.0 In-Reply-To: Content-Type: multipart/mixed; boundary="------------16B3494E761ABBF9BD8411DE" X-Proofpoint-Virus-Version: vendor=nai engine=5900 definitions=8824 signatures=668685 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 suspectscore=0 malwarescore=0 phishscore=0 bulkscore=0 spamscore=0 mlxscore=0 mlxlogscore=999 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1711220000 definitions=main-1803060236 X-IsSubscribed: yes X-SW-Source: 2018-03/txt/msg00290.txt.bz2 This is a multi-part message in MIME format. --------------16B3494E761ABBF9BD8411DE Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit Content-length: 674 Hi, On 06/03/2018 21:33, Jason Merrill wrote: > Interesting, that seems like a promising idea. I'm not sure we need > to do this based on an error in a default template arg, though; can we > drop > > + || error_operand_p (TREE_PURPOSE (parameter))) > > ? Good point, yes, I believe we can, isn't necessary for all the snippets I have around neither apparently to pass the testsuite (but this is rather straightforward, right?). As I said, I tried many different things, some also fiddled with TREE_PURPOSE, in pt.c too, but in what I sent I only added the check out of a reflex. Anyway, the below is in libstdc++, so far so good. Thanks, Paolo. ////////////////// --------------16B3494E761ABBF9BD8411DE Content-Type: text/plain; charset=UTF-8; name="patch_71169_71832_b" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="patch_71169_71832_b" Content-length: 14478 SW5kZXg6IGNwL3BhcnNlci5jCj09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t IGNwL3BhcnNlci5jCShyZXZpc2lvbiAyNTgyNjQpCisrKyBjcC9wYXJzZXIu Ywkod29ya2luZyBjb3B5KQpAQCAtNTY1LDYgKzU2NSw4IEBAIGNwX2RlYnVn X3BhcnNlciAoRklMRSAqZmlsZSwgY3BfcGFyc2VyICpwYXJzZXIpCiAJCQkg ICAgICAibG9jYWwgY2xhc3MiLCBwYXJzZXItPmluX2Z1bmN0aW9uX2JvZHkp OwogICBjcF9kZWJ1Z19wcmludF9mbGFnIChmaWxlLCAiQXV0byBjb3JyZWN0 IGEgY29sb24gdG8gYSBzY29wZSBvcGVyYXRvciIsCiAJCQkgICAgICBwYXJz ZXItPmNvbG9uX2NvcnJlY3RzX3RvX3Njb3BlX3ApOworICBjcF9kZWJ1Z19w cmludF9mbGFnIChmaWxlLCAiRXJyb3IgaW4gdGVtcGxhdGUgcGFyYW1ldGVy IGxpc3QiLAorCQkJICAgICAgcGFyc2VyLT5lcnJvcl9pbl90ZW1wbGF0ZV9w YXJhbWV0ZXJfbGlzdF9wKTsKICAgY3BfZGVidWdfcHJpbnRfZmxhZyAoZmls ZSwgIkNvbG9uIGRvZXNuJ3Qgc3RhcnQgYSBjbGFzcyBkZWZpbml0aW9uIiwK IAkJCSAgICAgIHBhcnNlci0+Y29sb25fZG9lc250X3N0YXJ0X2NsYXNzX2Rl Zl9wKTsKICAgaWYgKHBhcnNlci0+dHlwZV9kZWZpbml0aW9uX2ZvcmJpZGRl bl9tZXNzYWdlKQpAQCAtMzkxMCw2ICszOTEyLDkgQEAgY3BfcGFyc2VyX25l dyAodm9pZCkKICAgLyogV2UgY2FuIGNvcnJlY3QgdW50aWwgdG9sZCBvdGhl cndpc2UuICAqLwogICBwYXJzZXItPmNvbG9uX2NvcnJlY3RzX3RvX3Njb3Bl X3AgPSB0cnVlOwogCisgIC8qIE5vIGVycm9yIHNvIGZhci4gICovCisgIHBh cnNlci0+ZXJyb3JfaW5fdGVtcGxhdGVfcGFyYW1ldGVyX2xpc3RfcCA9IGZh bHNlOworCiAgIC8qIFRoZSB1bnBhcnNlZCBmdW5jdGlvbiBxdWV1ZSBpcyBl bXB0eS4gICovCiAgIHB1c2hfdW5wYXJzZWRfZnVuY3Rpb25fcXVldWVzIChw YXJzZXIpOwogCkBAIC0xMDE1MSw2ICsxMDE1Niw4IEBAIGNwX3BhcnNlcl9s YW1iZGFfZXhwcmVzc2lvbiAoY3BfcGFyc2VyKiBwYXJzZXIpCiAgICAgLyog SW5zaWRlIHRoZSBjbGFzcywgc3Vycm91bmRpbmcgdGVtcGxhdGUtcGFyYW1l dGVyLWxpc3RzIGRvIG5vdCBhcHBseS4gICovCiAgICAgdW5zaWduZWQgaW50 IHNhdmVkX251bV90ZW1wbGF0ZV9wYXJhbWV0ZXJfbGlzdHMKICAgICAgICAg PSBwYXJzZXItPm51bV90ZW1wbGF0ZV9wYXJhbWV0ZXJfbGlzdHM7CisgICAg Ym9vbCBzYXZlZF9lcnJvcl9pbl90ZW1wbGF0ZV9wYXJhbWV0ZXJfbGlzdF9w CisgICAgICAgID0gcGFyc2VyLT5lcnJvcl9pbl90ZW1wbGF0ZV9wYXJhbWV0 ZXJfbGlzdF9wOwogICAgIHVuc2lnbmVkIGNoYXIgaW5fc3RhdGVtZW50ID0g cGFyc2VyLT5pbl9zdGF0ZW1lbnQ7CiAgICAgYm9vbCBpbl9zd2l0Y2hfc3Rh dGVtZW50X3AgPSBwYXJzZXItPmluX3N3aXRjaF9zdGF0ZW1lbnRfcDsKICAg ICBib29sIGZ1bGx5X2ltcGxpY2l0X2Z1bmN0aW9uX3RlbXBsYXRlX3AKQEAg LTEwMTYxLDYgKzEwMTY4LDcgQEAgY3BfcGFyc2VyX2xhbWJkYV9leHByZXNz aW9uIChjcF9wYXJzZXIqIHBhcnNlcikKICAgICAgICAgPSBwYXJzZXItPmF1 dG9faXNfaW1wbGljaXRfZnVuY3Rpb25fdGVtcGxhdGVfcGFybV9wOwogCiAg ICAgcGFyc2VyLT5udW1fdGVtcGxhdGVfcGFyYW1ldGVyX2xpc3RzID0gMDsK KyAgICBwYXJzZXItPmVycm9yX2luX3RlbXBsYXRlX3BhcmFtZXRlcl9saXN0 X3AgPSBmYWxzZTsKICAgICBwYXJzZXItPmluX3N0YXRlbWVudCA9IDA7CiAg ICAgcGFyc2VyLT5pbl9zd2l0Y2hfc3RhdGVtZW50X3AgPSBmYWxzZTsKICAg ICBwYXJzZXItPmZ1bGx5X2ltcGxpY2l0X2Z1bmN0aW9uX3RlbXBsYXRlX3Ag PSBmYWxzZTsKQEAgLTEwMTk5LDYgKzEwMjA3LDggQEAgY3BfcGFyc2VyX2xh bWJkYV9leHByZXNzaW9uIChjcF9wYXJzZXIqIHBhcnNlcikKICAgICB0eXBl ID0gZmluaXNoX3N0cnVjdCAodHlwZSwgLyphdHRyaWJ1dGVzPSovTlVMTF9U UkVFKTsKIAogICAgIHBhcnNlci0+bnVtX3RlbXBsYXRlX3BhcmFtZXRlcl9s aXN0cyA9IHNhdmVkX251bV90ZW1wbGF0ZV9wYXJhbWV0ZXJfbGlzdHM7Cisg ICAgcGFyc2VyLT5lcnJvcl9pbl90ZW1wbGF0ZV9wYXJhbWV0ZXJfbGlzdF9w CisgICAgICAgPSBzYXZlZF9lcnJvcl9pbl90ZW1wbGF0ZV9wYXJhbWV0ZXJf bGlzdF9wOwogICAgIHBhcnNlci0+aW5fc3RhdGVtZW50ID0gaW5fc3RhdGVt ZW50OwogICAgIHBhcnNlci0+aW5fc3dpdGNoX3N0YXRlbWVudF9wID0gaW5f c3dpdGNoX3N0YXRlbWVudF9wOwogICAgIHBhcnNlci0+ZnVsbHlfaW1wbGlj aXRfZnVuY3Rpb25fdGVtcGxhdGVfcApAQCAtMTA2MjQsNyArMTA2MzQsOCBA QCBjcF9wYXJzZXJfbGFtYmRhX2RlY2xhcmF0b3Jfb3B0IChjcF9wYXJzZXIq IHBhcnNlcgogICAgICAgewogCWZjbyA9IGZpbmlzaF9tZW1iZXJfdGVtcGxh dGVfZGVjbCAoZmNvKTsKIAlmaW5pc2hfdGVtcGxhdGVfZGVjbCAodGVtcGxh dGVfcGFyYW1fbGlzdCk7Ci0JLS1wYXJzZXItPm51bV90ZW1wbGF0ZV9wYXJh bWV0ZXJfbGlzdHM7CisJaWYgKC0tcGFyc2VyLT5udW1fdGVtcGxhdGVfcGFy YW1ldGVyX2xpc3RzID09IDApCisJICBwYXJzZXItPmVycm9yX2luX3RlbXBs YXRlX3BhcmFtZXRlcl9saXN0X3AgPSBmYWxzZTsKICAgICAgIH0KICAgICBl bHNlIGlmIChwYXJzZXItPmZ1bGx5X2ltcGxpY2l0X2Z1bmN0aW9uX3RlbXBs YXRlX3ApCiAgICAgICBmY28gPSBmaW5pc2hfZnVsbHlfaW1wbGljaXRfdGVt cGxhdGUgKHBhcnNlciwgZmNvKTsKQEAgLTE1MDY1LDYgKzE1MDc2LDEwIEBA IGNwX3BhcnNlcl90ZW1wbGF0ZV9wYXJhbWV0ZXJfbGlzdCAoY3BfcGFyc2Vy KiBwYXJzCiAgICAgICAgICBwYXJhbWV0ZXJfbGlzdCA9IGNoYWlub24gKHBh cmFtZXRlcl9saXN0LCBlcnJfcGFybSk7CiAgICAgICAgfQogCisgICAgICBp ZiAocGFyYW1ldGVyID09IGVycm9yX21hcmtfbm9kZQorCSAgfHwgZXJyb3Jf b3BlcmFuZF9wIChUUkVFX1ZBTFVFIChwYXJhbWV0ZXIpKSkKKwlwYXJzZXIt PmVycm9yX2luX3RlbXBsYXRlX3BhcmFtZXRlcl9saXN0X3AgPSB0cnVlOwor CiAgICAgICAvKiBJZiB0aGUgbmV4dCB0b2tlbiBpcyBub3QgYSBgLCcsIHdl J3JlIGRvbmUuICAqLwogICAgICAgaWYgKGNwX2xleGVyX25leHRfdG9rZW5f aXNfbm90IChwYXJzZXItPmxleGVyLCBDUFBfQ09NTUEpKQogCWJyZWFrOwpA QCAtMTY2NzMsNyArMTY2ODgsOCBAQCBjcF9wYXJzZXJfZXhwbGljaXRfc3Bl Y2lhbGl6YXRpb24gKGNwX3BhcnNlciogcGFycwogICBpZiAobmVlZF9sYW5n X3BvcCkKICAgICBwb3BfbGFuZ19jb250ZXh0ICgpOwogICAvKiBXZSdyZSBk b25lIHdpdGggdGhpcyBwYXJhbWV0ZXIgbGlzdC4gICovCi0gIC0tcGFyc2Vy LT5udW1fdGVtcGxhdGVfcGFyYW1ldGVyX2xpc3RzOworICBpZiAoLS1wYXJz ZXItPm51bV90ZW1wbGF0ZV9wYXJhbWV0ZXJfbGlzdHMgPT0gMCkKKyAgICBw YXJzZXItPmVycm9yX2luX3RlbXBsYXRlX3BhcmFtZXRlcl9saXN0X3AgPSBm YWxzZTsKIH0KIAogLyogUGFyc2UgYSB0eXBlLXNwZWNpZmllci4KQEAgLTIy NDM4LDYgKzIyNDU0LDcgQEAgY3BfcGFyc2VyX2NsYXNzX3NwZWNpZmllcl8x IChjcF9wYXJzZXIqIHBhcnNlcikKICAgdHJlZSBhdHRyaWJ1dGVzID0gTlVM TF9UUkVFOwogICBib29sIG5lc3RlZF9uYW1lX3NwZWNpZmllcl9wOwogICB1 bnNpZ25lZCBzYXZlZF9udW1fdGVtcGxhdGVfcGFyYW1ldGVyX2xpc3RzOwor ICBib29sIHNhdmVkX2Vycm9yX2luX3RlbXBsYXRlX3BhcmFtZXRlcl9saXN0 X3A7CiAgIGJvb2wgc2F2ZWRfaW5fZnVuY3Rpb25fYm9keTsKICAgdW5zaWdu ZWQgY2hhciBpbl9zdGF0ZW1lbnQ7CiAgIGJvb2wgaW5fc3dpdGNoX3N0YXRl bWVudF9wOwpAQCAtMjI0ODAsNiArMjI0OTcsOSBAQCBjcF9wYXJzZXJfY2xh c3Nfc3BlY2lmaWVyXzEgKGNwX3BhcnNlciogcGFyc2VyKQogICBzYXZlZF9u dW1fdGVtcGxhdGVfcGFyYW1ldGVyX2xpc3RzCiAgICAgPSBwYXJzZXItPm51 bV90ZW1wbGF0ZV9wYXJhbWV0ZXJfbGlzdHM7CiAgIHBhcnNlci0+bnVtX3Rl bXBsYXRlX3BhcmFtZXRlcl9saXN0cyA9IDA7CisgIHNhdmVkX2Vycm9yX2lu X3RlbXBsYXRlX3BhcmFtZXRlcl9saXN0X3AKKyAgICA9IHBhcnNlci0+ZXJy b3JfaW5fdGVtcGxhdGVfcGFyYW1ldGVyX2xpc3RfcDsKKyAgcGFyc2VyLT5l cnJvcl9pbl90ZW1wbGF0ZV9wYXJhbWV0ZXJfbGlzdF9wID0gZmFsc2U7CiAg IC8qIFdlIGFyZSBub3QgaW4gYSBmdW5jdGlvbiBib2R5LiAgKi8KICAgc2F2 ZWRfaW5fZnVuY3Rpb25fYm9keSA9IHBhcnNlci0+aW5fZnVuY3Rpb25fYm9k eTsKICAgcGFyc2VyLT5pbl9mdW5jdGlvbl9ib2R5ID0gZmFsc2U7CkBAIC0y MjY1OCw4ICsyMjY3OCwxMyBAQCBjcF9wYXJzZXJfY2xhc3Nfc3BlY2lmaWVy XzEgKGNwX3BhcnNlciogcGFyc2VyKQogICAgICAgIHN0cnVjdCBBOjpCIHsg dm9pZCBmKCkgeyB9IH07CiAKICAgICAgdGhlcmUgaXMgbm8gbmVlZCB0byBk ZWxheSB0aGUgcGFyc2luZyBvZiBgQTo6Qjo6ZicuICAqLwotICBpZiAoLS1w YXJzZXItPm51bV9jbGFzc2VzX2JlaW5nX2RlZmluZWQgPT0gMCkKKyAgaWYg KHNhdmVkX2Vycm9yX2luX3RlbXBsYXRlX3BhcmFtZXRlcl9saXN0X3ApCiAg ICAgeworICAgICAgLyogRG8gbm90aGluZywgd2Ugc2tpcCB0aGUgYm9kaWVz IGluIG9yZGVyIHRvIGltcHJvdmUgZXJyb3IKKwkgcmVjb3ZlcnkgKGMrKy83 MTE2OSwgYysrLzcxODMyLCBldGMpLiAgKi87CisgICAgfQorICBlbHNlIGlm ICgtLXBhcnNlci0+bnVtX2NsYXNzZXNfYmVpbmdfZGVmaW5lZCA9PSAwKQor ICAgIHsKICAgICAgIHRyZWUgZGVjbDsKICAgICAgIHRyZWUgY2xhc3NfdHlw ZSA9IE5VTExfVFJFRTsKICAgICAgIHRyZWUgcHVzaGVkX3Njb3BlID0gTlVM TF9UUkVFOwpAQCAtMjI3NTIsNiArMjI3NzcsOCBAQCBjcF9wYXJzZXJfY2xh c3Nfc3BlY2lmaWVyXzEgKGNwX3BhcnNlciogcGFyc2VyKQogICBwYXJzZXIt PmluX2Z1bmN0aW9uX2JvZHkgPSBzYXZlZF9pbl9mdW5jdGlvbl9ib2R5Owog ICBwYXJzZXItPm51bV90ZW1wbGF0ZV9wYXJhbWV0ZXJfbGlzdHMKICAgICA9 IHNhdmVkX251bV90ZW1wbGF0ZV9wYXJhbWV0ZXJfbGlzdHM7CisgIHBhcnNl ci0+ZXJyb3JfaW5fdGVtcGxhdGVfcGFyYW1ldGVyX2xpc3RfcAorICAgID0g c2F2ZWRfZXJyb3JfaW5fdGVtcGxhdGVfcGFyYW1ldGVyX2xpc3RfcDsKICAg cGFyc2VyLT5pbl91bmJyYWNlZF9saW5rYWdlX3NwZWNpZmljYXRpb25fcAog ICAgID0gc2F2ZWRfaW5fdW5icmFjZWRfbGlua2FnZV9zcGVjaWZpY2F0aW9u X3A7CiAKQEAgLTIzMjUzLDcgKzIzMjgwLDggQEAgY3BfcGFyc2VyX2NsYXNz X2hlYWQgKGNwX3BhcnNlciogcGFyc2VyLAogICBpZiAoaW52YWxpZF9leHBs aWNpdF9zcGVjaWFsaXphdGlvbl9wKQogICAgIHsKICAgICAgIGVuZF9zcGVj aWFsaXphdGlvbiAoKTsKLSAgICAgIC0tcGFyc2VyLT5udW1fdGVtcGxhdGVf cGFyYW1ldGVyX2xpc3RzOworICAgICAgaWYgKC0tcGFyc2VyLT5udW1fdGVt cGxhdGVfcGFyYW1ldGVyX2xpc3RzID09IDApCisJcGFyc2VyLT5lcnJvcl9p bl90ZW1wbGF0ZV9wYXJhbWV0ZXJfbGlzdF9wID0gZmFsc2U7CiAgICAgfQog CiAgIGlmICh0eXBlKQpAQCAtMjY2MTYsNiArMjY2NDQsNyBAQCBjcF9wYXJz ZXJfY29uc3RydWN0b3JfZGVjbGFyYXRvcl9wIChjcF9wYXJzZXIgKnBhcgog CSAgdHJlZSB0eXBlOwogCSAgdHJlZSBwdXNoZWRfc2NvcGUgPSBOVUxMX1RS RUU7CiAJICB1bnNpZ25lZCBzYXZlZF9udW1fdGVtcGxhdGVfcGFyYW1ldGVy X2xpc3RzOworCSAgYm9vbCBzYXZlZF9lcnJvcl9pbl90ZW1wbGF0ZV9wYXJh bWV0ZXJfbGlzdF9wOwogCiAJICAvKiBOYW1lcyBhcHBlYXJpbmcgaW4gdGhl IHR5cGUtc3BlY2lmaWVyIHNob3VsZCBiZSBsb29rZWQgdXAKIAkgICAgIGlu IHRoZSBzY29wZSBvZiB0aGUgY2xhc3MuICAqLwpAQCAtMjY2NDIsNiArMjY2 NzEsOSBAQCBjcF9wYXJzZXJfY29uc3RydWN0b3JfZGVjbGFyYXRvcl9wIChj cF9wYXJzZXIgKnBhcgogCSAgc2F2ZWRfbnVtX3RlbXBsYXRlX3BhcmFtZXRl cl9saXN0cwogCSAgICA9IHBhcnNlci0+bnVtX3RlbXBsYXRlX3BhcmFtZXRl cl9saXN0czsKIAkgIHBhcnNlci0+bnVtX3RlbXBsYXRlX3BhcmFtZXRlcl9s aXN0cyA9IDA7CisJICBzYXZlZF9lcnJvcl9pbl90ZW1wbGF0ZV9wYXJhbWV0 ZXJfbGlzdF9wCisJICAgID0gcGFyc2VyLT5lcnJvcl9pbl90ZW1wbGF0ZV9w YXJhbWV0ZXJfbGlzdF9wOworCSAgcGFyc2VyLT5lcnJvcl9pbl90ZW1wbGF0 ZV9wYXJhbWV0ZXJfbGlzdF9wID0gZmFsc2U7CiAKIAkgIC8qIExvb2sgZm9y IHRoZSB0eXBlLXNwZWNpZmllci4gICovCiAJICBjcF9wYXJzZXJfdHlwZV9z cGVjaWZpZXIgKHBhcnNlciwKQEAgLTI2NjUzLDYgKzI2Njg1LDggQEAgY3Bf cGFyc2VyX2NvbnN0cnVjdG9yX2RlY2xhcmF0b3JfcCAoY3BfcGFyc2VyICpw YXIKIAogCSAgcGFyc2VyLT5udW1fdGVtcGxhdGVfcGFyYW1ldGVyX2xpc3Rz CiAJICAgID0gc2F2ZWRfbnVtX3RlbXBsYXRlX3BhcmFtZXRlcl9saXN0czsK KwkgIHBhcnNlci0+ZXJyb3JfaW5fdGVtcGxhdGVfcGFyYW1ldGVyX2xpc3Rf cAorCSAgICA9IHNhdmVkX2Vycm9yX2luX3RlbXBsYXRlX3BhcmFtZXRlcl9s aXN0X3A7CiAKIAkgIC8qIExlYXZlIHRoZSBzY29wZSBvZiB0aGUgY2xhc3Mu ICAqLwogCSAgaWYgKHB1c2hlZF9zY29wZSkKQEAgLTI2NzUxLDYgKzI2Nzg1 LDcgQEAgY3BfcGFyc2VyX2Z1bmN0aW9uX2RlZmluaXRpb25fYWZ0ZXJfZGVj bGFyYXRvciAoY3AKICAgYm9vbCBzYXZlZF9pbl91bmJyYWNlZF9saW5rYWdl X3NwZWNpZmljYXRpb25fcDsKICAgYm9vbCBzYXZlZF9pbl9mdW5jdGlvbl9i b2R5OwogICB1bnNpZ25lZCBzYXZlZF9udW1fdGVtcGxhdGVfcGFyYW1ldGVy X2xpc3RzOworICBib29sIHNhdmVkX2Vycm9yX2luX3RlbXBsYXRlX3BhcmFt ZXRlcl9saXN0X3A7CiAgIGNwX3Rva2VuICp0b2tlbjsKICAgYm9vbCBmdWxs eV9pbXBsaWNpdF9mdW5jdGlvbl90ZW1wbGF0ZV9wCiAgICAgPSBwYXJzZXIt PmZ1bGx5X2ltcGxpY2l0X2Z1bmN0aW9uX3RlbXBsYXRlX3A7CkBAIC0yNjc5 OSw2ICsyNjgzNCw5IEBAIGNwX3BhcnNlcl9mdW5jdGlvbl9kZWZpbml0aW9u X2FmdGVyX2RlY2xhcmF0b3IgKGNwCiAgIHNhdmVkX251bV90ZW1wbGF0ZV9w YXJhbWV0ZXJfbGlzdHMKICAgICA9IHBhcnNlci0+bnVtX3RlbXBsYXRlX3Bh cmFtZXRlcl9saXN0czsKICAgcGFyc2VyLT5udW1fdGVtcGxhdGVfcGFyYW1l dGVyX2xpc3RzID0gMDsKKyAgc2F2ZWRfZXJyb3JfaW5fdGVtcGxhdGVfcGFy YW1ldGVyX2xpc3RfcAorICAgID0gcGFyc2VyLT5lcnJvcl9pbl90ZW1wbGF0 ZV9wYXJhbWV0ZXJfbGlzdF9wOworICBwYXJzZXItPmVycm9yX2luX3RlbXBs YXRlX3BhcmFtZXRlcl9saXN0X3AgPSBmYWxzZTsKIAogICAvKiBJZiB0aGUg bmV4dCB0b2tlbiBpcyBgdHJ5JywgYF9fdHJhbnNhY3Rpb25fYXRvbWljJywg b3IKICAgICAgYF9fdHJhbnNhY3Rpb25fcmVsYXhlZGAsIHRoZW4gd2UgYXJl IGxvb2tpbmcgYXQgZWl0aGVyIGZ1bmN0aW9uLXRyeS1ibG9jawpAQCAtMjY4 MjQsNiArMjY4NjIsOCBAQCBjcF9wYXJzZXJfZnVuY3Rpb25fZGVmaW5pdGlv bl9hZnRlcl9kZWNsYXJhdG9yIChjcAogICAgID0gc2F2ZWRfaW5fdW5icmFj ZWRfbGlua2FnZV9zcGVjaWZpY2F0aW9uX3A7CiAgIHBhcnNlci0+bnVtX3Rl bXBsYXRlX3BhcmFtZXRlcl9saXN0cwogICAgID0gc2F2ZWRfbnVtX3RlbXBs YXRlX3BhcmFtZXRlcl9saXN0czsKKyAgcGFyc2VyLT5lcnJvcl9pbl90ZW1w bGF0ZV9wYXJhbWV0ZXJfbGlzdF9wCisgICAgPSBzYXZlZF9lcnJvcl9pbl90 ZW1wbGF0ZV9wYXJhbWV0ZXJfbGlzdF9wOwogICBwYXJzZXItPmluX2Z1bmN0 aW9uX2JvZHkgPSBzYXZlZF9pbl9mdW5jdGlvbl9ib2R5OwogCiAgIHBhcnNl ci0+ZnVsbHlfaW1wbGljaXRfZnVuY3Rpb25fdGVtcGxhdGVfcApAQCAtMjY4 OTMsNyArMjY5MzMsOCBAQCBjcF9wYXJzZXJfdGVtcGxhdGVfZGVjbGFyYXRp b25fYWZ0ZXJfcGFyYW1ldGVycyAoYwogCQkJICAgLypjb21wbGFpbj0qL3Ry dWUpOwogICAgIH0KICAgLyogV2UgYXJlIGRvbmUgd2l0aCB0aGUgY3VycmVu dCBwYXJhbWV0ZXIgbGlzdC4gICovCi0gIC0tcGFyc2VyLT5udW1fdGVtcGxh dGVfcGFyYW1ldGVyX2xpc3RzOworICBpZiAoLS1wYXJzZXItPm51bV90ZW1w bGF0ZV9wYXJhbWV0ZXJfbGlzdHMgPT0gMCkKKyAgICBwYXJzZXItPmVycm9y X2luX3RlbXBsYXRlX3BhcmFtZXRlcl9saXN0X3AgPSBmYWxzZTsKIAogICBw b3BfZGVmZXJyaW5nX2FjY2Vzc19jaGVja3MgKCk7CiAKQEAgLTM5MjQ5LDcg KzM5MjkwLDggQEAgZmluaXNoX2Z1bGx5X2ltcGxpY2l0X3RlbXBsYXRlIChj cF9wYXJzZXIgKnBhcnNlciwKICAgZW5kX3RlbXBsYXRlX2RlY2wgKCk7CiAK ICAgcGFyc2VyLT5mdWxseV9pbXBsaWNpdF9mdW5jdGlvbl90ZW1wbGF0ZV9w ID0gZmFsc2U7Ci0gIC0tcGFyc2VyLT5udW1fdGVtcGxhdGVfcGFyYW1ldGVy X2xpc3RzOworICBpZiAoLS1wYXJzZXItPm51bV90ZW1wbGF0ZV9wYXJhbWV0 ZXJfbGlzdHMgPT0gMCkKKyAgICBwYXJzZXItPmVycm9yX2luX3RlbXBsYXRl X3BhcmFtZXRlcl9saXN0X3AgPSBmYWxzZTsKIAogICByZXR1cm4gbWVtYmVy X2RlY2xfb3B0OwogfQpJbmRleDogY3AvcGFyc2VyLmgKPT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PQotLS0gY3AvcGFyc2VyLmgJKHJldmlzaW9uIDI1ODI2NCkK KysrIGNwL3BhcnNlci5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNDYsNiArMzQ2 LDkgQEAgc3RydWN0IEdUWSgoKSkgY3BfcGFyc2VyIHsKICAgICAgaXMgdGVy bWluYXRlZCBieSBjb2xvbi4gICovCiAgIGJvb2wgY29sb25fZG9lc250X3N0 YXJ0X2NsYXNzX2RlZl9wOwogCisgIC8qIFRSVUUgaWYgdGhlcmUgd2FzIGFu IGVycm9yIGluIGEgdGVtcGxhdGUgcGFyYW1ldGVyIGxpc3QuICAqLworICBi b29sIGVycm9yX2luX3RlbXBsYXRlX3BhcmFtZXRlcl9saXN0X3A7CisKICAg LyogSWYgbm9uLU5VTEwsIHRoZW4gd2UgYXJlIHBhcnNpbmcgYSBjb25zdHJ1 Y3Qgd2hlcmUgbmV3IHR5cGUKICAgICAgZGVmaW5pdGlvbnMgYXJlIG5vdCBw ZXJtaXR0ZWQuICBUaGUgc3RyaW5nIHN0b3JlZCBoZXJlIHdpbGwgYmUKICAg ICAgaXNzdWVkIGFzIGFuIGVycm9yIG1lc3NhZ2UgaWYgYSB0eXBlIGlzIGRl ZmluZWQuICAqLwpJbmRleDogdGVzdHN1aXRlL2crKy5kZy9jcHAweC9wcjcx MTY5LTIuQwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSB0ZXN0c3VpdGUv ZysrLmRnL2NwcDB4L3ByNzExNjktMi5DCShub25leGlzdGVudCkKKysrIHRl c3RzdWl0ZS9nKysuZGcvY3BwMHgvcHI3MTE2OS0yLkMJKHdvcmtpbmcgY29w eSkKQEAgLTAsMCArMSwxOSBAQAorLy8geyBkZy1kbyBjb21waWxlIHsgdGFy Z2V0IGMrKzExIH0gfQorCit0ZW1wbGF0ZSA8UHJlY29uZGl0aW9uZXI+IGNs YXNzIEEgeyAgLy8geyBkZy1lcnJvciAiZGVjbGFyZWQiIH0KKyAgdGVtcGxh dGUgPGNsYXNzID0gaW50PiB2b2lkIG1fZm4xKCkgeworICAgIG1fZm4xKCk7 CisgICAgfQorfTsKKwordGVtcGxhdGU8dHlwZW5hbWU+CitzdHJ1Y3QgQgor eworICBpbnQgZigpIHsgcmV0dXJuIDA7IH0KK307CisKK2ludCBtYWluKCkK K3sKKyAgQjxpbnQ+IGI7CisgIHJldHVybiBiLmYoKTsKK30KSW5kZXg6IHRl c3RzdWl0ZS9nKysuZGcvY3BwMHgvcHI3MTE2OS5DCj09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT0KLS0tIHRlc3RzdWl0ZS9nKysuZGcvY3BwMHgvcHI3MTE2OS5D CShub25leGlzdGVudCkKKysrIHRlc3RzdWl0ZS9nKysuZGcvY3BwMHgvcHI3 MTE2OS5DCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNyBAQAorLy8geyBk Zy1kbyBjb21waWxlIHsgdGFyZ2V0IGMrKzExIH0gfQorCit0ZW1wbGF0ZSA8 UHJlY29uZGl0aW9uZXI+IGNsYXNzIEEgeyAgLy8geyBkZy1lcnJvciAiZGVj bGFyZWQiIH0KKyAgdGVtcGxhdGUgPGNsYXNzID0gaW50PiB2b2lkIG1fZm4x KCkgeworICAgIG1fZm4xKCk7CisgICAgfQorfTsKSW5kZXg6IHRlc3RzdWl0 ZS9nKysuZGcvY3BwMHgvcHI3MTgzMi5DCj09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0KLS0tIHRlc3RzdWl0ZS9nKysuZGcvY3BwMHgvcHI3MTgzMi5DCShub25l eGlzdGVudCkKKysrIHRlc3RzdWl0ZS9nKysuZGcvY3BwMHgvcHI3MTgzMi5D CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNyBAQAorLy8geyBkZy1kbyBj b21waWxlIHsgdGFyZ2V0IGMrKzExIH0gfQorCit0ZW1wbGF0ZSA8IHR5cGVu YW1lIGRlY2x0eXBlICgwKSA+IHN0cnVjdCBBICAvLyB7IGRnLWVycm9yICJl eHBlY3RlZHx0d28gb3IgbW9yZSIgfQoreyAKKyAgdm9pZCBmb28gKCkgeyBi YXogKCk7IH0KKyAgdGVtcGxhdGUgPCB0eXBlbmFtZSAuLi4gUyA+IHZvaWQg YmF6ICgpIHt9Cit9Owo= --------------16B3494E761ABBF9BD8411DE--