From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from esa2.mentor.iphmx.com (esa2.mentor.iphmx.com [68.232.141.98]) by sourceware.org (Postfix) with ESMTPS id 405BA3858D1E; Mon, 20 Feb 2023 11:48:48 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 405BA3858D1E Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=codesourcery.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=mentor.com X-IronPort-AV: E=Sophos;i="5.97,312,1669104000"; d="diff'?scan'208";a="98841623" Received: from orw-gwy-02-in.mentorg.com ([192.94.38.167]) by esa2.mentor.iphmx.com with ESMTP; 20 Feb 2023 03:48:45 -0800 IronPort-SDR: AhfreRTA7DHHf2pQMc6ADDvSAPlG2DImVtOcQ09xHc8nvasSPRRjV/MRuu/hptqmTsm7nHatjB Cas55bQ5dOYOyMnL/GLRsCKOM2vNQVwUp7GK/7J+Ti7SdmCJpqdHpvR/qwuIrgMPVqfl0NsWzj izcOThm8YERJO4K+wcaBjZZ1fCP3Fr+kVoy3BsJrEfw796EGEVG5XuvUEHNV5SrMZDE41zoJ0t izOy/neTrXTlYSwMlVBBdUePYf89uB5CBtQJgdTIGwk014USehXhgJ4VC+71cL4HHqVP/cIkn4 R4A= Content-Type: multipart/mixed; boundary="------------6frTCDzTtadf006R1C2fuvYi" Message-ID: <8d3fae03-2638-9c6b-eccc-d0a31d1b9733@codesourcery.com> Date: Mon, 20 Feb 2023 12:48:38 +0100 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.7.2 Subject: Re: [Patch] Fortran: Avoid SAVE_EXPR for deferred-len char types Content-Language: en-US To: Jakub Jelinek CC: Richard Biener , , gcc-patches , fortran , Paul Richard Thomas References: <27cd606a-f019-60b2-a9c8-0a570433b5eb@codesourcery.com> <34e0f9e6-ebb8-ce86-ea11-08b37e5be1f8@codesourcery.com> From: Tobias Burnus In-Reply-To: X-Originating-IP: [137.202.0.90] X-ClientProxiedBy: svr-ies-mbx-12.mgc.mentorg.com (139.181.222.12) To svr-ies-mbx-12.mgc.mentorg.com (139.181.222.12) X-Spam-Status: No, score=-11.4 required=5.0 tests=BAYES_00,GIT_PATCH_0,HEADER_FROM_DIFFERENT_DOMAINS,KAM_DMARC_STATUS,NICE_REPLY_A,RCVD_IN_MSPIKE_H2,SPF_HELO_PASS,SPF_PASS,TXREP autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: --------------6frTCDzTtadf006R1C2fuvYi Content-Type: text/plain; charset="UTF-8"; format=flowed Content-Transfer-Encoding: quoted-printable On 20.02.23 12:15, Jakub Jelinek wrote: > On Mon, Feb 20, 2023 at 12:07:43PM +0100, Tobias Burnus wrote: >> As mentioned in the TODO for 'deferred', I think we really want >> to have NULL as upper value for the domain for the type, but that >> requires literally hundred of changes to the compiler, which >> I do not want to due during Stage 4, but that are eventually >> required.* =E2=80=94 In any case, this patch fixes some of the issues >> in the meanwhile. > Yeah, the actual len can be in some type's lang_specific member. Actually, I think it should be bound to the DECL and not to the TYPE, i.e. lang_decl not type_lang. I just see that, the latter already has a 'tree stringlen' (for I/O) which probably could be reused for this purpose. > Anyway, for the patch for now, I'd probably instead of stripping > SAVE_EXPR overwrite the 2 sizes with newly built expressions. What I now did. (Unchanged otherwise, except that I now also mention GFC_DECL_STRING_LEN in the TODO.) OK for mainline? Tobias ----------------- Siemens Electronic Design Automation GmbH; Anschrift: Arnulfstra=C3=9Fe 201= , 80634 M=C3=BCnchen; Gesellschaft mit beschr=C3=A4nkter Haftung; Gesch=C3= =A4ftsf=C3=BChrer: Thomas Heurung, Frank Th=C3=BCrauf; Sitz der Gesellschaf= t: M=C3=BCnchen; Registergericht M=C3=BCnchen, HRB 106955 --------------6frTCDzTtadf006R1C2fuvYi Content-Type: text/x-patch; charset="UTF-8"; name="fix-deferred-len-v2.diff" Content-Disposition: attachment; filename="fix-deferred-len-v2.diff" Content-Transfer-Encoding: base64 Rm9ydHJhbjogQXZvaWQgU0FWRV9FWFBSIGZvciBkZWZlcnJlZC1sZW4gY2hhciB0eXBlcwoK VXNpbmcgVFlQRV9TSVpFL1RZUEVfU0laRV9VTklUIHdpdGggZGVmZXJyZWQtbGVuZ3RoIGNo YXJhY3RlciB2YXJpYWJsZXMsCmkuZS4gJ2NoYXJhY3RlcihsZW49OiksIGFsbG9jYXRhYmxl L3BvaW50ZXInIHVzZWQgYSBTQVZFX0VYUFIsIGkuZS4gdGhlCnZhbHVlIG9uIGVudHJ5IHRv IHRoZSBzY29wZSBpbnN0ZWFkIG9mIHRoZSBsYXRlc3QgdmFsdWUuCgpTb2x1dGlvbjogUmVt b3ZlIHRoZSBTQVZFX0VYUFIgYWdhaW4gaW4gdGhpcyBjYXNlLgoKZ2NjL2ZvcnRyYW4vQ2hh bmdlTG9nOgoKCSogdHJhbnMtdHlwZXMuaCAoZ2ZjX2dldF9jaGFyYWN0ZXJfdHlwZSwgZ2Zj X2dldF9jaGFyYWN0ZXJfdHlwZV9sZW4sCgkoZ2ZjX2dldF9jaGFyYWN0ZXJfdHlwZV9sZW5f Zm9yX2VsdHlwZSk6IEFkZCBhcmd1bWVudCAnYm9vbCBkZWZlcnJlZCcuCgkqIHRyYW5zLXR5 cGVzLmNjIChnZmNfZ2V0X2NoYXJhY3Rlcl90eXBlX2xlbl9mb3JfZWx0eXBlKTogTGlrZXdp c2U7CglyZW1vdmUgdGhlIFNBVkVfRVhQUiBmb3IgdGhlIHR5cGUgc2l6ZSBmb3IgZGVmZXJy ZWQgc3RyaW5nIGxlbmd0aHMuCgkoZ2ZjX2dldF9jaGFyYWN0ZXJfdHlwZV9sZW4sIGdmY19n ZXRfY2hhcmFjdGVyX3R5cGUpOiBBZGQgYXJnCglhbmQgcGFzcyBvbi4KCShnZmNfdHlwZW5v ZGVfZm9yX3NwZWMpOiBVcGRhdGUgY2FsbC4KCSogdHJhbnMtYXJyYXkuY2MgKGdmY190cmFu c19jcmVhdGVfdGVtcF9hcnJheSwKCXRyYW5zX2FycmF5X2NvbnN0cnVjdG9yLCBnZmNfY29u dl9sb29wX3NldHVwLCBnZmNfYXJyYXlfaW5pdF9zaXplLAoJZ2ZjX2FsbG9jX2FsbG9jYXRh YmxlX2Zvcl9hc3NpZ25tZW50KTogTGlrZXdpc2UuCgkqIHRyYW5zLWV4cHIuY2MgKGdmY19j b252X3N1YnN0cmluZywgZ2ZjX2NvbnZfY29uY2F0X29wLAoJZ2ZjX2FkZF9pbnRlcmZhY2Vf bWFwcGluZywgZ2ZjX2NvbnZfcHJvY2VkdXJlX2NhbGwsCglnZmNfY29udl9zdGF0ZW1lbnRf ZnVuY3Rpb24sIGdmY19jb252X3N0cmluZ19wYXJhbWV0ZXIpOiBMaWtld2lzZS4KCSogdHJh bnMtaW50cmluc2ljLmNjIChnZmNfY29udl9pbnRyaW5zaWNfdHJhbnNmZXIsCglnZmNfY29u dl9pbnRyaW5zaWNfcmVwZWF0KTogTGlrZXdpc2UuCgkqIHRyYW5zLXN0bXQuY2MgKGZvcmFs bF9tYWtlX3ZhcmlhYmxlX3RlbXAsCglnZmNfdHJhbnNfYXNzaWduX25lZWRfdGVtcCk6IExp a2V3aXNlLgoKIGdjYy9mb3J0cmFuL3RyYW5zLWFycmF5LmNjICAgICB8IDExICsrKysrKy0t LS0tCiBnY2MvZm9ydHJhbi90cmFucy1leHByLmNjICAgICAgfCAxNSArKysrKysrKy0tLS0t LS0KIGdjYy9mb3J0cmFuL3RyYW5zLWludHJpbnNpYy5jYyB8ICA1ICsrKy0tCiBnY2MvZm9y dHJhbi90cmFucy1zdG10LmNjICAgICAgfCAgNyArKysrLS0tCiBnY2MvZm9ydHJhbi90cmFu cy10eXBlcy5jYyAgICAgfCAzOSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0t LS0tLS0KIGdjYy9mb3J0cmFuL3RyYW5zLXR5cGVzLmggICAgICB8ICA2ICsrKy0tLQogNiBm aWxlcyBjaGFuZ2VkLCA1NCBpbnNlcnRpb25zKCspLCAyOSBkZWxldGlvbnMoLSkKCmRpZmYg LS1naXQgYS9nY2MvZm9ydHJhbi90cmFucy1hcnJheS5jYyBiL2djYy9mb3J0cmFuL3RyYW5z LWFycmF5LmNjCmluZGV4IDYzYmQxYWM1NzNhLi5iMGFiZGFkYzNmNSAxMDA2NDQKLS0tIGEv Z2NjL2ZvcnRyYW4vdHJhbnMtYXJyYXkuY2MKKysrIGIvZ2NjL2ZvcnRyYW4vdHJhbnMtYXJy YXkuY2MKQEAgLTE0ODAsNyArMTQ4MCw3IEBAIGdmY190cmFuc19jcmVhdGVfdGVtcF9hcnJh eSAoc3RtdGJsb2NrX3QgKiBwcmUsIHN0bXRibG9ja190ICogcG9zdCwgZ2ZjX3NzICogc3Ms CiAgICAgICBlbGVtc2l6ZSA9IGdmY19yZXNpemVfY2xhc3Nfc2l6ZV93aXRoX2xlbiAocHJl LCBjbGFzc19leHByLCBlbGVtc2l6ZSk7CiAgICAgICAvKiBDYXN0aW5nIHRoZSBkYXRhIGFz IGEgY2hhcmFjdGVyIG9mIHRoZSBkeW5hbWljIGxlbmd0aCBlbnN1cmVzIHRoYXQKIAkgYXNz aWdubWVudCBvZiBlbGVtZW50cyB3b3JrcyB3aGVuIG5lZWRlZC4gICovCi0gICAgICBlbHR5 cGUgPSBnZmNfZ2V0X2NoYXJhY3Rlcl90eXBlX2xlbiAoMSwgZWxlbXNpemUpOworICAgICAg ZWx0eXBlID0gZ2ZjX2dldF9jaGFyYWN0ZXJfdHlwZV9sZW4gKDEsIGVsZW1zaXplLCB0cnVl KTsKICAgICB9CiAKICAgbWVtc2V0IChmcm9tLCAwLCBzaXplb2YgKGZyb20pKTsKQEAgLTI4 MjMsNyArMjgyMyw4IEBAIHRyYW5zX2FycmF5X2NvbnN0cnVjdG9yIChnZmNfc3MgKiBzcywg bG9jdXMgKiB3aGVyZSkKIAogICAgICAgc3RvcmVfYmFja2VuZF9kZWNsICgmZXhwci0+dHMu dS5jbCwgc3NfaW5mby0+c3RyaW5nX2xlbmd0aCwgZm9yY2VfbmV3X2NsKTsKIAotICAgICAg dHlwZSA9IGdmY19nZXRfY2hhcmFjdGVyX3R5cGVfbGVuIChleHByLT50cy5raW5kLCBzc19p bmZvLT5zdHJpbmdfbGVuZ3RoKTsKKyAgICAgIHR5cGUgPSBnZmNfZ2V0X2NoYXJhY3Rlcl90 eXBlX2xlbiAoZXhwci0+dHMua2luZCwgc3NfaW5mby0+c3RyaW5nX2xlbmd0aCwKKwkJCQkJ IGV4cHItPnRzLmRlZmVycmVkKTsKICAgICAgIGlmIChjb25zdF9zdHJpbmcpCiAJdHlwZSA9 IGJ1aWxkX3BvaW50ZXJfdHlwZSAodHlwZSk7CiAgICAgfQpAQCAtNTQ5Miw3ICs1NDkzLDcg QEAgZ2ZjX2NvbnZfbG9vcF9zZXR1cCAoZ2ZjX2xvb3BpbmZvICogbG9vcCwgbG9jdXMgKiB3 aGVyZSkKIAl0bXBfc3NfaW5mby0+ZGF0YS50ZW1wLnR5cGUKIAkJPSBnZmNfZ2V0X2NoYXJh Y3Rlcl90eXBlX2xlbl9mb3JfZWx0eXBlCiAJCQkoVFJFRV9UWVBFICh0bXBfc3NfaW5mby0+ ZGF0YS50ZW1wLnR5cGUpLAotCQkJIHRtcF9zc19pbmZvLT5zdHJpbmdfbGVuZ3RoKTsKKwkJ CSB0bXBfc3NfaW5mby0+c3RyaW5nX2xlbmd0aCwgZmFsc2UpOwogCiAgICAgICB0bXAgPSB0 bXBfc3NfaW5mby0+ZGF0YS50ZW1wLnR5cGU7CiAgICAgICBtZW1zZXQgKCZ0bXBfc3NfaW5m by0+ZGF0YS5hcnJheSwgMCwgc2l6ZW9mIChnZmNfYXJyYXlfaW5mbykpOwpAQCAtNTczNyw3 ICs1NzM4LDcgQEAgZ2ZjX2FycmF5X2luaXRfc2l6ZSAodHJlZSBkZXNjcmlwdG9yLCBpbnQg cmFuaywgaW50IGNvcmFuaywgdHJlZSAqIHBvZmZzZXQsCiAgICAgICB0bXAgPSBmb2xkX2J1 aWxkM19sb2MgKGlucHV0X2xvY2F0aW9uLCBDT01QT05FTlRfUkVGLCBUUkVFX1RZUEUgKHRt cCksCiAJCQkgICAgIFRSRUVfT1BFUkFORCAoZGVzY3JpcHRvciwgMCksIHRtcCwgTlVMTF9U UkVFKTsKICAgICAgIHRtcCA9IGZvbGRfY29udmVydCAoZ2ZjX2NoYXJsZW5fdHlwZV9ub2Rl LCB0bXApOwotICAgICAgdHlwZSA9IGdmY19nZXRfY2hhcmFjdGVyX3R5cGVfbGVuIChleHBy LT50cy5raW5kLCB0bXApOworICAgICAgdHlwZSA9IGdmY19nZXRfY2hhcmFjdGVyX3R5cGVf bGVuIChleHByLT50cy5raW5kLCB0bXAsIGV4cHItPnRzLmRlZmVycmVkKTsKICAgICAgIHRt cCA9IGdmY19jb252X2Rlc2NyaXB0b3JfZHR5cGUgKGRlc2NyaXB0b3IpOwogICAgICAgZ2Zj X2FkZF9tb2RpZnkgKHBibG9jaywgdG1wLCBnZmNfZ2V0X2R0eXBlX3JhbmtfdHlwZSAocmFu aywgdHlwZSkpOwogICAgIH0KQEAgLTEwOTA4LDcgKzEwOTA5LDcgQEAgZ2ZjX2FsbG9jX2Fs bG9jYXRhYmxlX2Zvcl9hc3NpZ25tZW50IChnZmNfbG9vcGluZm8gKmxvb3AsCiAgICAgICBp ZiAoZXhwcjItPnRzLnR5cGUgIT0gQlRfQ0xBU1MpCiAJdHlwZSA9IGdmY190eXBlbm9kZV9m b3Jfc3BlYyAoJmV4cHIyLT50cyk7CiAgICAgICBlbHNlCi0JdHlwZSA9IGdmY19nZXRfY2hh cmFjdGVyX3R5cGVfbGVuICgxLCBlbGVtc2l6ZTIpOworCXR5cGUgPSBnZmNfZ2V0X2NoYXJh Y3Rlcl90eXBlX2xlbiAoMSwgZWxlbXNpemUyLCB0cnVlKTsKIAogICAgICAgZ2ZjX2FkZF9t b2RpZnkgKCZmYmxvY2ssIHRtcCwKIAkJICAgICAgZ2ZjX2dldF9kdHlwZV9yYW5rX3R5cGUg KGV4cHIyLT5yYW5rLHR5cGUpKTsKZGlmZiAtLWdpdCBhL2djYy9mb3J0cmFuL3RyYW5zLWV4 cHIuY2MgYi9nY2MvZm9ydHJhbi90cmFucy1leHByLmNjCmluZGV4IGU4NWI1M2ZhZTg1Li41 MGY4MWVhODg4MSAxMDA2NDQKLS0tIGEvZ2NjL2ZvcnRyYW4vdHJhbnMtZXhwci5jYworKysg Yi9nY2MvZm9ydHJhbi90cmFucy1leHByLmNjCkBAIC0yNTg5LDcgKzI1ODksNyBAQCBnZmNf Y29udl9zdWJzdHJpbmcgKGdmY19zZSAqIHNlLCBnZmNfcmVmICogcmVmLCBpbnQga2luZCwK ICAgY2hhciAqbXNnOwogICBtcHpfdCBsZW5ndGg7CiAKLSAgdHlwZSA9IGdmY19nZXRfY2hh cmFjdGVyX3R5cGUgKGtpbmQsIHJlZi0+dS5zcy5sZW5ndGgpOworICB0eXBlID0gZ2ZjX2dl dF9jaGFyYWN0ZXJfdHlwZSAoa2luZCwgcmVmLT51LnNzLmxlbmd0aCwgZmFsc2UpOwogICB0 eXBlID0gYnVpbGRfcG9pbnRlcl90eXBlICh0eXBlKTsKIAogICBnZmNfaW5pdF9zZSAoJnN0 YXJ0LCBzZSk7CkBAIC0zNzA5LDcgKzM3MDksNyBAQCBnZmNfY29udl9jb25jYXRfb3AgKGdm Y19zZSAqIHNlLCBnZmNfZXhwciAqIGV4cHIpCiAgIGdmY19hZGRfYmxvY2tfdG9fYmxvY2sg KCZzZS0+cHJlLCAmbHNlLnByZSk7CiAgIGdmY19hZGRfYmxvY2tfdG9fYmxvY2sgKCZzZS0+ cHJlLCAmcnNlLnByZSk7CiAKLSAgdHlwZSA9IGdmY19nZXRfY2hhcmFjdGVyX3R5cGUgKGV4 cHItPnRzLmtpbmQsIGV4cHItPnRzLnUuY2wpOworICB0eXBlID0gZ2ZjX2dldF9jaGFyYWN0 ZXJfdHlwZSAoZXhwci0+dHMua2luZCwgZXhwci0+dHMudS5jbCwgZmFsc2UpOwogICBsZW4g PSBUWVBFX01BWF9WQUxVRSAoVFlQRV9ET01BSU4gKHR5cGUpKTsKICAgaWYgKGxlbiA9PSBO VUxMX1RSRUUpCiAgICAgewpAQCAtNDQ3NCw3ICs0NDc0LDcgQEAgZ2ZjX2FkZF9pbnRlcmZh Y2VfbWFwcGluZyAoZ2ZjX2ludGVyZmFjZV9tYXBwaW5nICogbWFwcGluZywKICAgICAgY29u dmVydCBpdCB0byBhIGJvdW5kbGVzcyBjaGFyYWN0ZXIgdHlwZS4gICovCiAgIGVsc2UgaWYg KCFzeW0tPmF0dHIuZGltZW5zaW9uICYmIHN5bS0+dHMudHlwZSA9PSBCVF9DSEFSQUNURVIp CiAgICAgewotICAgICAgdG1wID0gZ2ZjX2dldF9jaGFyYWN0ZXJfdHlwZV9sZW4gKHN5bS0+ dHMua2luZCwgTlVMTCk7CisgICAgICB0bXAgPSBnZmNfZ2V0X2NoYXJhY3Rlcl90eXBlX2xl biAoc3ltLT50cy5raW5kLCBOVUxMLCBzeW0tPnRzLmRlZmVycmVkKTsKICAgICAgIHRtcCA9 IGJ1aWxkX3BvaW50ZXJfdHlwZSAodG1wKTsKICAgICAgIGlmIChzeW0tPmF0dHIucG9pbnRl cikKICAgICAgICAgdmFsdWUgPSBidWlsZF9mb2xkX2luZGlyZWN0X3JlZl9sb2MgKGlucHV0 X2xvY2F0aW9uLApAQCAtNzYxNCw3ICs3NjE0LDcgQEAgZ2ZjX2NvbnZfcHJvY2VkdXJlX2Nh bGwgKGdmY19zZSAqIHNlLCBnZmNfc3ltYm9sICogc3ltLAogICAgICAgZWxzZSBpZiAodHMu dHlwZSA9PSBCVF9DSEFSQUNURVIpCiAJewogCSAgLyogUGFzcyB0aGUgc3RyaW5nIGxlbmd0 aC4gICovCi0JICB0eXBlID0gZ2ZjX2dldF9jaGFyYWN0ZXJfdHlwZSAodHMua2luZCwgdHMu dS5jbCk7CisJICB0eXBlID0gZ2ZjX2dldF9jaGFyYWN0ZXJfdHlwZSAodHMua2luZCwgdHMu dS5jbCwgZmFsc2UpOwogCSAgdHlwZSA9IGJ1aWxkX3BvaW50ZXJfdHlwZSAodHlwZSk7CiAK IAkgIC8qIEVtaXQgYSBERUNMX0VYUFIgZm9yIHRoZSBWTEEgdHlwZS4gICovCkBAIC04MjQw LDcgKzgyNDAsNyBAQCBnZmNfY29udl9zdGF0ZW1lbnRfZnVuY3Rpb24gKGdmY19zZSAqIHNl LCBnZmNfZXhwciAqIGV4cHIpCiAJICAgICBmc3ltLT50cy51LmNsLT5iYWNrZW5kX2RlY2wK IAkJPSBnZmNfY29udl9jb25zdGFudF90b190cmVlIChmc3ltLT50cy51LmNsLT5sZW5ndGgp OwogCi0JICB0eXBlID0gZ2ZjX2dldF9jaGFyYWN0ZXJfdHlwZSAoZnN5bS0+dHMua2luZCwg ZnN5bS0+dHMudS5jbCk7CisJICB0eXBlID0gZ2ZjX2dldF9jaGFyYWN0ZXJfdHlwZSAoZnN5 bS0+dHMua2luZCwgZnN5bS0+dHMudS5jbCwgZmFsc2UpOwogCSAgdGVtcF92YXJzW25dID0g Z2ZjX2NyZWF0ZV92YXIgKHR5cGUsIGZzeW0tPm5hbWUpOwogCiAJICBhcmdsZW4gPSBUWVBF X01BWF9WQUxVRSAoVFlQRV9ET01BSU4gKHR5cGUpKTsKQEAgLTgyODksNyArODI4OSw3IEBA IGdmY19jb252X3N0YXRlbWVudF9mdW5jdGlvbiAoZ2ZjX3NlICogc2UsIGdmY19leHByICog ZXhwcikKIAkgIHx8IHRyZWVfaW50X2NzdF9sdCAoc2UtPnN0cmluZ19sZW5ndGgsCiAJCQkg ICAgICBzeW0tPnRzLnUuY2wtPmJhY2tlbmRfZGVjbCkpCiAJewotCSAgdHlwZSA9IGdmY19n ZXRfY2hhcmFjdGVyX3R5cGUgKHN5bS0+dHMua2luZCwgc3ltLT50cy51LmNsKTsKKwkgIHR5 cGUgPSBnZmNfZ2V0X2NoYXJhY3Rlcl90eXBlIChzeW0tPnRzLmtpbmQsIHN5bS0+dHMudS5j bCwgZmFsc2UpOwogCSAgdG1wID0gZ2ZjX2NyZWF0ZV92YXIgKHR5cGUsIHN5bS0+bmFtZSk7 CiAJICB0bXAgPSBnZmNfYnVpbGRfYWRkcl9leHByIChidWlsZF9wb2ludGVyX3R5cGUgKHR5 cGUpLCB0bXApOwogCSAgZ2ZjX3RyYW5zX3N0cmluZ19jb3B5ICgmc2UtPnByZSwgc3ltLT50 cy51LmNsLT5iYWNrZW5kX2RlY2wsIHRtcCwKQEAgLTEwMzkxLDcgKzEwMzkxLDggQEAgZ2Zj X2NvbnZfc3RyaW5nX3BhcmFtZXRlciAoZ2ZjX3NlICogc2UpCiAJICBpZiAoVFJFRV9DT0RF ICh0eXBlKSA9PSBBUlJBWV9UWVBFKQogCSAgICB0eXBlID0gVFJFRV9UWVBFICh0eXBlKTsK IAkgIHR5cGUgPSBnZmNfZ2V0X2NoYXJhY3Rlcl90eXBlX2xlbl9mb3JfZWx0eXBlICh0eXBl LAotCQkJCQkJCXNlLT5zdHJpbmdfbGVuZ3RoKTsKKwkJCQkJCQlzZS0+c3RyaW5nX2xlbmd0 aCwKKwkJCQkJCQlmYWxzZSk7CiAJICB0eXBlID0gYnVpbGRfcG9pbnRlcl90eXBlICh0eXBl KTsKIAkgIHNlLT5leHByID0gZ2ZjX2J1aWxkX2FkZHJfZXhwciAodHlwZSwgc2UtPmV4cHIp OwogCX0KZGlmZiAtLWdpdCBhL2djYy9mb3J0cmFuL3RyYW5zLWludHJpbnNpYy5jYyBiL2dj Yy9mb3J0cmFuL3RyYW5zLWludHJpbnNpYy5jYwppbmRleCAyMWVlYjEyY2E4OS4uYmFiZTMw ODk4YTAgMTAwNjQ0Ci0tLSBhL2djYy9mb3J0cmFuL3RyYW5zLWludHJpbnNpYy5jYworKysg Yi9nY2MvZm9ydHJhbi90cmFucy1pbnRyaW5zaWMuY2MKQEAgLTg1NDgsNyArODU0OCw4IEBA IGdmY19jb252X2ludHJpbnNpY190cmFuc2ZlciAoZ2ZjX3NlICogc2UsIGdmY19leHByICog ZXhwcikKICAgICBjYXNlIEJUX0NIQVJBQ1RFUjoKICAgICAgIHRtcCA9IHNpemVfb2Zfc3Ry aW5nX2luX2J5dGVzIChhcmctPmV4cHItPnRzLmtpbmQsIGFyZ3NlLnN0cmluZ19sZW5ndGgp OwogICAgICAgbW9sZF90eXBlID0gZ2ZjX2dldF9jaGFyYWN0ZXJfdHlwZV9sZW4gKGFyZy0+ ZXhwci0+dHMua2luZCwKLQkJCQkJICAgICAgYXJnc2Uuc3RyaW5nX2xlbmd0aCk7CisJCQkJ CSAgICAgIGFyZ3NlLnN0cmluZ19sZW5ndGgsCisJCQkJCSAgICAgIGFyZy0+ZXhwci0+dHMu ZGVmZXJyZWQpOwogICAgICAgYnJlYWs7CiAgICAgY2FzZSBCVF9DTEFTUzoKICAgICAgIHRt cCA9IGdmY19jbGFzc192dGFiX3NpemVfZ2V0IChhcmdzZS5leHByKTsKQEAgLTkzMjUsNyAr OTMyNiw3IEBAIGdmY19jb252X2ludHJpbnNpY19yZXBlYXQgKGdmY19zZSAqIHNlLCBnZmNf ZXhwciAqIGV4cHIpCiAgIGRsZW4gPSBmb2xkX2J1aWxkMl9sb2MgKGlucHV0X2xvY2F0aW9u LCBNVUxUX0VYUFIsIGdmY19jaGFybGVuX3R5cGVfbm9kZSwKIAkJCSAgZm9sZF9jb252ZXJ0 IChnZmNfY2hhcmxlbl90eXBlX25vZGUsIHNsZW4pLAogCQkJICBmb2xkX2NvbnZlcnQgKGdm Y19jaGFybGVuX3R5cGVfbm9kZSwgbmNvcGllcykpOwotICB0eXBlID0gZ2ZjX2dldF9jaGFy YWN0ZXJfdHlwZSAoZXhwci0+dHMua2luZCwgZXhwci0+dHMudS5jbCk7CisgIHR5cGUgPSBn ZmNfZ2V0X2NoYXJhY3Rlcl90eXBlIChleHByLT50cy5raW5kLCBleHByLT50cy51LmNsLCBm YWxzZSk7CiAgIGRlc3QgPSBnZmNfY29udl9zdHJpbmdfdG1wIChzZSwgYnVpbGRfcG9pbnRl cl90eXBlICh0eXBlKSwgZGxlbik7CiAKICAgLyogR2VuZXJhdGUgdGhlIGNvZGUgdG8gZG8g dGhlIHJlcGVhdCBvcGVyYXRpb246CmRpZmYgLS1naXQgYS9nY2MvZm9ydHJhbi90cmFucy1z dG10LmNjIGIvZ2NjL2ZvcnRyYW4vdHJhbnMtc3RtdC5jYwppbmRleCAyYjQyNzhiZTc0OC4u OWExY2FmNTZiY2IgMTAwNjQ0Ci0tLSBhL2djYy9mb3J0cmFuL3RyYW5zLXN0bXQuY2MKKysr IGIvZ2NjL2ZvcnRyYW4vdHJhbnMtc3RtdC5jYwpAQCAtMzg5NSw3ICszODk1LDcgQEAgZm9y YWxsX21ha2VfdmFyaWFibGVfdGVtcCAoZ2ZjX2NvZGUgKmMsIHN0bXRibG9ja190ICpwcmUs IHN0bXRibG9ja190ICpwb3N0KQogCXsKIAkgIHRzZS5zdHJpbmdfbGVuZ3RoID0gcnNlLnN0 cmluZ19sZW5ndGg7CiAJICB0bXAgPSBnZmNfZ2V0X2NoYXJhY3Rlcl90eXBlX2xlbiAoZ2Zj X2RlZmF1bHRfY2hhcmFjdGVyX2tpbmQsCi0JCQkJCSAgICB0c2Uuc3RyaW5nX2xlbmd0aCk7 CisJCQkJCSAgICB0c2Uuc3RyaW5nX2xlbmd0aCwgZS0+dHMuZGVmZXJyZWQpOwogCSAgdHNl LmV4cHIgPSBnZmNfY29udl9zdHJpbmdfdG1wICgmdHNlLCBidWlsZF9wb2ludGVyX3R5cGUg KHRtcCksCiAJCQkJCSAgcnNlLnN0cmluZ19sZW5ndGgpOwogCSAgZ2ZjX2FkZF9ibG9ja190 b19ibG9jayAocHJlLCAmdHNlLnByZSk7CkBAIC00Njc2LDcgKzQ2NzYsNyBAQCBnZmNfdHJh bnNfYXNzaWduX25lZWRfdGVtcCAoZ2ZjX2V4cHIgKiBleHByMSwgZ2ZjX2V4cHIgKiBleHBy MiwKIAkgIGdmY19pbml0X3NlICgmc3NzZSwgTlVMTCk7CiAJICBnZmNfY29udl9leHByICgm c3NzZSwgZXhwcjEpOwogCSAgdHlwZSA9IGdmY19nZXRfY2hhcmFjdGVyX3R5cGVfbGVuIChn ZmNfZGVmYXVsdF9jaGFyYWN0ZXJfa2luZCwKLQkJCQkJICAgICBzc3NlLnN0cmluZ19sZW5n dGgpOworCQkJCQkgICAgIHNzc2Uuc3RyaW5nX2xlbmd0aCwgZmFsc2UpOwogCX0KICAgICAg IGVsc2UKIAl7CkBAIC00Njg5LDcgKzQ2ODksOCBAQCBnZmNfdHJhbnNfYXNzaWduX25lZWRf dGVtcCAoZ2ZjX2V4cHIgKiBleHByMSwgZ2ZjX2V4cHIgKiBleHByMiwKIAkgICAgICBleHBy MS0+dHMudS5jbC0+YmFja2VuZF9kZWNsID0gdHNlLmV4cHI7CiAJICAgIH0KIAkgIHR5cGUg PSBnZmNfZ2V0X2NoYXJhY3Rlcl90eXBlX2xlbiAoZ2ZjX2RlZmF1bHRfY2hhcmFjdGVyX2tp bmQsCi0JCQkJCSAgICAgZXhwcjEtPnRzLnUuY2wtPmJhY2tlbmRfZGVjbCk7CisJCQkJCSAg ICAgZXhwcjEtPnRzLnUuY2wtPmJhY2tlbmRfZGVjbCwKKwkJCQkJICAgICBmYWxzZSk7CiAJ fQogICAgIH0KICAgZWxzZQpkaWZmIC0tZ2l0IGEvZ2NjL2ZvcnRyYW4vdHJhbnMtdHlwZXMu Y2MgYi9nY2MvZm9ydHJhbi90cmFucy10eXBlcy5jYwppbmRleCA5Yzk0ODlhNDJiZC4uYTdl NTEyYTI2Y2MgMTAwNjQ0Ci0tLSBhL2djYy9mb3J0cmFuL3RyYW5zLXR5cGVzLmNjCisrKyBi L2djYy9mb3J0cmFuL3RyYW5zLXR5cGVzLmNjCkBAIC0xMTEyLDMyICsxMTEyLDU4IEBAIGdm Y19nZXRfcGNoYXJfdHlwZSAoaW50IGtpbmQpCiB9CiAKIAwKLS8qIENyZWF0ZSBhIGNoYXJh Y3RlciB0eXBlIHdpdGggdGhlIGdpdmVuIGtpbmQgYW5kIGxlbmd0aC4gICovCisvKiBDcmVh dGUgYSBjaGFyYWN0ZXIgdHlwZSB3aXRoIHRoZSBnaXZlbiBraW5kIGFuZCBsZW5ndGg7ICdk ZWZlcnJlZCcgYWZmZWN0cworICAgdGhlIGZvbGxvd2luZzogSWYgJ2xlbicgaXMgYSB2YXJp YWJsZS9ub24tY29uc3RhbnQgZXhwcmVzc2lvbiwgaXQgY2FuIGJlCisgICBlaXRoZXIgZm9y CisKKyAgICogYSBzdGFjay1hbGxvY2F0ZWQgdmFyaWFibGUgd2hlcmUgdGhlIGxlbmd0aCBp cyB0YWtlbiBmcm9tIHRoZSBvdXRzaWRlCisgICAoJ1ZMQScpIChnbG9iYWwgdmFyaWFibGUs IGR1bW15IGFyZ3VtZW50LCB2YXJpYWJsZSBmcm9tIGJlZm9yZSBhIEJMT0NLKSAtIGluCisg ICB0aGlzIGNhc2UsIHRoZSB2YWx1ZSBvbiBlbnRyeSBuZWVkcyB0byBiZSBwcmVzZXJ2ZWQg LT4gU0FWRV9FWFBSLgorCisgICAqIG9yLCAnbGVuJyBpcyB0aGUgaGlkZGVuIHZhcmlhYmxl IG9mIGEgZGVmZXJyZWQtbGVuZ3RoICgnbGVuPTonKSB2YXJpYWJsZSwKKyAgIHN1Y2ggdGhh dCB0aGUgY3VycmVudCB2YWx1ZSBhZnRlciB0aGUgbGFzdCBwb2ludGVyLWFzc2lnbm1lbnQg b3IgYWxsb2NhdGlvbgorICAgbXVzdCBiZSB1c2VkLiBJbiB0aGlzIGNhc2UsIHRoZXJlIHNo YWxsIG5vdCBiZSBhIFNBVkVfRVhQUi4gICovCiAKIHRyZWUKLWdmY19nZXRfY2hhcmFjdGVy X3R5cGVfbGVuX2Zvcl9lbHR5cGUgKHRyZWUgZWx0eXBlLCB0cmVlIGxlbikKK2dmY19nZXRf Y2hhcmFjdGVyX3R5cGVfbGVuX2Zvcl9lbHR5cGUgKHRyZWUgZWx0eXBlLCB0cmVlIGxlbiwg Ym9vbCBkZWZlcnJlZCkKIHsKICAgdHJlZSBib3VuZHMsIHR5cGU7CiAKICAgYm91bmRzID0g YnVpbGRfcmFuZ2VfdHlwZSAoZ2ZjX2NoYXJsZW5fdHlwZV9ub2RlLCBnZmNfaW5kZXhfb25l X25vZGUsIGxlbik7CiAgIHR5cGUgPSBidWlsZF9hcnJheV90eXBlIChlbHR5cGUsIGJvdW5k cyk7CiAgIFRZUEVfU1RSSU5HX0ZMQUcgKHR5cGUpID0gMTsKLQorICBpZiAobGVuICYmIGRl ZmVycmVkICYmIFRSRUVfQ09ERSAoVFlQRV9TSVpFICh0eXBlKSkgPT0gU0FWRV9FWFBSKQor ICAgIHsKKyAgICAgIC8qIFRPRE86IEEgbW9yZSBtaWRkbGUtZW5kIGZyaWVuZGx5IGFsdGVy bmF0aXZlIHdvdWxkIGJlIHRvIHVzZSBOVUxMX1RSRUUKKwkgYXMgdXBwZXIgYm91bmQgYW5k IHN0b3JlIHRoZSB2YWx1ZSwgZS5nLiBhcyBHRkNfREVDTF9TVFJJTkdfTEVOLgorCSBDYXZl YXQ6IHRoaXMgcmVxdWlyZXMgc29tZSBjbGVhbnVwIHRocm91Z2hvdXQgdGhlIGNvZGUgdG8g Y29uc2lzdGVudGx5CisJIHVzZSBzb21lIHdyYXBwZXIgZnVuY3Rpb24uICAqLworICAgICAg Z2NjX2Fzc2VydCAoVFJFRV9DT0RFIChUWVBFX1NJWkVfVU5JVCAodHlwZSkpID09IFNBVkVf RVhQUik7CisgICAgICB0cmVlIHRtcCA9IFRSRUVfVFlQRSAoVFlQRV9TSVpFIChlbHR5cGUp KTsKKyAgICAgIFRZUEVfU0laRSAodHlwZSkgPSBmb2xkX2J1aWxkMl9sb2MgKGlucHV0X2xv Y2F0aW9uLCBNVUxUX0VYUFIsIHRtcCwKKwkJCQkJICBUWVBFX1NJWkUgKGVsdHlwZSksCisJ CQkJCSAgZm9sZF9jb252ZXJ0ICh0bXAsIGxlbikpOworICAgICAgdG1wID0gVFJFRV9UWVBF IChUWVBFX1NJWkVfVU5JVCAoZWx0eXBlKSk7CisgICAgICBUWVBFX1NJWkVfVU5JVCAodHlw ZSkgPSBmb2xkX2J1aWxkMl9sb2MgKGlucHV0X2xvY2F0aW9uLCBNVUxUX0VYUFIsIHRtcCwK KwkJCQkJICAgICAgIFRZUEVfU0laRV9VTklUIChlbHR5cGUpLAorCQkJCQkgICAgICAgZm9s ZF9jb252ZXJ0ICh0bXAsIGxlbikpOworICAgIH0KICAgcmV0dXJuIHR5cGU7CiB9CiAKIHRy ZWUKLWdmY19nZXRfY2hhcmFjdGVyX3R5cGVfbGVuIChpbnQga2luZCwgdHJlZSBsZW4pCitn ZmNfZ2V0X2NoYXJhY3Rlcl90eXBlX2xlbiAoaW50IGtpbmQsIHRyZWUgbGVuLCBib29sIGRl ZmVycmVkKQogewogICBnZmNfdmFsaWRhdGVfa2luZCAoQlRfQ0hBUkFDVEVSLCBraW5kLCBm YWxzZSk7Ci0gIHJldHVybiBnZmNfZ2V0X2NoYXJhY3Rlcl90eXBlX2xlbl9mb3JfZWx0eXBl IChnZmNfZ2V0X2NoYXJfdHlwZSAoa2luZCksIGxlbik7CisgIHJldHVybiBnZmNfZ2V0X2No YXJhY3Rlcl90eXBlX2xlbl9mb3JfZWx0eXBlIChnZmNfZ2V0X2NoYXJfdHlwZSAoa2luZCks IGxlbiwKKwkJCQkJCWRlZmVycmVkKTsKIH0KIAogCiAvKiBHZXQgYSB0eXBlIG5vZGUgZm9y IGEgY2hhcmFjdGVyIGtpbmQuICAqLwogCiB0cmVlCi1nZmNfZ2V0X2NoYXJhY3Rlcl90eXBl IChpbnQga2luZCwgZ2ZjX2NoYXJsZW4gKiBjbCkKK2dmY19nZXRfY2hhcmFjdGVyX3R5cGUg KGludCBraW5kLCBnZmNfY2hhcmxlbiAqIGNsLCBib29sIGRlZmVycmVkKQogewogICB0cmVl IGxlbjsKIApAQCAtMTE0NSw3ICsxMTcxLDcgQEAgZ2ZjX2dldF9jaGFyYWN0ZXJfdHlwZSAo aW50IGtpbmQsIGdmY19jaGFybGVuICogY2wpCiAgIGlmIChsZW4gJiYgUE9JTlRFUl9UWVBF X1AgKFRSRUVfVFlQRSAobGVuKSkpCiAgICAgbGVuID0gYnVpbGRfZm9sZF9pbmRpcmVjdF9y ZWYgKGxlbik7CiAKLSAgcmV0dXJuIGdmY19nZXRfY2hhcmFjdGVyX3R5cGVfbGVuIChraW5k LCBsZW4pOworICByZXR1cm4gZ2ZjX2dldF9jaGFyYWN0ZXJfdHlwZV9sZW4gKGtpbmQsIGxl biwgZGVmZXJyZWQpOwogfQogDAogLyogQ29udmVydCBhIGJhc2ljIHR5cGUuICBUaGlzIHdp bGwgYmUgYW4gYXJyYXkgZm9yIGNoYXJhY3RlciB0eXBlcy4gICovCkBAIC0xMTg5LDEzICsx MjE1LDE0IEBAIGdmY190eXBlbm9kZV9mb3Jfc3BlYyAoZ2ZjX3R5cGVzcGVjICogc3BlYywg aW50IGNvZGltKQogICAgICAgYnJlYWs7CiAKICAgICBjYXNlIEJUX0NIQVJBQ1RFUjoKLSAg ICAgIGJhc2V0eXBlID0gZ2ZjX2dldF9jaGFyYWN0ZXJfdHlwZSAoc3BlYy0+a2luZCwgc3Bl Yy0+dS5jbCk7CisgICAgICBiYXNldHlwZSA9IGdmY19nZXRfY2hhcmFjdGVyX3R5cGUgKHNw ZWMtPmtpbmQsIHNwZWMtPnUuY2wsCisJCQkJCSBzcGVjLT5kZWZlcnJlZCk7CiAgICAgICBi cmVhazsKIAogICAgIGNhc2UgQlRfSE9MTEVSSVRIOgogICAgICAgLyogU2luY2UgdGhpcyBj YW5ub3QgYmUgdXNlZCwgcmV0dXJuIGEgbGVuZ3RoIG9uZSBjaGFyYWN0ZXIuICAqLwogICAg ICAgYmFzZXR5cGUgPSBnZmNfZ2V0X2NoYXJhY3Rlcl90eXBlX2xlbiAoZ2ZjX2RlZmF1bHRf Y2hhcmFjdGVyX2tpbmQsCi0JCQkJCSAgICAgZ2ZjX2luZGV4X29uZV9ub2RlKTsKKwkJCQkJ ICAgICBnZmNfaW5kZXhfb25lX25vZGUsIGZhbHNlKTsKICAgICAgIGJyZWFrOwogCiAgICAg Y2FzZSBCVF9VTklPTjoKZGlmZiAtLWdpdCBhL2djYy9mb3J0cmFuL3RyYW5zLXR5cGVzLmgg Yi9nY2MvZm9ydHJhbi90cmFucy10eXBlcy5oCmluZGV4IDJkYzY5MjMyNWNmLi5iMmEwMzc1 ZGRmYSAxMDA2NDQKLS0tIGEvZ2NjL2ZvcnRyYW4vdHJhbnMtdHlwZXMuaAorKysgYi9nY2Mv Zm9ydHJhbi90cmFucy10eXBlcy5oCkBAIC04MSw5ICs4MSw5IEBAIHRyZWUgZ2ZjX2dldF9j b21wbGV4X3R5cGUgKGludCk7CiB0cmVlIGdmY19nZXRfbG9naWNhbF90eXBlIChpbnQpOwog dHJlZSBnZmNfZ2V0X2NoYXJfdHlwZSAoaW50KTsKIHRyZWUgZ2ZjX2dldF9wY2hhcl90eXBl IChpbnQpOwotdHJlZSBnZmNfZ2V0X2NoYXJhY3Rlcl90eXBlIChpbnQsIGdmY19jaGFybGVu ICopOwotdHJlZSBnZmNfZ2V0X2NoYXJhY3Rlcl90eXBlX2xlbiAoaW50LCB0cmVlKTsKLXRy ZWUgZ2ZjX2dldF9jaGFyYWN0ZXJfdHlwZV9sZW5fZm9yX2VsdHlwZSAodHJlZSwgdHJlZSk7 Cit0cmVlIGdmY19nZXRfY2hhcmFjdGVyX3R5cGUgKGludCwgZ2ZjX2NoYXJsZW4gKiwgYm9v bCk7Cit0cmVlIGdmY19nZXRfY2hhcmFjdGVyX3R5cGVfbGVuIChpbnQsIHRyZWUsIGJvb2wp OwordHJlZSBnZmNfZ2V0X2NoYXJhY3Rlcl90eXBlX2xlbl9mb3JfZWx0eXBlICh0cmVlLCB0 cmVlLCBib29sKTsKIAogdHJlZSBnZmNfc3ltX3R5cGUgKGdmY19zeW1ib2wgKiwgYm9vbCBp c19iaW5kX2NfYXJnID0gZmFsc2UpOwogdHJlZSBnZmNfZ2V0X2NmaV90eXBlIChpbnQgZGlt ZW4sIGJvb2wgcmVzdHJpY3RlZCk7Cg== --------------6frTCDzTtadf006R1C2fuvYi--