From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mout.gmx.net (mout.gmx.net [212.227.17.22]) by sourceware.org (Postfix) with ESMTPS id C521C3858D39; Mon, 7 Nov 2022 21:45:50 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org C521C3858D39 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=gmx.de Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=gmx.de DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.de; s=s31663417; t=1667857548; bh=5giVjYwRDRlKp6rz+sup0clOqOkOyxjB9qQgDUChVLQ=; h=X-UI-Sender-Class:Date:Subject:To:Cc:References:From:In-Reply-To; b=AKNKx96X5mjCwC1kWuE207PherxMhhDfUQ1gqod3T4KXA6cBL06GjGAnOCBve4Hxp bVj4lad1zpKpd3brNc1Mdt5gsx5D77xeLfZiV9DARIYyJQzy9NabVp4z0KbV7guwld /9VaMUv+dh92iRBufFXyY/4ekOiWHGzFcqrMxclTs2xItEW/kDrFP94xM24nvTaCC6 5GgWIXIv0VBWHJ6K7reZt0fibACTx9O9hzFJjtqcdJvIFX15ha2ZmbOwDkKGQUkPp2 8DPgSz0QRwNpm0d6iCM1DF3erGzr2sq3tCfWl9jfQdf/gj4s1gwRpOH+mAu1mpEj8C iksNCjDY4u9eg== X-UI-Sender-Class: 724b4f7f-cbec-4199-ad4e-598c01a50d3a Received: from [192.168.178.29] ([93.207.86.30]) by mail.gmx.net (mrgmx104 [212.227.17.168]) with ESMTPSA (Nemesis) id 1MyKDU-1pD62K0c16-00ylPE; Mon, 07 Nov 2022 22:45:48 +0100 Content-Type: multipart/mixed; boundary="------------lYRSjnU3cb0XIZnQCQs3ZfoW" Message-ID: <24c6acfa-6745-c7a3-4bbd-54bd0fa31454@gmx.de> Date: Mon, 7 Nov 2022 22:45:47 +0100 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.4.0 Subject: [PATCH, v3] Fortran: ordering of hidden procedure arguments [PR107441] To: Mikael Morin , fortran@gcc.gnu.org Cc: gcc-patches@gcc.gnu.org Newsgroups: gmane.comp.gcc.fortran,gmane.comp.gcc.patches References: <7d8ddf07-e66d-2678-de99-0e575c70ea17@orange.fr> <327319ac-4ef9-1e48-e993-57113d802d3b@orange.fr> <85a5951a-7ea4-57b3-895a-ff7dbf1ef92e@orange.fr> <93a5f029-4411-3424-f6ee-3b2bcf210050@gmx.de> <8725411a-979b-dd53-d1fe-5b041482a8eb@gmx.de> <91afe6ef-e5f4-d3d8-ad15-3271fd4e61cd@orange.fr> <3ca46ea0-ee6a-cbc6-d3af-99b8db698307@orange.fr> Content-Language: en-US From: Harald Anlauf In-Reply-To: <3ca46ea0-ee6a-cbc6-d3af-99b8db698307@orange.fr> X-Provags-ID: V03:K1:p5aJn3GGsntBS2hICb+JlB4b9JWwh+vWS/Hpz49f5Y27hTI2UL9 asolO3WzxessrwNxGoCZzpyEJIGCh3m3ASDyC7ghhsvpXulvgbl1jbTtNsBUzhA7FFtSLC4 SIWuOHGtKqoH7tnJ+3T4vTpdtyFavM+KOABKukIa1RjXeSlSQ3tC04gc7vV6mJWVj7h84mM h+0hNoVUFANyaZWWy0iHg== UI-OutboundReport: notjunk:1;M01:P0:NrotoX2eAPQ=;1Qx/0X0M9sNwo+9ye99Zoi3yXXN DH9/7eVbMB63HzMLc28TqkUm53jesOCpIHEmvp/1tiNYTgRjpA4WgqyBn8ubuBL3SlECLlHLW 0MLXwaaCwFJ2DoMyScJkvC/OegNVoYv4r3XEArFxFqutBkQQqsRJShzhGFbZTLx4o/y/MWQfa bUB7Tl4+wWSIwQqy/v5eq0M5GWHL3fFc1luhIeEL1dDaIL9fwsDlAEY1G9NbV6gRSYYtypFQl qxU80aXOzcBlZeB+yKBGpkTr15/5/GkOKshiYA8gdV8eKUNqOVu/QIOreczMHdLgeeuI4rosA 0/KJCvPje5ckoG/N+Aw9MGgqJ1crOEfA7PVCA2Y7YVo9+nBfLTijUrPTC3YP85C/l32psVnKn WoKjFrN/CBq4Ujasb7CYZpOdoykXIJUoluNa0Jkx/BdB12TOpBIJ13VC/MHbrKi8jJ8S+RZHt /mitdPDhlamB8yPYCrZKRObhP198+M2JrzWLa7eXmQTnL9Qs3+Hx3W9xVTbFuZnbm79jDOw9l fm2ZCLe6QRBEjH8lYRAW8sdXSRH+tCw18cC2faeMeFF7oWivSzvLvHlnuNzFNheCVNREzIA3i +gSN7fQWA54+e7uP4Gz3/9BE4dWFdq/pJoX1OqdB3363uYADlgcnSEDTgnBZX1fqqJVxc3a14 N+NVzeSHUiqV+a25hNKfRpmaj5DNqzjYb7AdcyBHvqq4m9wxB6dmxlTt39/n77PF0I2+M6gTT QZmpKvL8kLUb3cyKd2w3V/mygnOv4GC/RcGN+80sqRj99kJ2koCLtb/ro5vS46UhkUkfpMWsK Wv2PWeaw6O0VrFhmMf49LAvkdkZT9JhNFoCmvCkOdUwjuw2c1Ox+T7XuxTRuvvKmhkCihpqBU llBYAPJOy0lMVjObfUFEaPnJC/I9lX27appzK9wkEDe+oL+HvWUdd/ysZdotdXNnY4HsT0Tig aXg4BrLgVp460/GZaClMoPWYJOA= X-Spam-Status: No, score=-12.6 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM,GIT_PATCH_0,RCVD_IN_DNSWL_LOW,RCVD_IN_MSPIKE_H2,SPF_HELO_NONE,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: This is a multi-part message in MIME format. --------------lYRSjnU3cb0XIZnQCQs3ZfoW Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: quoted-printable Dear all, Am 04.11.22 um 10:53 schrieb Mikael Morin: > Le 03/11/2022 =C3=A0 23:03, Harald Anlauf a =C3=A9crit=C2=A0: >> I've spent some time not only staring at create_function_arglist, >> but trying several variations handling the declared hidden parms, >> and applying the necessary adjustments to gfc_get_function_type. >> (Managing linked trees is not the issue, just understanding them.) >> I've been unable to get the declarations in sync, and would need >> help how to debug the mess I've created.=C2=A0 Dropping my patch for >> the time being. >> > If you want, we can meet on IRC somewhen (tonight?). armed with the new knowledge, I could now understand what (more or less) trivially went wrong with my previous patch. The attached patch remedies that: gfc_get_function_type() now properly separates the types of the hidden parameters so that optional+value comes before string length and caf stuff, while in create_function_arglist we simply need to split the walking over the typelists so that the optional+value stuff, which is basically just booleans, is done separately from the other parts. Looking at the tree-dumps, the function decls now seem to be fine at least for the given testcases. I've adjusted one of the testcases to validate this. Regtests fine on x86_64-pc-linux-gnu. OK for mainline? Thanks, Harald --------------lYRSjnU3cb0XIZnQCQs3ZfoW Content-Type: text/x-patch; charset=UTF-8; name="pr107441-v3.diff" Content-Disposition: attachment; filename="pr107441-v3.diff" Content-Transfer-Encoding: base64 RnJvbSA3YmE0MzNjOWMyMmUyMDY1MzJhOWFiY2FkOGZmMWIyMmQzZjc3YjNhIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBIYXJhbGQgQW5sYXVmIDxhbmxhdWZAZ214LmRlPgpE YXRlOiBGcmksIDI4IE9jdCAyMDIyIDIxOjU4OjA4ICswMjAwClN1YmplY3Q6IFtQQVRDSF0g Rm9ydHJhbjogb3JkZXJpbmcgb2YgaGlkZGVuIHByb2NlZHVyZSBhcmd1bWVudHMgW1BSMTA3 NDQxXQoKVGhlIGdmb3J0cmFuIEFCSSBzcGVjaWZpZXMgdGhlIG9yZGVyIG9mIGdpdmVuIGFu ZCBoaWRkZW4gcHJvY2VkdXJlIGFyZ3VtZW50cywKd2hlcmUgdGhlIGhpZGRlbiBwcmVzZW5j ZSBzdGF0dXMgZmxhZ3Mgb2Ygb3B0aW9uYWwrdmFsdWUgc2NhbGFyIGFyZ3VtZW50cwpzaGFs bCBjb21lIGJlZm9yZSBjaGFyYWN0ZXIgbGVuZ3RoLCBjb2FycmF5IHRva2VuIGFuZCBvZmZz ZXQuCgpnY2MvZm9ydHJhbi9DaGFuZ2VMb2c6CgoJUFIgZm9ydHJhbi8xMDc0NDEKCSogdHJh bnMtZGVjbC5jYyAoY3JlYXRlX2Z1bmN0aW9uX2FyZ2xpc3QpOiBBZGp1c3QgdGhlIG9yZGVy aW5nIG9mCglhdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBoaWRkZW4gcHJvY2VkdXJlIGFyZ3Vt ZW50cyB0byBtYXRjaCB0aGUKCWRvY3VtZW50ZWQgQUJJIGZvciBnZm9ydHJhbi4KCSogdHJh bnMtdHlwZXMuY2MgKGdmY19nZXRfZnVuY3Rpb25fdHlwZSk6IFNlcGFyYXRlIGhpZGRlbiBw YXJhbWV0ZXJzCglzbyB0aGF0IHRoZSBwcmVzZW5jZSBmbGFnIGZvciBvcHRpb25hbCt2YWx1 ZSBhcmd1bWVudHMgY29tZSBiZWZvcmUKCXN0cmluZyBsZW5ndGgsIGNvYXJyYXkgdG9rZW4g YW5kIG9mZnNldCwgYXMgcmVxdWlyZWQuCgpnY2MvdGVzdHN1aXRlL0NoYW5nZUxvZzoKCglQ UiBmb3J0cmFuLzEwNzQ0MQoJKiBnZm9ydHJhbi5kZy9jb2FycmF5L3ByMTA3NDQxLWNhZi5m OTA6IE5ldyB0ZXN0LgoJKiBnZm9ydHJhbi5kZy9vcHRpb25hbF9hYnNlbnRfNi5mOTA6IE5l dyB0ZXN0LgoJKiBnZm9ydHJhbi5kZy9vcHRpb25hbF9hYnNlbnRfNy5mOTA6IE5ldyB0ZXN0 LgotLS0KIGdjYy9mb3J0cmFuL3RyYW5zLWRlY2wuY2MgICAgICAgICAgICAgICAgICAgICB8 IDIzICsrKysrLS0KIGdjYy9mb3J0cmFuL3RyYW5zLXR5cGVzLmNjICAgICAgICAgICAgICAg ICAgICB8IDExICsrKy0KIC4uLi9nZm9ydHJhbi5kZy9jb2FycmF5L3ByMTA3NDQxLWNhZi5m OTAgICAgICB8IDI3ICsrKysrKysrKwogLi4uL2dmb3J0cmFuLmRnL29wdGlvbmFsX2Fic2Vu dF82LmY5MCAgICAgICAgIHwgNjAgKysrKysrKysrKysrKysrKysrKwogLi4uL2dmb3J0cmFu LmRnL29wdGlvbmFsX2Fic2VudF83LmY5MCAgICAgICAgIHwgMzEgKysrKysrKysrKwogNSBm aWxlcyBjaGFuZ2VkLCAxNDUgaW5zZXJ0aW9ucygrKSwgNyBkZWxldGlvbnMoLSkKIGNyZWF0 ZSBtb2RlIDEwMDY0NCBnY2MvdGVzdHN1aXRlL2dmb3J0cmFuLmRnL2NvYXJyYXkvcHIxMDc0 NDEtY2FmLmY5MAogY3JlYXRlIG1vZGUgMTAwNjQ0IGdjYy90ZXN0c3VpdGUvZ2ZvcnRyYW4u ZGcvb3B0aW9uYWxfYWJzZW50XzYuZjkwCiBjcmVhdGUgbW9kZSAxMDA2NDQgZ2NjL3Rlc3Rz dWl0ZS9nZm9ydHJhbi5kZy9vcHRpb25hbF9hYnNlbnRfNy5mOTAKCmRpZmYgLS1naXQgYS9n Y2MvZm9ydHJhbi90cmFucy1kZWNsLmNjIGIvZ2NjL2ZvcnRyYW4vdHJhbnMtZGVjbC5jYwpp bmRleCA2MzUxNWI5MDcyYS4uOTQ5ODhiODY5MGUgMTAwNjQ0Ci0tLSBhL2djYy9mb3J0cmFu L3RyYW5zLWRlY2wuY2MKKysrIGIvZ2NjL2ZvcnRyYW4vdHJhbnMtZGVjbC5jYwpAQCAtMjUw Nyw4ICsyNTA3LDggQEAgY3JlYXRlX2Z1bmN0aW9uX2FyZ2xpc3QgKGdmY19zeW1ib2wgKiBz eW0pCiB7CiAgIHRyZWUgZm5kZWNsOwogICBnZmNfZm9ybWFsX2FyZ2xpc3QgKmY7Ci0gIHRy ZWUgdHlwZWxpc3QsIGhpZGRlbl90eXBlbGlzdDsKLSAgdHJlZSBhcmdsaXN0LCBoaWRkZW5f YXJnbGlzdDsKKyAgdHJlZSB0eXBlbGlzdCwgaGlkZGVuX3R5cGVsaXN0LCBvcHR2YWxfdHlw ZWxpc3Q7CisgIHRyZWUgYXJnbGlzdCwgaGlkZGVuX2FyZ2xpc3QsIG9wdHZhbF9hcmdsaXN0 OwogICB0cmVlIHR5cGU7CiAgIHRyZWUgcGFybTsKIApAQCAtMjUxOCw2ICsyNTE4LDcgQEAg Y3JlYXRlX2Z1bmN0aW9uX2FyZ2xpc3QgKGdmY19zeW1ib2wgKiBzeW0pCiAgICAgIHRoZSBu ZXcgRlVOQ1RJT05fREVDTCBub2RlLiAgKi8KICAgYXJnbGlzdCA9IE5VTExfVFJFRTsKICAg aGlkZGVuX2FyZ2xpc3QgPSBOVUxMX1RSRUU7CisgIG9wdHZhbF9hcmdsaXN0ID0gTlVMTF9U UkVFOwogICB0eXBlbGlzdCA9IFRZUEVfQVJHX1RZUEVTIChUUkVFX1RZUEUgKGZuZGVjbCkp OwogCiAgIGlmIChzeW0tPmF0dHIuZW50cnlfbWFzdGVyKQpAQCAtMjYxOSw2ICsyNjIwLDE1 IEBAIGNyZWF0ZV9mdW5jdGlvbl9hcmdsaXN0IChnZmNfc3ltYm9sICogc3ltKQogICAgIGlm IChmLT5zeW0gIT0gTlVMTCkJLyogSWdub3JlIGFsdGVybmF0ZSByZXR1cm5zLiAgKi8KICAg ICAgIGhpZGRlbl90eXBlbGlzdCA9IFRSRUVfQ0hBSU4gKGhpZGRlbl90eXBlbGlzdCk7CiAK KyAgLyogQWR2YW5jZSBoaWRkZW5fdHlwZWxpc3Qgb3ZlciBvcHRpb25hbCt2YWx1ZSBhcmd1 bWVudCBwcmVzZW5jZSBmbGFncy4gICovCisgIG9wdHZhbF90eXBlbGlzdCA9IGhpZGRlbl90 eXBlbGlzdDsKKyAgZm9yIChmID0gZ2ZjX3N5bV9nZXRfZHVtbXlfYXJncyAoc3ltKTsgZjsg ZiA9IGYtPm5leHQpCisgICAgaWYgKGYtPnN5bSAhPSBOVUxMCisJJiYgZi0+c3ltLT5hdHRy Lm9wdGlvbmFsICYmIGYtPnN5bS0+YXR0ci52YWx1ZQorCSYmICFmLT5zeW0tPmF0dHIuZGlt ZW5zaW9uICYmIGYtPnN5bS0+dHMudHlwZSAhPSBCVF9DTEFTUworCSYmICFnZmNfYnRfc3Ry dWN0IChmLT5zeW0tPnRzLnR5cGUpKQorICAgICAgaGlkZGVuX3R5cGVsaXN0ID0gVFJFRV9D SEFJTiAoaGlkZGVuX3R5cGVsaXN0KTsKKwogICBmb3IgKGYgPSBnZmNfc3ltX2dldF9kdW1t eV9hcmdzIChzeW0pOyBmOyBmID0gZi0+bmV4dCkKICAgICB7CiAgICAgICBjaGFyIG5hbWVb R0ZDX01BWF9TWU1CT0xfTEVOICsgMl07CkBAIC0yNzEyLDE0ICsyNzIyLDE2IEBAIGNyZWF0 ZV9mdW5jdGlvbl9hcmdsaXN0IChnZmNfc3ltYm9sICogc3ltKQogCQkJICAgIFBBUk1fREVD TCwgZ2V0X2lkZW50aWZpZXIgKG5hbWUpLAogCQkJICAgIGJvb2xlYW5fdHlwZV9ub2RlKTsK IAotICAgICAgICAgIGhpZGRlbl9hcmdsaXN0ID0gY2hhaW5vbiAoaGlkZGVuX2FyZ2xpc3Qs IHRtcCk7CisJICBvcHR2YWxfYXJnbGlzdCA9IGNoYWlub24gKG9wdHZhbF9hcmdsaXN0LCB0 bXApOwogICAgICAgICAgIERFQ0xfQ09OVEVYVCAodG1wKSA9IGZuZGVjbDsKICAgICAgICAg ICBERUNMX0FSVElGSUNJQUwgKHRtcCkgPSAxOwogICAgICAgICAgIERFQ0xfQVJHX1RZUEUg KHRtcCkgPSBib29sZWFuX3R5cGVfbm9kZTsKICAgICAgICAgICBUUkVFX1JFQURPTkxZICh0 bXApID0gMTsKICAgICAgICAgICBnZmNfZmluaXNoX2RlY2wgKHRtcCk7CiAKLQkgIGhpZGRl bl90eXBlbGlzdCA9IFRSRUVfQ0hBSU4gKGhpZGRlbl90eXBlbGlzdCk7CisJICAvKiBUaGUg cHJlc2VuY2UgZmxhZyBtdXN0IGJlIGJvb2xlYW4uICAqLworCSAgZ2NjX2Fzc2VydCAoVFJF RV9WQUxVRSAob3B0dmFsX3R5cGVsaXN0KSA9PSBib29sZWFuX3R5cGVfbm9kZSk7CisJICBv cHR2YWxfdHlwZWxpc3QgPSBUUkVFX0NIQUlOIChvcHR2YWxfdHlwZWxpc3QpOwogCX0KIAog ICAgICAgLyogRm9yIG5vbi1jb25zdGFudCBsZW5ndGggYXJyYXkgYXJndW1lbnRzLCBtYWtl IHN1cmUgdGhleSB1c2UKQEAgLTI4NjMsNiArMjg3NSw5IEBAIGNyZWF0ZV9mdW5jdGlvbl9h cmdsaXN0IChnZmNfc3ltYm9sICogc3ltKQogICAgICAgdHlwZWxpc3QgPSBUUkVFX0NIQUlO ICh0eXBlbGlzdCk7CiAgICAgfQogCisgIC8qIEFkZCBoaWRkZW4gcHJlc2VudCBzdGF0dXMg Zm9yIG9wdGlvbmFsK3ZhbHVlIGFyZ3VtZW50cy4gICovCisgIGFyZ2xpc3QgPSBjaGFpbm9u IChhcmdsaXN0LCBvcHR2YWxfYXJnbGlzdCk7CisKICAgLyogQWRkIHRoZSBoaWRkZW4gc3Ry aW5nIGxlbmd0aCBwYXJhbWV0ZXJzLCB1bmxlc3MgdGhlIHByb2NlZHVyZQogICAgICBpcyBi aW5kKEMpLiAgKi8KICAgaWYgKCFzeW0tPmF0dHIuaXNfYmluZF9jKQpkaWZmIC0tZ2l0IGEv Z2NjL2ZvcnRyYW4vdHJhbnMtdHlwZXMuY2MgYi9nY2MvZm9ydHJhbi90cmFucy10eXBlcy5j YwppbmRleCBkZWY3NTUyYWM2Ny4uNDI5MDdiZWNkMjcgMTAwNjQ0Ci0tLSBhL2djYy9mb3J0 cmFuL3RyYW5zLXR5cGVzLmNjCisrKyBiL2djYy9mb3J0cmFuL3RyYW5zLXR5cGVzLmNjCkBA IC0zMTA1LDYgKzMxMDUsNyBAQCBnZmNfZ2V0X2Z1bmN0aW9uX3R5cGUgKGdmY19zeW1ib2wg KiBzeW0sIGdmY19hY3R1YWxfYXJnbGlzdCAqYWN0dWFsX2FyZ3MsCiB7CiAgIHRyZWUgdHlw ZTsKICAgdmVjPHRyZWUsIHZhX2djPiAqdHlwZWxpc3QgPSBOVUxMOworICB2ZWM8dHJlZSwg dmFfZ2M+ICpoaWRkZW5fdHlwZWxpc3QgPSBOVUxMOwogICBnZmNfZm9ybWFsX2FyZ2xpc3Qg KmY7CiAgIGdmY19zeW1ib2wgKmFyZzsKICAgaW50IGFsdGVybmF0ZV9yZXR1cm4gPSAwOwpA QCAtMzIyMiw3ICszMjIzLDcgQEAgZ2ZjX2dldF9mdW5jdGlvbl90eXBlIChnZmNfc3ltYm9s ICogc3ltLCBnZmNfYWN0dWFsX2FyZ2xpc3QgKmFjdHVhbF9hcmdzLAogCSAgICAgICBzbyB0 aGF0IHRoZSB2YWx1ZSBjYW4gYmUgcmV0dXJuZWQuICAqLwogCSAgICB0eXBlID0gYnVpbGRf cG9pbnRlcl90eXBlIChnZmNfY2hhcmxlbl90eXBlX25vZGUpOwogCi0JICB2ZWNfc2FmZV9w dXNoICh0eXBlbGlzdCwgdHlwZSk7CisJICB2ZWNfc2FmZV9wdXNoIChoaWRkZW5fdHlwZWxp c3QsIHR5cGUpOwogCX0KICAgICAgIC8qIEZvciBub25jaGFyYWN0ZXIgc2NhbGFyIGludHJp bnNpYyB0eXBlcywgVkFMVUUgcGFzc2VzIHRoZSB2YWx1ZSwKIAkgaGVuY2UsIHRoZSBvcHRp b25hbCBzdGF0dXMgY2Fubm90IGJlIHRyYW5zZmVycmVkIHZpYSBhIE5VTEwgcG9pbnRlci4K QEAgLTMyNDUsMTEgKzMyNDYsMTUgQEAgZ2ZjX2dldF9mdW5jdGlvbl90eXBlIChnZmNfc3lt Ym9sICogc3ltLCBnZmNfYWN0dWFsX2FyZ2xpc3QgKmFjdHVhbF9hcmdzLAogCQkgICYmIENM QVNTX0RBVEEgKGFyZyktPmF0dHIuY29kaW1lbnNpb24KIAkJICAmJiAhQ0xBU1NfREFUQSAo YXJnKS0+YXR0ci5hbGxvY2F0YWJsZSkpKQogCXsKLQkgIHZlY19zYWZlX3B1c2ggKHR5cGVs aXN0LCBwdm9pZF90eXBlX25vZGUpOyAgLyogY2FmX3Rva2VuLiAgKi8KLQkgIHZlY19zYWZl X3B1c2ggKHR5cGVsaXN0LCBnZmNfYXJyYXlfaW5kZXhfdHlwZSk7ICAvKiBjYWZfb2Zmc2V0 LiAgKi8KKwkgIHZlY19zYWZlX3B1c2ggKGhpZGRlbl90eXBlbGlzdCwgcHZvaWRfdHlwZV9u b2RlKTsgIC8qIGNhZl90b2tlbi4gICovCisJICB2ZWNfc2FmZV9wdXNoIChoaWRkZW5fdHlw ZWxpc3QsIGdmY19hcnJheV9pbmRleF90eXBlKTsgIC8qIGNhZl9vZmZzZXQuICAqLwogCX0K ICAgICB9CiAKKyAgLyogUHV0IGhpZGRlbiBjaGFyYWN0ZXIgbGVuZ3RoLCBjYWZfdG9rZW4s IGNhZl9vZmZzZXQgYXQgdGhlIGVuZC4gICovCisgIHZlY19zYWZlX3Jlc2VydmUgKHR5cGVs aXN0LCB2ZWNfc2FmZV9sZW5ndGggKGhpZGRlbl90eXBlbGlzdCkpOworICB2ZWNfc2FmZV9z cGxpY2UgKHR5cGVsaXN0LCBoaWRkZW5fdHlwZWxpc3QpOworCiAgIGlmICghdmVjX3NhZmVf aXNfZW1wdHkgKHR5cGVsaXN0KQogICAgICAgfHwgc3ltLT5hdHRyLmlzX21haW5fcHJvZ3Jh bQogICAgICAgfHwgc3ltLT5hdHRyLmlmX3NvdXJjZSAhPSBJRlNSQ19VTktOT1dOKQpkaWZm IC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nZm9ydHJhbi5kZy9jb2FycmF5L3ByMTA3NDQxLWNh Zi5mOTAgYi9nY2MvdGVzdHN1aXRlL2dmb3J0cmFuLmRnL2NvYXJyYXkvcHIxMDc0NDEtY2Fm LmY5MApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uMjNiMjI0MmUy MTcKLS0tIC9kZXYvbnVsbAorKysgYi9nY2MvdGVzdHN1aXRlL2dmb3J0cmFuLmRnL2NvYXJy YXkvcHIxMDc0NDEtY2FmLmY5MApAQCAtMCwwICsxLDI3IEBACishIHsgZGctZG8gcnVuIH0K KyEKKyEgUFIgZm9ydHJhbi8xMDc0NDEKKyEgQ2hlY2sgdGhhdCB3aXRoIC1mY29hcnJheT1s aWIsIGNvYXJyYXkgbWV0YWRhdGEgYXJndW1lbnRzIGFyZSBwYXNzZWQKKyEgaW4gdGhlIHJp Z2h0IG9yZGVyIHRvIHByb2NlZHVyZXMuCishCishIENvbnRyaWJ1dGVkIGJ5IE0uTW9yaW4K KworcHJvZ3JhbSBwCisgIGludGVnZXIgOjogY2lbKl0KKyAgY2kgPSAxNworICBjYWxsIHMo MSwgY2ksICJhYmNkIikKK2NvbnRhaW5zCisgIHN1YnJvdXRpbmUgcyhyYSwgY2EsIGMpCisg ICAgaW50ZWdlciA6OiByYSwgY2FbKl0KKyAgICBjaGFyYWN0ZXIoKikgOjogYworICAgIGNh WzFdID0gMTMKKyAgICBpZiAocmEgLz0gMSkgc3RvcCAxCisgICAgaWYgKHRoaXNfaW1hZ2Uo KSA9PSAxKSB0aGVuCisgICAgICBpZiAoY2EgLz0gMTMpIHN0b3AgMgorICAgIGVsc2UKKyAg ICAgIGlmIChjYSAvPSAxNykgc3RvcCAzCisgICAgZW5kIGlmCisgICAgaWYgKGxlbihjKSAv PSA0KSBzdG9wIDQKKyAgICBpZiAoYyAvPSAiYWJjZCIpIHN0b3AgNQorICBlbmQgc3Vicm91 dGluZSBzCitlbmQgcHJvZ3JhbSBwCmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2dmb3J0 cmFuLmRnL29wdGlvbmFsX2Fic2VudF82LmY5MCBiL2djYy90ZXN0c3VpdGUvZ2ZvcnRyYW4u ZGcvb3B0aW9uYWxfYWJzZW50XzYuZjkwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw MDAwMDAwMDAwLi5iOGFiYjA2OTgwYQotLS0gL2Rldi9udWxsCisrKyBiL2djYy90ZXN0c3Vp dGUvZ2ZvcnRyYW4uZGcvb3B0aW9uYWxfYWJzZW50XzYuZjkwCkBAIC0wLDAgKzEsNjAgQEAK KyEgeyBkZy1kbyBydW4gfQorISBQUiBmb3J0cmFuLzEwNzQ0MQorIQorISBUZXN0IFZBTFVF ICsgT1BUSU9OQUwgZm9yIGludGVnZXIvcmVhbC8uLi4KKyEgaW4gdGhlIHByZXNlbmNlIG9m IG5vbi1vcHRpb25hbCBjaGFyYWN0ZXIgZHVtbWllcworCitwcm9ncmFtIGJ1Z2RlbW8KKyAg aW1wbGljaXQgbm9uZQorICBjaGFyYWN0ZXIgOjogcyA9ICdhJworICBpbnRlZ2VyICAgOjog dAorCisgIHQgPSB0ZXN0b3B0aW9uYWwocykKKyAgY2FsbCB0ZXN0MiAocykKKyAgY2FsbCB0 ZXN0MyAocykKKyAgY2FsbCB0ZXN0NCAodz0nMTIzJyx4PTQyKQorCitjb250YWlucworCisg IGZ1bmN0aW9uIHRlc3RvcHRpb25hbCAodywgeCkgcmVzdWx0KHQpCisgICAgY2hhcmFjdGVy LCBpbnRlbnQoaW4pICAgICAgICAgICAgICAgICAgOjogdworICAgIGludGVnZXIsICAgaW50 ZW50KGluKSwgdmFsdWUsIG9wdGlvbmFsIDo6IHgKKyAgICBpbnRlZ2VyIDo6IHQKKyAgICBw cmludCAqLCAncHJlc2VudCh4KSBpcycsIHByZXNlbnQoeCkKKyAgICB0ID0gMAorICAgIGlm IChwcmVzZW50ICh4KSkgc3RvcCAxCisgIGVuZCBmdW5jdGlvbiB0ZXN0b3B0aW9uYWwKKwor ICBzdWJyb3V0aW5lIHRlc3QyICh3LCB4KQorICAgIGNoYXJhY3RlciwgaW50ZW50KGluKSAg ICAgICAgICAgICAgICAgIDo6IHcKKyAgICBpbnRlZ2VyLCAgIGludGVudChpbiksIHZhbHVl LCBvcHRpb25hbCA6OiB4CisgICAgcHJpbnQqLCAncHJlc2VudCh4KSBpcycsIHByZXNlbnQo eCkKKyAgICBpZiAocHJlc2VudCAoeCkpIHN0b3AgMgorICBlbmQgc3Vicm91dGluZSB0ZXN0 MgorCisgIHN1YnJvdXRpbmUgdGVzdDMgKHcsIHgpCisgICAgY2hhcmFjdGVyLCBpbnRlbnQo aW4pLCAgICAgICAgb3B0aW9uYWwgOjogdworICAgIGludGVnZXIsICAgaW50ZW50KGluKSwg dmFsdWUsIG9wdGlvbmFsIDo6IHgKKyAgICBwcmludCAqLCAncHJlc2VudCh3KSBpcycsIHBy ZXNlbnQodykKKyAgICBwcmludCAqLCAncHJlc2VudCh4KSBpcycsIHByZXNlbnQoeCkKKyAg ICBpZiAoLm5vdC4gcHJlc2VudCAodykpIHN0b3AgMworICAgIGlmIChwcmVzZW50ICh4KSkg c3RvcCA0CisgIGVuZCBzdWJyb3V0aW5lIHRlc3QzCisKKyAgc3Vicm91dGluZSB0ZXN0NCAo ciwgdywgeCkKKyAgICByZWFsLCAgICAgICAgICAgICAgICAgICAgIHZhbHVlLCBvcHRpb25h bCA6OiByCisgICAgY2hhcmFjdGVyKCopLCBpbnRlbnQoaW4pLCAgICAgICAgb3B0aW9uYWwg OjogdworICAgIGludGVnZXIsICAgICAgICAgICAgICAgICAgdmFsdWUsIG9wdGlvbmFsIDo6 IHgKKyAgICBwcmludCAqLCAncHJlc2VudChyKSBpcycsIHByZXNlbnQocikKKyAgICBwcmlu dCAqLCAncHJlc2VudCh3KSBpcycsIHByZXNlbnQodykKKyAgICBwcmludCAqLCAncHJlc2Vu dCh4KSBpcycsIHByZXNlbnQoeCkKKyAgICBpZiAocHJlc2VudCAocikpIHN0b3AgNQorICAg IGlmICgubm90LiBwcmVzZW50ICh3KSkgc3RvcCA2CisgICAgaWYgKC5ub3QuIHByZXNlbnQg KHgpKSBzdG9wIDcKKyAgICBwcmludCAqLCAneD0nLCB4CisgICAgcHJpbnQgKiwgJ2xlbih3 KT0nLCBsZW4odykKKyAgICBpZiAobGVuKHcpIC89IDMpIHN0b3AgOAorICAgIGlmICh4IC89 IDQyKSBzdG9wIDkKKyAgZW5kIHN1YnJvdXRpbmUgdGVzdDQKKworZW5kIHByb2dyYW0gYnVn ZGVtbwpkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nZm9ydHJhbi5kZy9vcHRpb25hbF9h YnNlbnRfNy5mOTAgYi9nY2MvdGVzdHN1aXRlL2dmb3J0cmFuLmRnL29wdGlvbmFsX2Fic2Vu dF83LmY5MApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uMWJlOTgx Yzg4ZjYKLS0tIC9kZXYvbnVsbAorKysgYi9nY2MvdGVzdHN1aXRlL2dmb3J0cmFuLmRnL29w dGlvbmFsX2Fic2VudF83LmY5MApAQCAtMCwwICsxLDMxIEBACishIHsgZGctZG8gcnVuIH0K KyEgeyBkZy1hZGRpdGlvbmFsLW9wdGlvbnMgIi1mZHVtcC10cmVlLW9yaWdpbmFsIiB9Cish CishIFBSIGZvcnRyYW4vMTA3NDQxCishIENoZWNrIHRoYXQgcHJvY2VkdXJlIHR5cGVzIGFu ZCBwcm9jZWR1cmUgZGVjbHMgbWF0Y2ggd2hlbiB0aGUgcHJvY2VkdXJlCishIGhhcyBib3Ro IGNoYXJhY3Rlci10eXBlZCBhbmQgb3B0aW9uYWwgdmFsdWUgYXJncy4KKyEKKyEgQ29udHJp YnV0ZWQgYnkgTS5Nb3JpbgorCitwcm9ncmFtIHAKKyAgaW50ZXJmYWNlCisgICAgc3Vicm91 dGluZSBpKGMsIG8pCisgICAgICBjaGFyYWN0ZXIoKikgOjogYworICAgICAgaW50ZWdlciwg b3B0aW9uYWwsIHZhbHVlIDo6IG8KKyAgICBlbmQgc3Vicm91dGluZSBpCisgIGVuZCBpbnRl cmZhY2UKKyAgcHJvY2VkdXJlKGkpLCBwb2ludGVyIDo6IHBwCisgIHBwID0+IHMKKyAgY2Fs bCBwcCgiYWJjZCIpCitjb250YWlucworICBzdWJyb3V0aW5lIHMoYywgbykKKyAgICBjaGFy YWN0ZXIoKikgOjogYworICAgIGludGVnZXIsIG9wdGlvbmFsLCB2YWx1ZSA6OiBvCisgICAg aWYgKHByZXNlbnQobykpIHN0b3AgMQorICAgIGlmIChsZW4oYykgLz0gNCkgc3RvcCAyCisg ICAgaWYgKGMgLz0gImFiY2QiKSBzdG9wIDMKKyAgZW5kIHN1YnJvdXRpbmUgcworZW5kIHBy b2dyYW0gcAorCishIHsgZGctZmluYWwgeyBzY2FuLXRyZWUtZHVtcCAidm9pZCBzIC4qIGMs IC4qIG8sIGxvZ2ljYWwuKiBfbywgaW50ZWdlci4qIF9jIiAib3JpZ2luYWwiIH0gfQorISB7 IGRnLWZpbmFsIHsgc2Nhbi10cmVlLWR1bXAgIiwgaW50ZWdlci4qLCBsb2dpY2FsLiosIGlu dGVnZXIuKiBwcCIgIm9yaWdpbmFsIiB9IH0KLS0gCjIuMzUuMwoK --------------lYRSjnU3cb0XIZnQCQs3ZfoW--