From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mout.gmx.net (mout.gmx.net [212.227.15.15]) by sourceware.org (Postfix) with ESMTPS id 8E7523858D39; Tue, 9 Apr 2024 21:23:57 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 8E7523858D39 Authentication-Results: sourceware.org; dmarc=pass (p=quarantine dis=none) header.from=gmx.de Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=gmx.de ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 8E7523858D39 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=212.227.15.15 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1712697840; cv=none; b=ekLq1ncIse/mwYVln6Tzneso19Iv5plN7/bvtHKbUzLHPIITDVClzBv7S03H7FNNwrVOK70b/YlKmSl0JMW88d3DAO/QP2uyI5wpkkI4Nb7KF3ntK/SpUm13O2C3gZWRe+IlKrRIiKTtpzmczQoym+rWwiHEiom+HTNtUu6nibc= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1712697840; c=relaxed/simple; bh=h2A5ZxT/HcuuswjWduSWPmmmWh969fbiT6OBEAucTek=; h=DKIM-Signature:Message-ID:Date:MIME-Version:Subject:To:From; b=n48ZDzpJWbmRWy6FkFX1V+jZEyQt4atLajs4z4iTGZ5shsHCQWfnot5uc5kQD5xf76ZL5SCpPE9LG6tPXz/yq2OtYFOp5LkXUqbLwwVnmN9YxOHvSeclGhVOPwHetyljAGEsTr8gi74jEkBiz9FRf2jFB6hNRqBZ0K31Mix/1aw= ARC-Authentication-Results: i=1; server2.sourceware.org DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmx.de; s=s31663417; t=1712697835; x=1713302635; i=anlauf@gmx.de; bh=95zceCJTRzF4TCS2jt4+mLgcT4P7Z/XhKWILHAM4rE0=; h=X-UI-Sender-Class:Date:Subject:To:Cc:References:From: In-Reply-To; b=MGE19Nis9O/aaZVM3ESXYB5Obg9pv+cAS5mTKeFMTSqb1jGH1kQnQoa69F6Jmq5N DGwmTTAzDjTu9ayGR8SmrJSjFTmUnLxcTkqsv7MeHiQAXAhA/nXSOLUJabkFPpwg4 yCc9NY9kBc41dCegwu8zjqpVwutA2LVgZM2bfD+o28Zvr4WQwi/eQ8yQRJE+IeE7A DhgnoYOadY5gMkDQFJcgMRYt0h1lZbzMzYxJ+mVMgKNX+aMogq4JSpz3xyj6nqWGW xd0212EnvF/G/zszpWXBvh+V31P4PRl193iBiH7Lmoh/mjeXxrmJ0HVBDnNLHkEu1 +V7GURdxIDaFNSJzfg== X-UI-Sender-Class: 724b4f7f-cbec-4199-ad4e-598c01a50d3a Received: from [192.168.178.29] ([79.232.151.151]) by mail.gmx.net (mrgmx005 [212.227.17.190]) with ESMTPSA (Nemesis) id 1Ma24s-1sFDyR2EYG-00W0eI; Tue, 09 Apr 2024 23:23:55 +0200 Content-Type: multipart/mixed; boundary="------------51XqJIXAsSYQLJq2vUircBCj" Message-ID: <2337004b-dfd8-45d1-b349-7c08e17353d9@gmx.de> Date: Tue, 9 Apr 2024 23:23:54 +0200 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: [PATCH, v2] Fortran: fix argument checking of intrinsics C_SIZEOF, C_F_POINTER [PR106500] To: FX Coudert Cc: fortran , gcc-patches Newsgroups: gmane.comp.gcc.patches,gmane.comp.gcc.fortran References: <1BADB9B4-62BF-43FE-845F-545128503616@gmail.com> Content-Language: en-US From: Harald Anlauf In-Reply-To: <1BADB9B4-62BF-43FE-845F-545128503616@gmail.com> X-Provags-ID: V03:K1:yY6fHkTddSMtGL/udTTDHyYCpEvH/+13jZZ+bIL4Msqr3Sw3Fyj /3LqngIgtyrUvpHIamRyekeB4kBTnMP+3IHh7ta2rPp/C678b9kOSdhXM7K9vHtfgzS1m89 fr8xsUMNrXgxWGHarD56WWh5nqMvRgRNj5UZ76mf1DP29wqLNYThYgm+BZDUOxOLAVMeyVi qHd/jGuB5q4I0lgPLP4wg== UI-OutboundReport: notjunk:1;M01:P0:PcxyoPXfPeY=;sGFebRVyp3fABirkZPTzV4EO8Y1 GsqPasp/9UHu1C8VvGajmnjH+jJqWTyhb0eSjv+5ghPlNK5DhU0eE3zN64hmZ1wbj5Wu0C8Fg GGhayPDUdY2Z9utbBS4n9Uoq56xe02f7UxoM9Zuq0o2DGkAQAxE2bfF6CDu0I5joA3gTurBBh 8WNYI26emeyQXjkdDghUwqCS5YAW76YXms/oHevmYxp41tGh5RigHlQNo1hyScCMgeRvDwaYv u05pwUDiljdMQD0pA8ZdNDBPN2lifV/4Ifk4Dw59eoBC6zEQ5xPq03kKzaLbmJU10YIyzM5zk en1YNlJn9QXiHc1USUGpBbhrXlHt7FqdV2c8waxOuh/3EqEwTjrjvHzTBagPb0QWxNj7Djmxy neVly/1UlpScK5h8sP0XujEo6Xb7xjoCbWwiGHTxEb3dmknyJ/+/+JZUbRJmQ7TWpOhVlDOwO BCQPmwLHvRm7krIi8sUeRSQLdjRD7H/gYuL9BG3vReU5lK/Zl3FcFbqSnxBF012eeLP3o0pg8 qLU8P1zQ1R4YblIj2eNT5wyWd5o6gzgsja78jrO97PCSMIOEKyIwvTP2F2xj7XVC2hOcBFXRd pKXd6ncnJaaRyBjCQ7Tb9WMGKPIqAvWxgVBpHx2JDG6VEsgBFanMP32+jgXsUbxNoqaU/TLYa DKTtosvZKls1stxpmZgANevfsE9ps/Kq1dqd8dq1iGQ3MN3/M7MBa0jZHhFzuuJsXa7jm5LKk yAVkRtCEw/tSz9Q+sN4xz4gc0+zpo96AEeBUwlBWTI3aiDGPF8/A5NZM9KbMHdp73a4Y8+Aaq 1C00+Vn8WbXm9WsIdCiwF487/UxKxqrkUvr2MVVvlRt9M= X-Spam-Status: No, score=-12.3 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. --------------51XqJIXAsSYQLJq2vUircBCj Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: quoted-printable Hi FX! On 4/9/24 09:32, FX Coudert wrote: > Hi Harald, > > Thanks for the patch. > > >> + if (attr.function) >> + { >> + gfc_error ("FPTR at %L to C_F_POINTER is a function returning a = pointer", >> + &fptr->where); >> + return false; >> + } >> + >> if (fptr->rank > 0 && !is_c_interoperable (fptr, &msg, false, true)= ) >> return gfc_notify_std (GFC_STD_F2018, "Noninteroperable array FPT= R " >> "at %L to C_F_POINTER: %s", &fptr->where, msg); > > > In both of these gfc_error(), could we change our error message to say "= FPTR argument=E2=80=9D instead of =E2=80=9CFPTR=E2=80=9D? =E2=80=9CFPTR to= C_F_POINTER=E2=80=9D does not really make sense to me. > > This would be more in line with what the generally do: > >> Error: 'x' argument of 'sqrt' intrinsic at (1) must be REAL or COMPLEX > > So maybe =E2=80=9CFPTR argument to C_F_POINTER at %L=E2=80=9D ? That=E2= =80=99s much more readable to me. Good point! I did indeed feel a little uncomfortable with the text and adjusted both messages accordingly to your suggestion. I also forgot to add one update of a pattern, and found a cornercase where the tightening of checks for C_F_POINTER was too strong. Corrected and now covered in an extension of the corresponding testcase. > Otherwise, OK. > > FX Thanks for the review! If there are no further comments, I will commit tomorrow. Thanks, Harald --------------51XqJIXAsSYQLJq2vUircBCj Content-Type: text/x-patch; charset=UTF-8; name="pr106500-v2.diff" Content-Disposition: attachment; filename="pr106500-v2.diff" Content-Transfer-Encoding: base64 RnJvbSA1OTgzYTA3ZjExYzg4ZDkyMDI0MTE0MTczMmZhNzQyNzM1Y2RiOGVhIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBIYXJhbGQgQW5sYXVmIDxhbmxhdWZAZ214LmRlPgpE YXRlOiBUdWUsIDkgQXByIDIwMjQgMjM6MDc6NTkgKzAyMDAKU3ViamVjdDogW1BBVENIXSBG b3J0cmFuOiBmaXggYXJndW1lbnQgY2hlY2tpbmcgb2YgaW50cmluc2ljcyBDX1NJWkVPRiwK IENfRl9QT0lOVEVSIFtQUjEwNjUwMF0KClRoZSBpbnRlcnByZXRhdGlvbiBvZiB0aGUgRjIw MTggc3RhbmRhcmQgcmVnYXJkaW5nIHZhbGlkIGFyZ3VtZW50cyB0byB0aGUKaW50cmluc2lj IENfU0laRU9GKFgpIHdhcyBjbGFyaWZpZWQgaW4gYW4gZWRpdCB0byAxOC0wMDdyMToKCiAg aHR0cHM6Ly9qMy1mb3J0cmFuLm9yZy9kb2MveWVhci8yMi8yMi0xMDFyMS50eHQKCmxvb3Nl bmluZyByZXN0cmljdGlvbnMgYW5kIGdpdmluZyBleGFtcGxlcy4gIFRoZSBGMjAyMyB0ZXh0 IGhhczoKCiEgRjIwMjM6MTguMi4zLjggIENfU0laRU9GIChYKQohCiEgICBYIHNoYWxsIGJl IGEgZGF0YSBlbnRpdHkgd2l0aCBpbnRlcm9wZXJhYmxlIHR5cGUgYW5kIHR5cGUgcGFyYW1l dGVycywKISAgIGFuZCBzaGFsbCBub3QgYmUgYW4gYXNzdW1lZC1zaXplIGFycmF5LCBhbiBh c3N1bWVkLXJhbmsgYXJyYXkgdGhhdAohICAgaXMgYXNzb2NpYXRlZCB3aXRoIGFuIGFzc3Vt ZWQtc2l6ZSBhcnJheSwgYW4gdW5hbGxvY2F0ZWQgYWxsb2NhdGFibGUKISAgIHZhcmlhYmxl LCBvciBhIHBvaW50ZXIgdGhhdCBpcyBub3QgYXNzb2NpYXRlZC4KCndoZXJlCgohIDMuNDEg ZGF0YSBlbnRpdHkKISAgIGRhdGEgb2JqZWN0LCByZXN1bHQgb2YgdGhlIGV2YWx1YXRpb24g b2YgYW4gZXhwcmVzc2lvbiwgb3IgdGhlCiEgICByZXN1bHQgb2YgdGhlIGV4ZWN1dGlvbiBv ZiBhIGZ1bmN0aW9uIHJlZmVyZW5jZQoKVXBkYXRlIHRoZSBjaGVja2luZyBjb2RlIGZvciBp bnRlcm9wZXJhYmxlIGFyZ3VtZW50cyBhY2NvcmRpbmdseSwgYW5kIGV4dGVuZAp0byByZWpl Y3QgZnVuY3Rpb25zIHJldHVybmluZyBwb2ludGVyIGFzIEZQVFIgYXJndW1lbnQgdG8gQ19G X1BPSU5URVIuCgpnY2MvZm9ydHJhbi9DaGFuZ2VMb2c6CgoJUFIgZm9ydHJhbi8xMDY1MDAK CSogY2hlY2suY2MgKGlzX2NfaW50ZXJvcGVyYWJsZSk6IEZpeCBjaGVja3MgZm9yIENfU0la RU9GLgoJKGdmY19jaGVja19jX2ZfcG9pbnRlcik6IFJlamVjdCBmdW5jdGlvbiByZXR1cm5p bmcgYSBwb2ludGVyIGFzIEZQVFIsCglhbmQgaW1wcm92ZSBhbiBlcnJvciBtZXNzYWdlLgoK Z2NjL3Rlc3RzdWl0ZS9DaGFuZ2VMb2c6CgoJUFIgZm9ydHJhbi8xMDY1MDAKCSogZ2ZvcnRy YW4uZGcvY19zaXplb2ZfNi5mOTA6IFJlbW92ZSB3cm9uZyBkZy1lcnJvci4KCSogZ2ZvcnRy YW4uZGcvc2l6ZW9mXzIuZjkwOiBBZGp1c3QgcGF0dGVybi4KCSogZ2ZvcnRyYW4uZGcvY19m X3BvaW50ZXJfdGVzdHNfOS5mOTA6IE5ldyB0ZXN0LgoJKiBnZm9ydHJhbi5kZy9jX3NpemVv Zl83LmY5MDogTmV3IHRlc3QuCi0tLQogZ2NjL2ZvcnRyYW4vY2hlY2suY2MgICAgICAgICAg ICAgICAgICAgICAgICAgIHwgMjYgKysrKysrKy0tLS0tCiAuLi4vZ2ZvcnRyYW4uZGcvY19m X3BvaW50ZXJfdGVzdHNfOS5mOTAgICAgICAgfCAzNyArKysrKysrKysrKysrKysrCiBnY2Mv dGVzdHN1aXRlL2dmb3J0cmFuLmRnL2Nfc2l6ZW9mXzYuZjkwICAgICAgfCAgMiArLQogZ2Nj L3Rlc3RzdWl0ZS9nZm9ydHJhbi5kZy9jX3NpemVvZl83LmY5MCAgICAgIHwgNDIgKysrKysr KysrKysrKysrKysrKwogZ2NjL3Rlc3RzdWl0ZS9nZm9ydHJhbi5kZy9zaXplb2ZfMi5mOTAg ICAgICAgIHwgIDIgKy0KIDUgZmlsZXMgY2hhbmdlZCwgOTYgaW5zZXJ0aW9ucygrKSwgMTMg ZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgZ2NjL3Rlc3RzdWl0ZS9nZm9ydHJh bi5kZy9jX2ZfcG9pbnRlcl90ZXN0c185LmY5MAogY3JlYXRlIG1vZGUgMTAwNjQ0IGdjYy90 ZXN0c3VpdGUvZ2ZvcnRyYW4uZGcvY19zaXplb2ZfNy5mOTAKCmRpZmYgLS1naXQgYS9nY2Mv Zm9ydHJhbi9jaGVjay5jYyBiL2djYy9mb3J0cmFuL2NoZWNrLmNjCmluZGV4IGRiNzRkY2Yz ZjQwLi4yZjUwZDg0Yjg3NiAxMDA2NDQKLS0tIGEvZ2NjL2ZvcnRyYW4vY2hlY2suY2MKKysr IGIvZ2NjL2ZvcnRyYW4vY2hlY2suY2MKQEAgLTUyOTksMTggKzUyOTksMTQgQEAgaXNfY19p bnRlcm9wZXJhYmxlIChnZmNfZXhwciAqZXhwciwgY29uc3QgY2hhciAqKm1zZywgYm9vbCBj X2xvYywgYm9vbCBjX2ZfcHRyKQogICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KIAotICBp ZiAoIWNfbG9jICYmIGV4cHItPnJhbmsgPiAwICYmIGV4cHItPmV4cHJfdHlwZSAhPSBFWFBS X0FSUkFZKQorICAvKiBDaGVja3MgZm9yIENfU0laRU9GIG5lZWQgdG8gdGFrZSBpbnRvIGFj Y291bnQgZWRpdHMgdG8gMTgtMDA3cjEsIHNlZQorICAgICBodHRwczovL2ozLWZvcnRyYW4u b3JnL2RvYy95ZWFyLzIyLzIyLTEwMXIxLnR4dCAuICAqLworICBpZiAoIWNfbG9jICYmICFj X2ZfcHRyICYmIGV4cHItPnJhbmsgPiAwICYmIGV4cHItPmV4cHJfdHlwZSA9PSBFWFBSX1ZB UklBQkxFKQogICAgIHsKICAgICAgIGdmY19hcnJheV9yZWYgKmFyID0gZ2ZjX2ZpbmRfYXJy YXlfcmVmIChleHByKTsKLSAgICAgIGlmIChhci0+dHlwZSAhPSBBUl9GVUxMKQorICAgICAg aWYgKGFyLT50eXBlID09IEFSX0ZVTEwgJiYgYXItPmFzLT50eXBlID09IEFTX0FTU1VNRURf U0laRSkKIAl7Ci0JICAqbXNnID0gIk9ubHkgd2hvbGUtYXJyYXlzIGFyZSBpbnRlcm9wZXJh YmxlIjsKLQkgIHJldHVybiBmYWxzZTsKLQl9Ci0gICAgICBpZiAoIWNfZl9wdHIgJiYgYXIt PmFzLT50eXBlICE9IEFTX0VYUExJQ0lUCi0JICAmJiBhci0+YXMtPnR5cGUgIT0gQVNfQVNT VU1FRF9TSVpFKQotCXsKLQkgICptc2cgPSAiT25seSBleHBsaWNpdC1zaXplIGFuZCBhc3N1 bWVkLXNpemUgYXJyYXlzIGFyZSBpbnRlcm9wZXJhYmxlIjsKKwkgICptc2cgPSAiQXNzdW1l ZC1zaXplIGFycmF5cyBhcmUgbm90IGludGVyb3BlcmFibGUiOwogCSAgcmV0dXJuIGZhbHNl OwogCX0KICAgICB9CkBAIC01NDc1LDkgKzU0NzEsMTcgQEAgZ2ZjX2NoZWNrX2NfZl9wb2lu dGVyIChnZmNfZXhwciAqY3B0ciwgZ2ZjX2V4cHIgKmZwdHIsIGdmY19leHByICpzaGFwZSkK ICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAKKyAgaWYgKGZwdHItPnRzLnR5cGUgPT0g QlRfUFJPQ0VEVVJFICYmIGF0dHIuZnVuY3Rpb24pCisgICAgeworICAgICAgZ2ZjX2Vycm9y ICgiRlBUUiBhcmd1bWVudCB0byBDX0ZfUE9JTlRFUiBhdCAlTCBpcyBhIGZ1bmN0aW9uICIK KwkJICJyZXR1cm5pbmcgYSBwb2ludGVyIiwgJmZwdHItPndoZXJlKTsKKyAgICAgIHJldHVy biBmYWxzZTsKKyAgICB9CisKICAgaWYgKGZwdHItPnJhbmsgPiAwICYmICFpc19jX2ludGVy b3BlcmFibGUgKGZwdHIsICZtc2csIGZhbHNlLCB0cnVlKSkKLSAgICByZXR1cm4gZ2ZjX25v dGlmeV9zdGQgKEdGQ19TVERfRjIwMTgsICJOb25pbnRlcm9wZXJhYmxlIGFycmF5IEZQVFIg IgotCQkJICAgImF0ICVMIHRvIENfRl9QT0lOVEVSOiAlcyIsICZmcHRyLT53aGVyZSwgbXNn KTsKKyAgICByZXR1cm4gZ2ZjX25vdGlmeV9zdGQgKEdGQ19TVERfRjIwMTgsCisJCQkgICAi Tm9uaW50ZXJvcGVyYWJsZSBhcnJheSBGUFRSIGFyZ3VtZW50IHRvICIKKwkJCSAgICJDX0Zf UE9JTlRFUiBhdCAlTDogJXMiLCAmZnB0ci0+d2hlcmUsIG1zZyk7CiAKICAgcmV0dXJuIHRy dWU7CiB9CmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2dmb3J0cmFuLmRnL2NfZl9wb2lu dGVyX3Rlc3RzXzkuZjkwIGIvZ2NjL3Rlc3RzdWl0ZS9nZm9ydHJhbi5kZy9jX2ZfcG9pbnRl cl90ZXN0c185LmY5MApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4u OGM4YjRhNzEzYTQKLS0tIC9kZXYvbnVsbAorKysgYi9nY2MvdGVzdHN1aXRlL2dmb3J0cmFu LmRnL2NfZl9wb2ludGVyX3Rlc3RzXzkuZjkwCkBAIC0wLDAgKzEsMzcgQEAKKyEgeyBkZy1k byBjb21waWxlIH0KKyEKKyEgQSBmdW5jdGlvbiByZXR1cm5pbmcgYSBwb2ludGVyIGNhbm5v dCBiZSBpbnRlcm9wZXJhYmxlCishIGFuZCBjYW5ub3QgYmUgdXNlZCBhcyBGUFRSIGFyZ3Vt ZW50IHRvIENfRl9QT0lOVEVSLgorCitzdWJyb3V0aW5lIHMgKCkKKyAgdXNlLCBpbnRyaW5z aWMgOjogaXNvX2NfYmluZGluZworICBpbXBsaWNpdCBub25lCisgIHR5cGUoY19wdHIpIDo6 IGNQdHIKKyAgY2FsbCBjX2ZfcG9pbnRlciAoY1B0ciwgcDApICAgICAgICAgICAgISB7IGRn LWVycm9yICJmdW5jdGlvbiByZXR1cm5pbmcgYSBwb2ludGVyIiB9CisgIGNhbGwgY19mX3Bv aW50ZXIgKGNQdHIsIHAxLCBzaGFwZT1bMl0pICEgeyBkZy1lcnJvciAiZnVuY3Rpb24gcmV0 dXJuaW5nIGEgcG9pbnRlciIgfQorY29udGFpbnMKKyAgZnVuY3Rpb24gcDAgKCkKKyAgICBp bnRlZ2VyLCBwb2ludGVyIDo6IHAwCisgICAgbnVsbGlmeSAocDApCisgIGVuZAorICBmdW5j dGlvbiBwMSAoKQorICAgIGludGVnZXIsIHBvaW50ZXIgOjogcDEoOikKKyAgICBudWxsaWZ5 IChwMSkKKyAgZW5kCisgIGZ1bmN0aW9uIGZwMCAoKQorICAgIGludGVnZXIsIHBvaW50ZXIg OjogZnAwCisgICAgY2FsbCBjX2ZfcG9pbnRlciAoY1B0ciwgZnAwKSAgICAgICAgICAgICEg dmFsaWQgaGVyZQorICBlbmQKKyAgZnVuY3Rpb24gZnAxICgpCisgICAgaW50ZWdlciwgcG9p bnRlciA6OiBmcDEoOikKKyAgICBjYWxsIGNfZl9wb2ludGVyIChjUHRyLCBmcDEsIHNoYXBl PVsyXSkgISB2YWxpZCBoZXJlCisgIGVuZAorICBmdW5jdGlvbiBmZnAwICgpIHJlc3VsdCAo ZnAwKQorICAgIGludGVnZXIsIHBvaW50ZXIgOjogZnAwCisgICAgY2FsbCBjX2ZfcG9pbnRl ciAoY1B0ciwgZnAwKSAgICAgICAgICAgICEgdmFsaWQgaGVyZQorICBlbmQKKyAgZnVuY3Rp b24gZmZwMSAoKSByZXN1bHQgKGZwMSkKKyAgICBpbnRlZ2VyLCBwb2ludGVyIDo6IGZwMSg6 KQorICAgIGNhbGwgY19mX3BvaW50ZXIgKGNQdHIsIGZwMSwgc2hhcGU9WzJdKSAhIHZhbGlk IGhlcmUKKyAgZW5kCitlbmQKZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2ZvcnRyYW4u ZGcvY19zaXplb2ZfNi5mOTAgYi9nY2MvdGVzdHN1aXRlL2dmb3J0cmFuLmRnL2Nfc2l6ZW9m XzYuZjkwCmluZGV4IGE2NzZhNWI4OTg2Li43MDQzYWM2Y2E5OSAxMDA2NDQKLS0tIGEvZ2Nj L3Rlc3RzdWl0ZS9nZm9ydHJhbi5kZy9jX3NpemVvZl82LmY5MAorKysgYi9nY2MvdGVzdHN1 aXRlL2dmb3J0cmFuLmRnL2Nfc2l6ZW9mXzYuZjkwCkBAIC04LDcgKzgsNyBAQCBwcm9ncmFt IGZvbwogCiAgICBjaGFyYWN0ZXIoa2luZD1jX2NoYXIsbGVuPTEpLHBhcmFtZXRlciA6OiBz dHIyKDQpID0gWyJhIiwiYiIsImMiLCJkIl0KIAotICAgaSA9IGNfc2l6ZW9mKHN0cjIoMToz KSkgISB7IGRnLWVycm9yICJtdXN0IGJlIGFuIGludGVyb3BlcmFibGUgZGF0YSIgfQorICAg aSA9IGNfc2l6ZW9mKHN0cjIoMTozKSkKIAogICAgaWYgKGkgLz0gMykgU1RPUCAxCiAKZGlm ZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2ZvcnRyYW4uZGcvY19zaXplb2ZfNy5mOTAgYi9n Y2MvdGVzdHN1aXRlL2dmb3J0cmFuLmRnL2Nfc2l6ZW9mXzcuZjkwCm5ldyBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4wNGEwYmRkYmNhYQotLS0gL2Rldi9udWxsCisr KyBiL2djYy90ZXN0c3VpdGUvZ2ZvcnRyYW4uZGcvY19zaXplb2ZfNy5mOTAKQEAgLTAsMCAr MSw0MiBAQAorISB7IGRnLWRvIGNvbXBpbGUgfQorISBQUiBmb3J0cmFuLzEwNjUwMCAtIGZp eCBjaGVja2luZyBvZiBhcmd1bWVudHMgdG8gQ19TSVpFT0YKKyEKKyEgQ2hlY2sgc3VwcG9y dCBvZiB0aGUgZm9sbG93aW5nIEVESVQgdG8gMTgtMDA3cjE6CishIGh0dHBzOi8vajMtZm9y dHJhbi5vcmcvZG9jL3llYXIvMjIvMjItMTAxcjEudHh0CisKK3N1YnJvdXRpbmUgZm9vIChu LCB4LCB5LCB6LCB3LCB1KQorICB1c2UsIGludHJpbnNpYyA6OiBpc29fY19iaW5kaW5nCisg IGltcGxpY2l0IG5vbmUKKyAgaW50ZWdlciwgaW50ZW50KGluKSA6OiBuCisgIHJlYWwgOjog eChuKQorICByZWFsIDo6IHkoOikKKyAgcmVhbCA6OiB6KDIsKikKKyAgcmVhbCA6OiB3KC4u KQorICByZWFsLCBhbGxvY2F0YWJsZSA6OiBhKDopCisgIHJlYWwsIHBvaW50ZXIgICAgIDo6 IGIoOikKKyAgdHlwZSB0CisgICAgIHJlYWwsIGFsbG9jYXRhYmxlIDo6IGEoOikKKyAgZW5k IHR5cGUgdAorICB0eXBlKHQpIDo6IHUKKworICBwcmludCAqLCBjX3NpemVvZiAoeCkKKyAg cHJpbnQgKiwgY19zaXplb2YgKHgoOjoyKSkKKyAgcHJpbnQgKiwgY19zaXplb2YgKHgrMSkK KyAgcHJpbnQgKiwgY19zaXplb2YgKHkpCisgIHByaW50ICosIGNfc2l6ZW9mICh5KDE6Mikp CisgIHByaW50ICosIGNfc2l6ZW9mICh6KDosMToyKSkKKyAgcHJpbnQgKiwgY19zaXplb2Yg KHcpCisgIHByaW50ICosIGNfc2l6ZW9mICgxLl9jX2Zsb2F0KQorICAhCisgIGFsbG9jYXRl IChhKG4pKQorICBhbGxvY2F0ZSAoYihuKSkKKyAgaWYgKC5ub3QuIGFsbG9jYXRlZCAodSVh KSkgYWxsb2NhdGUgKHUlYShuKSkKKyAgcHJpbnQgKiwgY19zaXplb2YgKGEpCisgIHByaW50 ICosIGNfc2l6ZW9mIChiKQorICAhCisgIHByaW50ICosIGNfc2l6ZW9mICh1JWEpCisgIHBy aW50ICosIGNfc2l6ZW9mICh1JWEoMToyKSkKKyAgIQorICBwcmludCAqLCBjX3NpemVvZiAo eikgISB7IGRnLWVycm9yICJBc3N1bWVkLXNpemUgYXJyYXlzIGFyZSBub3QgaW50ZXJvcGVy YWJsZSIgfQorICBwcmludCAqLCBjX3NpemVvZiAodSkgISB7IGRnLWVycm9yICJFeHByZXNz aW9uIGlzIGEgbm9uaW50ZXJvcGVyYWJsZSBkZXJpdmVkIHR5cGUiIH0KK2VuZApkaWZmIC0t Z2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nZm9ydHJhbi5kZy9zaXplb2ZfMi5mOTAgYi9nY2MvdGVz dHN1aXRlL2dmb3J0cmFuLmRnL3NpemVvZl8yLmY5MAppbmRleCBlNjY2MWE1NmIzMC4uZDE2 NTVjNjM0NDkgMTAwNjQ0Ci0tLSBhL2djYy90ZXN0c3VpdGUvZ2ZvcnRyYW4uZGcvc2l6ZW9m XzIuZjkwCisrKyBiL2djYy90ZXN0c3VpdGUvZ2ZvcnRyYW4uZGcvc2l6ZW9mXzIuZjkwCkBA IC0xNSw3ICsxNSw3IEBAIHN1YnJvdXRpbmUgZm9vKHgsIHkpCiAgIGlpID0gc3RvcmFnZV9z aXplICh4KSAhIHsgZGctZXJyb3IgIkFzc3VtZWQtdHlwZSBhcmd1bWVudCBhdCAuMS4gaXMg bm90IHBlcm1pdHRlZCBhcyBhY3R1YWwgYXJndW1lbnQgdG8gdGhlIGludHJpbnNpYyBzdG9y YWdlX3NpemUiIH0KIAogICBpaSA9IHNpemVvZiAoeSkgISB7IGRnLWVycm9yICJzaGFsbCBu b3QgYmUgYW4gYXNzdW1lZC1zaXplIGFycmF5IiB9Ci0gIGlpID0gY19zaXplb2YgKHkpICEg eyBkZy1lcnJvciAic2hhbGwgbm90IGJlIGFuIGFzc3VtZWQtc2l6ZSBhcnJheSIgfQorICBp aSA9IGNfc2l6ZW9mICh5KSAhIHsgZGctZXJyb3IgIlxbQWFcXXNzdW1lZC1zaXplIGFycmF5 IiB9CiAgIGlpID0gc3RvcmFnZV9zaXplICh5KSAhIG9rYXksIGVsZW1lbnQtc2l6ZSBpcyBr bm93bgogCiAgIGlpID0gc2l6ZW9mIChwcm9jKSAhIHsgZGctZXJyb3IgInNoYWxsIG5vdCBi ZSBhIHByb2NlZHVyZSIgfQotLSAKMi4zNS4zCgo= --------------51XqJIXAsSYQLJq2vUircBCj--