From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 116482 invoked by alias); 29 Aug 2017 21:37:31 -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 116045 invoked by uid 89); 29 Aug 2017 21:37:30 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-24.5 required=5.0 tests=AWL,BAYES_00,GIT_PATCH_0,GIT_PATCH_1,GIT_PATCH_2,GIT_PATCH_3,KAM_LAZY_DOMAIN_SECURITY,RCVD_IN_DNSWL_LOW,RCVD_IN_SORBS_SPAM autolearn=ham version=3.3.2 spammy=lam X-HELO: mail-it0-f54.google.com Received: from mail-it0-f54.google.com (HELO mail-it0-f54.google.com) (209.85.214.54) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Tue, 29 Aug 2017 21:37:28 +0000 Received: by mail-it0-f54.google.com with SMTP id a141so10446629itd.0 for ; Tue, 29 Aug 2017 14:37:27 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to:cc; bh=32tkaZRG1ebK9Hx1SVpt1P3eWZ/irpzSvT3cSk1ZX0g=; b=mHBz6XYPnrB56U952pmvgdcLSBOZuUFk84lUOWCUYMCfKWjJzTMLiuQsYsJqRbfXv5 +iu1zsqETapPeWEhiGjqE6K9Opf7nq51m37rjoN6Zi+uexYHO8NiMCStdqgMa8c9CWSd ELYxtXv7KLGO4TD17Xo45cFIHKgDzWitq6MqAtsIVT5/66c5MwhPbGBD2t/5tlgid2DH iVGsTp8QAYvvEzJX+ufbjzEpujg4jKQ1gwFm+nfXUX4VRCGH7l1v7kDtbgV2vUKr3h3P 4cnnOviw0i9XWoqgUUWmT4d3sS1iDwjCwHHn1UnRuRrVvjPF/g+w7t/GTlSqZ7TPwDvO F3ZA== X-Gm-Message-State: AHYfb5hv0u1L7egy3cfz8MZKIGB0OlPWhDC8RybSCpFqTGzq0hvpWWDe f68b1Ry3Wp5s0tVe91h7WuWrK7/+qkOXXRM= X-Received: by 10.36.165.69 with SMTP id w5mr3642211iti.28.1504042645822; Tue, 29 Aug 2017 14:37:25 -0700 (PDT) MIME-Version: 1.0 Received: by 10.107.181.23 with HTTP; Tue, 29 Aug 2017 14:37:04 -0700 (PDT) From: Jason Merrill Date: Tue, 29 Aug 2017 21:56:00 -0000 Message-ID: Subject: C++ PATCH for c++/81236, missed 'this' capture with template-id in generic lambda To: gcc-patches List Cc: Adam Butcher Content-Type: multipart/mixed; boundary="f403045fb750a1e6940557eb373e" X-IsSubscribed: yes X-SW-Source: 2017-08/txt/msg01686.txt.bz2 --f403045fb750a1e6940557eb373e Content-Type: text/plain; charset="UTF-8" Content-length: 1285 The problem here was that normally in finish_id_expression we add 'this->' to a mention of a non-static member, but there is special code for doing less if the lookup result is dependent, and so we didn't get that processing. A few months back Adam fixed 64382 by deciding to do all the normal processing if we're in a generic lambda in a template, but in this testcase the generic lambda isn't in a template. We could approach this by extending that change to all generic lambdas, and that might be appropriate for GCC 7, but it seems to me that this approach will just mean any problems with doing all the normal processing in a template will remain latent until someone happens to use them in a generic lambda; instead, this patch removes the template special case and fixes the normal code to work properly in templates. The cp_parser_postfix_dot_deref_expression hunk was a latent diagnostic quality issue: there's no point in trying to be permissive about an incomplete type like void, since it can't be completed by instantiation time. The cp_walk_subtrees hunk was necessary to make abi-tag21.C work with this change; without walking into the scope of the BASELINK, we didn't see the explicit scope in the return type of fv. Tested x86_64-pc-linux-gnu, applying to trunk. --f403045fb750a1e6940557eb373e Content-Type: text/plain; charset="US-ASCII"; name="generic-tid.diff" Content-Disposition: attachment; filename="generic-tid.diff" Content-Transfer-Encoding: base64 X-Attachment-Id: f_j6y2djhn0 Content-length: 16475 Y29tbWl0IDI4ZGYzOWIyMTkyYjVmZWVmZmE2ZGQyYjgyMDhjZjAyNzBhYzUz MzAKQXV0aG9yOiBKYXNvbiBNZXJyaWxsIDxqYXNvbkByZWRoYXQuY29tPgpE YXRlOiAgIFRodSBBdWcgMjQgMTQ6MDk6MDEgMjAxNyAtMDQwMAoKICAgICAg ICAgICAgUFIgYysrLzgxMjM2IC0gSUNFIHdpdGggdGVtcGxhdGUtaWQgaW4g Z2VuZXJpYyBsYW1iZGEKICAgIAogICAgICAgICAgICAqIHNlbWFudGljcy5j IChmaW5pc2hfaWRfZXhwcmVzc2lvbik6IFJlbW92ZSBzcGVjaWFsIGRlcGVu ZGVudCBjYXNlLgogICAgICAgICAgICBBdm9pZCBzb21lIGxhdGVyIHBpZWNl cyB3aGVuIGRlcGVuZGVudC4KICAgICAgICAgICAgKGZpbmlzaF9xdWFsaWZp ZWRfaWRfZXhwcik6IERvIG5vcm1hbCBCQVNFTElOSyBoYW5kbGluZyBpbiBh CiAgICAgICAgICAgIHRlbXBsYXRlLiAgQWx3YXlzIGJ1aWxkIGEgU0NPUEVf UkVGIGZvciBhIGRlc3RydWN0b3IgQklUX05PVF9FWFBSLgogICAgICAgICAg ICAocGFyc2luZ19kZWZhdWx0X2NhcHR1cmluZ19nZW5lcmljX2xhbWJkYV9p bl90ZW1wbGF0ZSk6IFJlbW92ZS4KICAgICAgICAgICAgKiBwYXJzZXIuYyAo Y3BfcGFyc2VyX3Bvc3RmaXhfZG90X2RlcmVmX2V4cHJlc3Npb24pOiBBbHdh eXMgZ2l2ZSBhbgogICAgICAgICAgICBlcnJvciBmb3IgdHlwZXMgdGhhdCB3 aWxsIG5ldmVyIGJlIGNvbXBsZXRlLgogICAgICAgICAgICAqIG1hbmdsZS5j ICh3cml0ZV9leHByZXNzaW9uKTogQWRkIHNhbml0eSBjaGVjay4KICAgICAg ICAgICAgKiB0cmVlLmMgKGJ1aWxkX3F1YWxpZmllZF9uYW1lKTogQWRkIHNh bml0eSBjaGVjay4KICAgICAgICAgICAgKGNwX3dhbGtfc3VidHJlZXMpOiBX YWxrIGludG8gdGhlIGNsYXNzIGNvbnRleHQgb2YgYSBCQVNFTElOSy4KICAg ICAgICAgICAgKiBsYW1iZGEuYyAoYWRkX2NhcHR1cmUpOiBJbXByb3ZlIGRp YWdub3N0aWMgZm9yIGdlbmVyaWMgbGFtYmRhCiAgICAgICAgICAgIGNhcHR1 cmUgZmFpbHVyZS4KICAgICAgICAgICAgKiBjYWxsLmMgKGJ1aWxkX25ld19t ZXRob2RfY2FsbF8xKTogUHJpbnQgdGhlIHJpZ2h0IGNvbnN0cnVjdG9yCiAg ICAgICAgICAgIG5hbWUuCgpkaWZmIC0tZ2l0IGEvZ2NjL2NwL2NhbGwuYyBi L2djYy9jcC9jYWxsLmMKaW5kZXggZjdmOTI5Ny4uYzQ0NjA1NyAxMDA2NDQK LS0tIGEvZ2NjL2NwL2NhbGwuYworKysgYi9nY2MvY3AvY2FsbC5jCkBAIC05 MDA3LDYgKzkwMDcsNyBAQCBidWlsZF9uZXdfbWV0aG9kX2NhbGxfMSAodHJl ZSBpbnN0YW5jZSwgdHJlZSBmbnMsIHZlYzx0cmVlLCB2YV9nYz4gKiphcmdz LAogICAgICAgaWYgKCEgKGNvbXBsYWluICYgdGZfZXJyb3IpKQogCXJldHVy biBlcnJvcl9tYXJrX25vZGU7CiAKKyAgICAgIGJhc2V0eXBlID0gREVDTF9D T05URVhUIChmbik7CiAgICAgICBuYW1lID0gY29uc3RydWN0b3JfbmFtZSAo YmFzZXR5cGUpOwogICAgICAgaWYgKHBlcm1lcnJvciAoaW5wdXRfbG9jYXRp b24sCiAJCSAgICAgImNhbm5vdCBjYWxsIGNvbnN0cnVjdG9yICU8JVQ6OiVE JT4gZGlyZWN0bHkiLApkaWZmIC0tZ2l0IGEvZ2NjL2NwL2xhbWJkYS5jIGIv Z2NjL2NwL2xhbWJkYS5jCmluZGV4IDQ3NDdhNzIuLjliYTNkZjEgMTAwNjQ0 Ci0tLSBhL2djYy9jcC9sYW1iZGEuYworKysgYi9nY2MvY3AvbGFtYmRhLmMK QEAgLTU5MCw3ICs1OTAsMTEgQEAgYWRkX2NhcHR1cmUgKHRyZWUgbGFtYmRh LCB0cmVlIGlkLCB0cmVlIG9yaWdfaW5pdCwgYm9vbCBieV9yZWZlcmVuY2Vf cCwKICAgLyogQWRkIGl0IHRvIHRoZSBhcHByb3ByaWF0ZSBjbG9zdXJlIGNs YXNzIGlmIHdlJ3ZlIHN0YXJ0ZWQgaXQuICAqLwogICBpZiAoY3VycmVudF9j bGFzc190eXBlCiAgICAgICAmJiBjdXJyZW50X2NsYXNzX3R5cGUgPT0gTEFN QkRBX0VYUFJfQ0xPU1VSRSAobGFtYmRhKSkKLSAgICBmaW5pc2hfbWVtYmVy X2RlY2xhcmF0aW9uIChtZW1iZXIpOworICAgIHsKKyAgICAgIGlmIChDT01Q TEVURV9UWVBFX1AgKGN1cnJlbnRfY2xhc3NfdHlwZSkpCisJaW50ZXJuYWxf ZXJyb3IgKCJ0cnlpbmcgdG8gY2FwdHVyZSAlcUQgYWZ0ZXIgY2xvc3VyZSBp cyBjb21wbGV0ZSIsIGlkKTsKKyAgICAgIGZpbmlzaF9tZW1iZXJfZGVjbGFy YXRpb24gKG1lbWJlcik7CisgICAgfQogCiAgIHRyZWUgbGlzdG1lbSA9IG1l bWJlcjsKICAgaWYgKHZhcmlhZGljKQpkaWZmIC0tZ2l0IGEvZ2NjL2NwL21h bmdsZS5jIGIvZ2NjL2NwL21hbmdsZS5jCmluZGV4IGE4N2Y5N2YuLmNlN2Mw YzUgMTAwNjQ0Ci0tLSBhL2djYy9jcC9tYW5nbGUuYworKysgYi9nY2MvY3Av bWFuZ2xlLmMKQEAgLTMwMTUsNiArMzAxNSw3IEBAIHdyaXRlX2V4cHJlc3Np b24gKHRyZWUgZXhwcikKIAl7CiAJICBzY29wZSA9IFRSRUVfT1BFUkFORCAo ZXhwciwgMCk7CiAJICBtZW1iZXIgPSBUUkVFX09QRVJBTkQgKGV4cHIsIDEp OworCSAgZ2NjX2Fzc2VydCAoIUJBU0VMSU5LX1AgKG1lbWJlcikpOwogCX0K ICAgICAgIGVsc2UKIAl7CmRpZmYgLS1naXQgYS9nY2MvY3AvcGFyc2VyLmMg Yi9nY2MvY3AvcGFyc2VyLmMKaW5kZXggZDBkNzFmYS4uNDdkOTFiZiAxMDA2 NDQKLS0tIGEvZ2NjL2NwL3BhcnNlci5jCisrKyBiL2djYy9jcC9wYXJzZXIu YwpAQCAtNzQ0NiwxMSArNzQ0NiwxNCBAQCBjcF9wYXJzZXJfcG9zdGZpeF9k b3RfZGVyZWZfZXhwcmVzc2lvbiAoY3BfcGFyc2VyICpwYXJzZXIsCiAJICAg ICAgLyogSW4gYSB0ZW1wbGF0ZSwgYmUgcGVybWlzc2l2ZSBieSB0cmVhdGlu ZyBhbiBvYmplY3QgZXhwcmVzc2lvbgogCQkgb2YgaW5jb21wbGV0ZSB0eXBl IGFzIGRlcGVuZGVudCAoYWZ0ZXIgYSBwZWR3YXJuKS4gICovCiAJICAgICAg ZGlhZ25vc3RpY190IGtpbmQgPSAocHJvY2Vzc2luZ190ZW1wbGF0ZV9kZWNs CisJCQkJICAgJiYgTUFZQkVfQ0xBU1NfVFlQRV9QIChzY29wZSkKIAkJCQkg ICA/IERLX1BFRFdBUk4KIAkJCQkgICA6IERLX0VSUk9SKTsKIAkgICAgICBj eHhfaW5jb21wbGV0ZV90eXBlX2RpYWdub3N0aWMKIAkJKGxvY2F0aW9uX29m IChwb3N0Zml4X2V4cHJlc3Npb24pLAogCQkgcG9zdGZpeF9leHByZXNzaW9u LCBzY29wZSwga2luZCk7CisJICAgICAgaWYgKCFNQVlCRV9DTEFTU19UWVBF X1AgKHNjb3BlKSkKKwkJcmV0dXJuIGVycm9yX21hcmtfbm9kZTsKIAkgICAg ICBpZiAocHJvY2Vzc2luZ190ZW1wbGF0ZV9kZWNsKQogCQl7CiAJCSAgZGVw ZW5kZW50X3AgPSB0cnVlOwpAQCAtMjA2NzEsMzMgKzIwNjc0LDYgQEAgcGFy c2luZ19uc2RtaSAodm9pZCkKICAgcmV0dXJuIGZhbHNlOwogfQogCi0vKiBS ZXR1cm4gdHJ1ZSBpZmYgb3VyIGN1cnJlbnQgc2NvcGUgaXMgYSBkZWZhdWx0 IGNhcHR1cmluZyBnZW5lcmljIGxhbWJkYQotICAgZGVmaW5lZCB3aXRoaW4g YSB0ZW1wbGF0ZS4gIEZJWE1FOiBUaGlzIGlzIHBhcnQgb2YgYSB3b3JrYXJv dW5kIChzZWUKLSAgIHNlbWFudGljcy5jKSB0byBoYW5kbGUgYnVpbGRpbmcg bGFtYmRhIGNsb3N1cmUgdHlwZXMgY29ycmVjdGx5IGluIHRlbXBsYXRlcwot ICAgd2hpY2ggd2UgdWx0aW1hdGVseSB3YW50IHRvIGRlZmVyIHRvIGluc3Rh bnRpYXRpb24gdGltZS4gKi8KLQotYm9vbAotcGFyc2luZ19kZWZhdWx0X2Nh cHR1cmluZ19nZW5lcmljX2xhbWJkYV9pbl90ZW1wbGF0ZSAodm9pZCkKLXsK LSAgaWYgKCFwcm9jZXNzaW5nX3RlbXBsYXRlX2RlY2wgfHwgIWN1cnJlbnRf Y2xhc3NfdHlwZSkKLSAgICByZXR1cm4gZmFsc2U7Ci0KLSAgdHJlZSBsYW0g PSBDTEFTU1RZUEVfTEFNQkRBX0VYUFIgKGN1cnJlbnRfY2xhc3NfdHlwZSk7 Ci0gIGlmICghbGFtIHx8IExBTUJEQV9FWFBSX0RFRkFVTFRfQ0FQVFVSRV9N T0RFIChsYW0pID09IENQTERfTk9ORSkKLSAgICByZXR1cm4gZmFsc2U7Ci0K LSAgdHJlZSBjYWxsb3AgPSBsYW1iZGFfZnVuY3Rpb24gKGxhbSk7Ci0gIGlm ICghY2FsbG9wKQotICAgIHJldHVybiBmYWxzZTsKLQotICByZXR1cm4gKERF Q0xfVEVNUExBVEVfSU5GTyAoY2FsbG9wKQotCSAgJiYgKERFQ0xfVEVNUExB VEVfUkVTVUxUIChERUNMX1RJX1RFTVBMQVRFIChjYWxsb3ApKSA9PSBjYWxs b3ApCi0JICAmJiAoKGN1cnJlbnRfbm9ubGFtYmRhX2NsYXNzX3R5cGUgKCkK LQkgICAgICAgJiYgQ0xBU1NUWVBFX1RFTVBMQVRFX0lORk8gKGN1cnJlbnRf bm9ubGFtYmRhX2NsYXNzX3R5cGUgKCkpKQotCSAgICAgIHx8ICgoY3VycmVu dF9ub25sYW1iZGFfZnVuY3Rpb24gKCkKLQkJICAgJiYgREVDTF9URU1QTEFU RV9JTkZPIChjdXJyZW50X25vbmxhbWJkYV9mdW5jdGlvbiAoKSkpKSkpOwot fQotCiAvKiBQYXJzZSBhIGxhdGUtc3BlY2lmaWVkIHJldHVybiB0eXBlLCBp ZiBhbnkuICBUaGlzIGlzIG5vdCBhIHNlcGFyYXRlCiAgICBub24tdGVybWlu YWwsIGJ1dCBwYXJ0IG9mIGEgZnVuY3Rpb24gZGVjbGFyYXRvciwgd2hpY2gg bG9va3MgbGlrZQogCmRpZmYgLS1naXQgYS9nY2MvY3Avc2VtYW50aWNzLmMg Yi9nY2MvY3Avc2VtYW50aWNzLmMKaW5kZXggOGYyODIyMS4uYjJlNThkMiAx MDA2NDQKLS0tIGEvZ2NjL2NwL3NlbWFudGljcy5jCisrKyBiL2djYy9jcC9z ZW1hbnRpY3MuYwpAQCAtMjAzNSw3ICsyMDM1LDcgQEAgZmluaXNoX3F1YWxp ZmllZF9pZF9leHByICh0cmVlIHF1YWxpZnlpbmdfY2xhc3MsCiAJCQkJCSAg ICBxdWFsaWZ5aW5nX2NsYXNzKTsKICAgICAgIHBvcF9kZWZlcnJpbmdfYWNj ZXNzX2NoZWNrcyAoKTsKICAgICB9Ci0gIGVsc2UgaWYgKEJBU0VMSU5LX1Ag KGV4cHIpICYmICFwcm9jZXNzaW5nX3RlbXBsYXRlX2RlY2wpCisgIGVsc2Ug aWYgKEJBU0VMSU5LX1AgKGV4cHIpKQogICAgIHsKICAgICAgIC8qIFNlZSBp ZiBhbnkgb2YgdGhlIGZ1bmN0aW9ucyBhcmUgbm9uLXN0YXRpYyBtZW1iZXJz LiAgKi8KICAgICAgIC8qIElmIHNvLCB0aGUgZXhwcmVzc2lvbiBtYXkgYmUg cmVsYXRpdmUgdG8gJ3RoaXMnLiAgKi8KQEAgLTIwNTUsOCArMjA1NSw2IEBA IGZpbmlzaF9xdWFsaWZpZWRfaWRfZXhwciAodHJlZSBxdWFsaWZ5aW5nX2Ns YXNzLAogCWV4cHIgPSBidWlsZF9vZmZzZXRfcmVmIChxdWFsaWZ5aW5nX2Ns YXNzLCBleHByLCAvKmFkZHJlc3NfcD0qL2ZhbHNlLAogCQkJCSBjb21wbGFp bik7CiAgICAgfQotICBlbHNlIGlmIChCQVNFTElOS19QIChleHByKSkKLSAg ICA7CiAgIGVsc2UKICAgICB7CiAgICAgICAvKiBJbiBhIHRlbXBsYXRlLCBy ZXR1cm4gYSBTQ09QRV9SRUYgZm9yIG1vc3QgcXVhbGlmaWVkLWlkcwpAQCAt MjA2NSw3ICsyMDYzLDggQEAgZmluaXNoX3F1YWxpZmllZF9pZF9leHByICh0 cmVlIHF1YWxpZnlpbmdfY2xhc3MsCiAJIGtub3cgd2UgaGF2ZSBhY2Nlc3Mg YW5kIGJ1aWxkaW5nIHVwIHRoZSBTQ09QRV9SRUYgY29uZnVzZXMKIAkgbm9u LXR5cGUgdGVtcGxhdGUgYXJndW1lbnQgaGFuZGxpbmcuICAqLwogICAgICAg aWYgKHByb2Nlc3NpbmdfdGVtcGxhdGVfZGVjbAotCSAgJiYgIWN1cnJlbnRs eV9vcGVuX2NsYXNzIChxdWFsaWZ5aW5nX2NsYXNzKSkKKwkgICYmICghY3Vy cmVudGx5X29wZW5fY2xhc3MgKHF1YWxpZnlpbmdfY2xhc3MpCisJICAgICAg fHwgVFJFRV9DT0RFIChleHByKSA9PSBCSVRfTk9UX0VYUFIpKQogCWV4cHIg PSBidWlsZF9xdWFsaWZpZWRfbmFtZSAoVFJFRV9UWVBFIChleHByKSwKIAkJ CQkgICAgIHF1YWxpZnlpbmdfY2xhc3MsIGV4cHIsCiAJCQkJICAgICB0ZW1w bGF0ZV9wKTsKQEAgLTM1OTUsNzggKzM1OTQsMTIgQEAgZmluaXNoX2lkX2V4 cHJlc3Npb24gKHRyZWUgaWRfZXhwcmVzc2lvbiwKIAkJICAgID8gQ1BfSURf S0lORF9VTlFVQUxJRklFRF9ERVBFTkRFTlQKIAkJICAgIDogQ1BfSURfS0lO RF9VTlFVQUxJRklFRCkpKTsKIAotICAgICAgLyogSWYgdGhlIG5hbWUgd2Fz IGRlcGVuZGVudCBvbiBhIHRlbXBsYXRlIHBhcmFtZXRlciBhbmQgd2UncmUg bm90IGluIGEKLQkgZGVmYXVsdCBjYXB0dXJpbmcgZ2VuZXJpYyBsYW1iZGEg d2l0aGluIGEgdGVtcGxhdGUsIHdlIHdpbGwgcmVzb2x2ZSB0aGUKLQkgbmFt ZSBhdCBpbnN0YW50aWF0aW9uIHRpbWUuICBGSVhNRTogRm9yIGxhbWJkYXMs IHdlIHNob3VsZCBkZWZlcgotCSBidWlsZGluZyB0aGUgY2xvc3VyZSB0eXBl IHVudGlsIGluc3RhbnRpYXRpb24gdGltZSB0aGVuIHdlIHdvbid0IG5lZWQK LQkgdGhlIGV4dHJhIHRlc3QgaGVyZS4gICovCiAgICAgICBpZiAoZGVwZW5k ZW50X3AKLQkgICYmICFwYXJzaW5nX2RlZmF1bHRfY2FwdHVyaW5nX2dlbmVy aWNfbGFtYmRhX2luX3RlbXBsYXRlICgpKQotCXsKLQkgIGlmIChERUNMX1Ag KGRlY2wpCi0JICAgICAgJiYgYW55X2RlcGVuZGVudF90eXBlX2F0dHJpYnV0 ZXNfcCAoREVDTF9BVFRSSUJVVEVTIChkZWNsKSkpCi0JICAgIC8qIERlcGVu ZGVudCB0eXBlIGF0dHJpYnV0ZXMgb24gdGhlIGRlY2wgbWVhbiB0aGF0IHRo ZSBUUkVFX1RZUEUgaXMKLQkgICAgICAgd3JvbmcsIHNvIGp1c3QgcmV0dXJu IHRoZSBpZGVudGlmaWVyLiAgKi8KLQkgICAgcmV0dXJuIGlkX2V4cHJlc3Np b247Ci0KLQkgIC8qIElmIHdlIGZvdW5kIGEgdmFyaWFibGUsIHRoZW4gbmFt ZSBsb29rdXAgZHVyaW5nIHRoZQotCSAgICAgaW5zdGFudGlhdGlvbiB3aWxs IGFsd2F5cyByZXNvbHZlIHRvIHRoZSBzYW1lIFZBUl9ERUNMCi0JICAgICAo b3IgYW4gaW5zdGFudGlhdGlvbiB0aGVyZW9mKS4gICovCi0JICBpZiAoVkFS X1AgKGRlY2wpCi0JICAgICAgfHwgVFJFRV9DT0RFIChkZWNsKSA9PSBDT05T VF9ERUNMCi0JICAgICAgfHwgVFJFRV9DT0RFIChkZWNsKSA9PSBQQVJNX0RF Q0wpCi0JICAgIHsKLQkgICAgICBtYXJrX3VzZWQgKGRlY2wpOwotCSAgICAg IHJldHVybiBjb252ZXJ0X2Zyb21fcmVmZXJlbmNlIChkZWNsKTsKLQkgICAg fQotCi0JICAvKiBDcmVhdGUgYSBTQ09QRV9SRUYgZm9yIHF1YWxpZmllZCBu YW1lcywgaWYgdGhlIHNjb3BlIGlzCi0JICAgICBkZXBlbmRlbnQuICAqLwot CSAgaWYgKHNjb3BlKQotCSAgICB7Ci0JICAgICAgaWYgKFRZUEVfUCAoc2Nv cGUpKQotCQl7Ci0JCSAgaWYgKGFkZHJlc3NfcCAmJiBkb25lKQotCQkgICAg ZGVjbCA9IGZpbmlzaF9xdWFsaWZpZWRfaWRfZXhwciAoc2NvcGUsIGRlY2ws Ci0JCQkJCQkgICAgIGRvbmUsIGFkZHJlc3NfcCwKLQkJCQkJCSAgICAgdGVt cGxhdGVfcCwKLQkJCQkJCSAgICAgdGVtcGxhdGVfYXJnX3AsCi0JCQkJCQkg ICAgIHRmX3dhcm5pbmdfb3JfZXJyb3IpOwotCQkgIGVsc2UKLQkJICAgIHsK LQkJICAgICAgdHJlZSB0eXBlID0gTlVMTF9UUkVFOwotCQkgICAgICBpZiAo REVDTF9QIChkZWNsKSAmJiAhZGVwZW5kZW50X3Njb3BlX3AgKHNjb3BlKSkK LQkJCXR5cGUgPSBUUkVFX1RZUEUgKGRlY2wpOwotCQkgICAgICBkZWNsID0g YnVpbGRfcXVhbGlmaWVkX25hbWUgKHR5cGUsCi0JCQkJCQkgICBzY29wZSwK LQkJCQkJCSAgIGlkX2V4cHJlc3Npb24sCi0JCQkJCQkgICB0ZW1wbGF0ZV9w KTsKLQkJICAgIH0KLQkJfQotCSAgICAgIGlmIChUUkVFX1RZUEUgKGRlY2wp KQotCQlkZWNsID0gY29udmVydF9mcm9tX3JlZmVyZW5jZSAoZGVjbCk7Ci0J ICAgICAgcmV0dXJuIGRlY2w7Ci0JICAgIH0KLQkgIC8qIEEgVEVNUExBVEVf SUQgYWxyZWFkeSBjb250YWlucyBhbGwgdGhlIGluZm9ybWF0aW9uIHdlCi0J ICAgICBuZWVkLiAgKi8KLQkgIGlmIChUUkVFX0NPREUgKGlkX2V4cHJlc3Np b24pID09IFRFTVBMQVRFX0lEX0VYUFIpCi0JICAgIHJldHVybiBpZF9leHBy ZXNzaW9uOwotCSAgLyogVGhlIHNhbWUgaXMgdHJ1ZSBmb3IgRklFTERfREVD TCwgYnV0IHdlIGFsc28gbmVlZCB0bwotCSAgICAgbWFrZSBzdXJlIHRoYXQg dGhlIHN5bnRheCBpcyBjb3JyZWN0LiAgKi8KLQkgIGVsc2UgaWYgKFRSRUVf Q09ERSAoZGVjbCkgPT0gRklFTERfREVDTCkKLQkgICAgewotCSAgICAgIC8q IFNpbmNlIFNDT1BFIGlzIE5VTEwgaGVyZSwgdGhpcyBpcyBhbiB1bnF1YWxp ZmllZCBuYW1lLgotCQkgQWNjZXNzIGNoZWNraW5nIGhhcyBiZWVuIHBlcmZv cm1lZCBkdXJpbmcgbmFtZSBsb29rdXAKLQkJIGFscmVhZHkuICBUdXJuIG9m ZiBjaGVja2luZyB0byBhdm9pZCBkdXBsaWNhdGUgZXJyb3JzLiAgKi8KLQkg ICAgICBwdXNoX2RlZmVycmluZ19hY2Nlc3NfY2hlY2tzIChka19ub19jaGVj ayk7Ci0JICAgICAgZGVjbCA9IGZpbmlzaF9ub25fc3RhdGljX2RhdGFfbWVt YmVyCi0JCSAgICAgICAoZGVjbCwgTlVMTF9UUkVFLAotCQkJLypxdWFsaWZ5 aW5nX3Njb3BlPSovTlVMTF9UUkVFKTsKLQkgICAgICBwb3BfZGVmZXJyaW5n X2FjY2Vzc19jaGVja3MgKCk7Ci0JICAgICAgcmV0dXJuIGRlY2w7Ci0JICAg IH0KLQkgIHJldHVybiBpZF9leHByZXNzaW9uOwotCX0KKwkgICYmIERFQ0xf UCAoZGVjbCkKKwkgICYmIGFueV9kZXBlbmRlbnRfdHlwZV9hdHRyaWJ1dGVz X3AgKERFQ0xfQVRUUklCVVRFUyAoZGVjbCkpKQorCS8qIERlcGVuZGVudCB0 eXBlIGF0dHJpYnV0ZXMgb24gdGhlIGRlY2wgbWVhbiB0aGF0IHRoZSBUUkVF X1RZUEUgaXMKKwkgICB3cm9uZywgc28ganVzdCByZXR1cm4gdGhlIGlkZW50 aWZpZXIuICAqLworCXJldHVybiBpZF9leHByZXNzaW9uOwogCiAgICAgICBp ZiAoVFJFRV9DT0RFIChkZWNsKSA9PSBOQU1FU1BBQ0VfREVDTCkKIAl7CkBA IC0zNzAwLDYgKzM2MzMsNyBAQCBmaW5pc2hfaWRfZXhwcmVzc2lvbiAodHJl ZSBpZF9leHByZXNzaW9uLAogCSBleHByZXNzaW9uLiAgVGVtcGxhdGUgcGFy YW1ldGVycyBoYXZlIGFscmVhZHkKIAkgYmVlbiBoYW5kbGVkIGFib3ZlLiAg Ki8KICAgICAgIGlmICghIGVycm9yX29wZXJhbmRfcCAoZGVjbCkKKwkgICYm ICFkZXBlbmRlbnRfcAogCSAgJiYgaW50ZWdyYWxfY29uc3RhbnRfZXhwcmVz c2lvbl9wCiAJICAmJiAhIGRlY2xfY29uc3RhbnRfdmFyX3AgKGRlY2wpCiAJ ICAmJiBUUkVFX0NPREUgKGRlY2wpICE9IENPTlNUX0RFQ0wKQEAgLTM3MjYs NiArMzY2MCw3IEBAIGZpbmlzaF9pZF9leHByZXNzaW9uICh0cmVlIGlkX2V4 cHJlc3Npb24sCiAJICBkZWNsID0gYnVpbGRfY3h4X2NhbGwgKHdyYXAsIDAs IE5VTEwsIHRmX3dhcm5pbmdfb3JfZXJyb3IpOwogCX0KICAgICAgIGVsc2Ug aWYgKFRSRUVfQ09ERSAoZGVjbCkgPT0gVEVNUExBVEVfSURfRVhQUgorCSAg ICAgICAmJiAhZGVwZW5kZW50X3AKIAkgICAgICAgJiYgdmFyaWFibGVfdGVt cGxhdGVfcCAoVFJFRV9PUEVSQU5EIChkZWNsLCAwKSkpCiAJewogCSAgZGVj bCA9IGZpbmlzaF90ZW1wbGF0ZV92YXJpYWJsZSAoZGVjbCk7CkBAIC0zNzM0 LDYgKzM2NjksMTIgQEAgZmluaXNoX2lkX2V4cHJlc3Npb24gKHRyZWUgaWRf ZXhwcmVzc2lvbiwKIAl9CiAgICAgICBlbHNlIGlmIChzY29wZSkKIAl7CisJ ICBpZiAoVFJFRV9DT0RFIChkZWNsKSA9PSBTQ09QRV9SRUYpCisJICAgIHsK KwkgICAgICBnY2NfYXNzZXJ0IChzYW1lX3R5cGVfcCAoc2NvcGUsIFRSRUVf T1BFUkFORCAoZGVjbCwgMCkpKTsKKwkgICAgICBkZWNsID0gVFJFRV9PUEVS QU5EIChkZWNsLCAxKTsKKwkgICAgfQorCiAJICBkZWNsID0gKGFkanVzdF9y ZXN1bHRfb2ZfcXVhbGlmaWVkX25hbWVfbG9va3VwCiAJCSAgKGRlY2wsIHNj b3BlLCBjdXJyZW50X25vbmxhbWJkYV9jbGFzc190eXBlKCkpKTsKIApkaWZm IC0tZ2l0IGEvZ2NjL2NwL3RyZWUuYyBiL2djYy9jcC90cmVlLmMKaW5kZXgg ZGJhYzdmMy4uYWFiOTJkNSAxMDA2NDQKLS0tIGEvZ2NjL2NwL3RyZWUuYwor KysgYi9nY2MvY3AvdHJlZS5jCkBAIC0yMDI4LDYgKzIwMjgsNyBAQCBidWls ZF9xdWFsaWZpZWRfbmFtZSAodHJlZSB0eXBlLCB0cmVlIHNjb3BlLCB0cmVl IG5hbWUsIGJvb2wgdGVtcGxhdGVfcCkKICAgICAgIHx8IHNjb3BlID09IGVy cm9yX21hcmtfbm9kZQogICAgICAgfHwgbmFtZSA9PSBlcnJvcl9tYXJrX25v ZGUpCiAgICAgcmV0dXJuIGVycm9yX21hcmtfbm9kZTsKKyAgZ2NjX2Fzc2Vy dCAoVFJFRV9DT0RFIChuYW1lKSAhPSBTQ09QRV9SRUYpOwogICB0ID0gYnVp bGQyIChTQ09QRV9SRUYsIHR5cGUsIHNjb3BlLCBuYW1lKTsKICAgUVVBTElG SUVEX05BTUVfSVNfVEVNUExBVEUgKHQpID0gdGVtcGxhdGVfcDsKICAgUFRS TUVNX09LX1AgKHQpID0gdHJ1ZTsKQEAgLTQ2NjMsNiArNDY2NCw4IEBAIGNw X3dhbGtfc3VidHJlZXMgKHRyZWUgKnRwLCBpbnQgKndhbGtfc3VidHJlZXNf cCwgd2Fsa190cmVlX2ZuIGZ1bmMsCiAgICAgICBicmVhazsKIAogICAgIGNh c2UgQkFTRUxJTks6CisgICAgICBpZiAoQkFTRUxJTktfUVVBTElGSUVEX1Ag KCp0cCkpCisJV0FMS19TVUJUUkVFIChCSU5GT19UWVBFIChCQVNFTElOS19B Q0NFU1NfQklORk8gKCp0cCkpKTsKICAgICAgIFdBTEtfU1VCVFJFRSAoQkFT RUxJTktfRlVOQ1RJT05TICgqdHApKTsKICAgICAgICp3YWxrX3N1YnRyZWVz X3AgPSAwOwogICAgICAgYnJlYWs7CmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1 aXRlL2crKy5kZy9jcHAxeS9sYW1iZGEtZ2VuZXJpYy10aGlzMS5DIGIvZ2Nj L3Rlc3RzdWl0ZS9nKysuZGcvY3BwMXkvbGFtYmRhLWdlbmVyaWMtdGhpczEu QwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41MmQyNWFm Ci0tLSAvZGV2L251bGwKKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nKysuZGcvY3Bw MXkvbGFtYmRhLWdlbmVyaWMtdGhpczEuQwpAQCAtMCwwICsxLDE3IEBACisv LyBQUiBjKysvODEyMzYKKy8vIHsgZGctZG8gY29tcGlsZSB7IHRhcmdldCBj KysxNCB9IH0KKworc3RydWN0IEEgeyBjb25zdGV4cHIgb3BlcmF0b3IgaW50 KCkgeyByZXR1cm4gMjQ7IH0gfTsKKworc3RydWN0IE15VHlwZSB7CisgIHZv aWQgY3Jhc2goKSB7CisgICAgYXV0byBsID0gWyZdKGF1dG8gaSl7CisgICAg ICBtYWtlX2NyYXNoPGk+KCk7IC8vIExpbmUgKDEpCisgICAgfTsKKworICAg IGwoQXt9KTsKKyAgfQorICAgIAorICB0ZW1wbGF0ZTxpbnQgaT4KKyAgdm9p ZCBtYWtlX2NyYXNoKCkge30KK307CmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1 aXRlL2crKy5kZy9jcHAxeS9sYW1iZGEtZ2VuZXJpYy10aGlzMWEuQyBiL2dj Yy90ZXN0c3VpdGUvZysrLmRnL2NwcDF5L2xhbWJkYS1nZW5lcmljLXRoaXMx YS5DCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQzMjFh MDcKLS0tIC9kZXYvbnVsbAorKysgYi9nY2MvdGVzdHN1aXRlL2crKy5kZy9j cHAxeS9sYW1iZGEtZ2VuZXJpYy10aGlzMWEuQwpAQCAtMCwwICsxLDE3IEBA CisvLyBQUiBjKysvODEyMzYKKy8vIHsgZGctZG8gY29tcGlsZSB7IHRhcmdl dCBjKysxNCB9IH0KKworc3RydWN0IEEgeyBjb25zdGV4cHIgb3BlcmF0b3Ig aW50KCkgeyByZXR1cm4gMjQ7IH0gfTsKKworc3RydWN0IE15VHlwZSB7Cisg IHZvaWQgY3Jhc2goKSB7CisgICAgYXV0byBsID0gWyZdKGF1dG8gaSl7Cisg ICAgICBNeVR5cGU6Om1ha2VfY3Jhc2g8aT4oKTsgLy8gTGluZSAoMSkKKyAg ICB9OworCisgICAgbChBe30pOworICB9CisgICAgCisgIHRlbXBsYXRlPGlu dCBpPgorICB2b2lkIG1ha2VfY3Jhc2goKSB7fQorfTsKZGlmZiAtLWdpdCBh L2djYy90ZXN0c3VpdGUvZysrLmRnL3RlbXBsYXRlL3BzZXVkb2R0b3IzLkMg Yi9nY2MvdGVzdHN1aXRlL2crKy5kZy90ZW1wbGF0ZS9wc2V1ZG9kdG9yMy5D CmluZGV4IDhmMWY2YTcuLjIxYTY4YWEgMTAwNjQ0Ci0tLSBhL2djYy90ZXN0 c3VpdGUvZysrLmRnL3RlbXBsYXRlL3BzZXVkb2R0b3IzLkMKKysrIGIvZ2Nj L3Rlc3RzdWl0ZS9nKysuZGcvdGVtcGxhdGUvcHNldWRvZHRvcjMuQwpAQCAt MTEsNyArMTEsNyBAQCBzdHJ1Y3QgQQogdGVtcGxhdGUgPHR5cGVuYW1lIFQ+ IHN0cnVjdCBCCiB7CiAgIFQgJmZvbyAoKTsKLSAgQiAoKSB7IGZvby5+VCAo KTsgfQkvLyB7IGRnLWVycm9yICIxNTppbnZhbGlkIHVzZSBvZiBtZW1iZXIi IH0KKyAgQiAoKSB7IGZvby5+VCAoKTsgfQkvLyB7IGRnLWVycm9yICIxMDpp bnZhbGlkIHVzZSBvZiBtZW1iZXIiIH0KIH07CiAKIEI8aW50PiBiOwpAQCAt MzcsNyArMzcsNyBAQCB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4gc3RydWN0IEUK IHsKICAgVCAmZm9vICgpOwogICB0eXBlZGVmIGxvbmcgaW50IFU7Ci0gIEUg KCkgeyBmb28uflUgKCk7IH0JLy8geyBkZy1lcnJvciAiMTA6aXMgbm90IG9m IHR5cGUiIH0KKyAgRSAoKSB7IGZvby5+VSAoKTsgfQkvLyB7IGRnLWVycm9y ICIxMDppbnZhbGlkIHVzZSBvZiBtZW1iZXIiIH0KIH07CiAKIEU8aW50PiBl Owo= --f403045fb750a1e6940557eb373e--