From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 81476 invoked by alias); 17 Jul 2018 19:21:17 -0000 Mailing-List: contact fortran-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Post: List-Help: , Sender: fortran-owner@gcc.gnu.org Received: (qmail 81429 invoked by uid 89); 17 Jul 2018 19:21:16 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-9.1 required=5.0 tests=AWL,BAYES_00,FREEMAIL_ENVFROM_END_DIGIT,FREEMAIL_FROM,GIT_PATCH_1,GIT_PATCH_2,GIT_PATCH_3,KAM_ASCII_DIVIDERS,RCVD_IN_DNSWL_NONE,SPAM_BODY,SPF_PASS autolearn=ham version=3.3.2 spammy=H*i:sk:CAE4aFA X-HELO: mail-yb0-f196.google.com Received: from mail-yb0-f196.google.com (HELO mail-yb0-f196.google.com) (209.85.213.196) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Tue, 17 Jul 2018 19:21:14 +0000 Received: by mail-yb0-f196.google.com with SMTP id s8-v6so867814ybe.8; Tue, 17 Jul 2018 12:21:14 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:sender:in-reply-to:references:from:date:message-id :subject:to:cc; bh=PgEIUiP+zh4HYZOl9LwAtvDAJcOHHZcDveLadIZJkf4=; b=oHrdsAXvQhzI50b4K19zyXwc5ySQ6DFTbikQHmujvOvfE2MV7rMSx8R9DkhafSGeyU xcVgdZXeiGsIZG3SdgKOduv5IkGEAeYzN20w4KzLrDCTYdB3Kv+lLhgNQMvEarR2AITD hVjSHXf686bSd5r6wlRugkoZHbrL1P3gP/2xYJVHgB+t3sPcCY/AN0//cBJMblwroxkm a0AdehVtbuEB5ku+O2C0wEYhG4C2lIkYqQ5rfGg6BN9/hPBnVGWnuLuqmDQTYUHIU0nF vZtnYSup6LJ7xN+fbBDNtW3Nd46204KM9jOrFQgQTvjB4u11Y4EwRK0HN/C/JJOU47WU 3/Hg== MIME-Version: 1.0 Sender: jaydub66@gmail.com Received: by 2002:a0d:ea0c:0:0:0:0:0 with HTTP; Tue, 17 Jul 2018 12:21:11 -0700 (PDT) In-Reply-To: References: <7ce70d80-88ac-f2cb-89cc-d622ac873b9e@netcologne.de> <13295d17-0718-a0af-d6bf-d30b523af848@netcologne.de> From: Janus Weil Date: Tue, 17 Jul 2018 19:21:00 -0000 Message-ID: Subject: Re: [Patch, Fortran] PR 85599: warn about short-circuiting of logical expressions for non-pure functions To: Fritz Reese Cc: Thomas Koenig , fortran , gcc-patches Content-Type: multipart/mixed; boundary="0000000000005c10ed057136d931" X-IsSubscribed: yes X-SW-Source: 2018-07/txt/msg00065.txt.bz2 --0000000000005c10ed057136d931 Content-Type: text/plain; charset="UTF-8" Content-length: 1164 2018-07-17 20:55 GMT+02:00 Fritz Reese : > On Tue, Jul 17, 2018 at 2:36 PM Janus Weil wrote: >> >> 2018-07-17 19:34 GMT+02:00 Thomas Koenig : >> > Am 17.07.2018 um 19:19 schrieb Janus Weil: > [...] >> >> I do hope that things have converged by now and that this will be the >> last incarnation of the patch. If there is no more feedback in the >> next 24 hours, I'll commit this tomorrow. > > I hate to be pedantic but it is still worth fixing the style discrepancies: Oh, sure. Such things are non-optional in GCC, I was just a bit sloppy with this. Thanks for catching! Should be fixed in the attached update. > My only other comment is I am not sure why you make > pure_function()/gfc_implicit_pure_function() public... but I have no > real problem with it. Just means rebuilding all of f951 instead of one > object. :-( Well, originally they were only used in resolve.c, but now I need them also in frontend-passes.c, therefore they have to be public. > Otherwise if the patch does what it appears to do and passes tests > then it seems fine to me. Thanks for the review! Cheers, Janus --0000000000005c10ed057136d931 Content-Type: text/x-patch; charset="US-ASCII"; name="pr85599_v8.diff" Content-Disposition: attachment; filename="pr85599_v8.diff" Content-Transfer-Encoding: base64 X-Attachment-Id: f_jjq30kun0 Content-length: 13587 SW5kZXg6IGdjYy9mb3J0cmFuL2R1bXAtcGFyc2UtdHJlZS5jCj09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT0KLS0tIGdjYy9mb3J0cmFuL2R1bXAtcGFyc2UtdHJl ZS5jCShyZXZpc2lvbiAyNjI4MjgpCisrKyBnY2MvZm9ydHJhbi9kdW1wLXBh cnNlLXRyZWUuYwkod29ya2luZyBjb3B5KQpAQCAtNzE2LDYgKzcxNiw4IEBA IHNob3dfYXR0ciAoc3ltYm9sX2F0dHJpYnV0ZSAqYXR0ciwgY29uc3QgY2hh ciAqIG1vCiAgICAgZnB1dHMgKCIgRUxFTUVOVEFMIiwgZHVtcGZpbGUpOwog ICBpZiAoYXR0ci0+cHVyZSkKICAgICBmcHV0cyAoIiBQVVJFIiwgZHVtcGZp bGUpOworICBpZiAoYXR0ci0+aW1wbGljaXRfcHVyZSkKKyAgICBmcHV0cyAo IiBJTVBMSUNJVF9QVVJFIiwgZHVtcGZpbGUpOwogICBpZiAoYXR0ci0+cmVj dXJzaXZlKQogICAgIGZwdXRzICgiIFJFQ1VSU0lWRSIsIGR1bXBmaWxlKTsK IApJbmRleDogZ2NjL2ZvcnRyYW4vZnJvbnRlbmQtcGFzc2VzLmMKPT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PQotLS0gZ2NjL2ZvcnRyYW4vZnJvbnRlbmQtcGFz c2VzLmMJKHJldmlzaW9uIDI2MjgyOCkKKysrIGdjYy9mb3J0cmFuL2Zyb250 ZW5kLXBhc3Nlcy5jCSh3b3JraW5nIGNvcHkpCkBAIC04NDAsMTcgKzg0MCwy MiBAQCBjcmVhdGVfdmFyIChnZmNfZXhwciAqIGUsIGNvbnN0IGNoYXIgKnZu YW1lKQogc3RhdGljIHZvaWQKIGRvX3dhcm5fZnVuY3Rpb25fZWxpbWluYXRp b24gKGdmY19leHByICplKQogewotICBpZiAoZS0+ZXhwcl90eXBlICE9IEVY UFJfRlVOQ1RJT04pCi0gICAgcmV0dXJuOwotICBpZiAoZS0+dmFsdWUuZnVu Y3Rpb24uZXN5bSkKLSAgICBnZmNfd2FybmluZyAoT1BUX1dmdW5jdGlvbl9l bGltaW5hdGlvbiwKLQkJICJSZW1vdmluZyBjYWxsIHRvIGZ1bmN0aW9uICVx cyBhdCAlTCIsCi0JCSBlLT52YWx1ZS5mdW5jdGlvbi5lc3ltLT5uYW1lLCAm KGUtPndoZXJlKSk7Ci0gIGVsc2UgaWYgKGUtPnZhbHVlLmZ1bmN0aW9uLmlz eW0pCi0gICAgZ2ZjX3dhcm5pbmcgKE9QVF9XZnVuY3Rpb25fZWxpbWluYXRp b24sCi0JCSAiUmVtb3ZpbmcgY2FsbCB0byBmdW5jdGlvbiAlcXMgYXQgJUwi LAotCQkgZS0+dmFsdWUuZnVuY3Rpb24uaXN5bS0+bmFtZSwgJihlLT53aGVy ZSkpOworICBjb25zdCBjaGFyICpuYW1lOworICBpZiAoZS0+ZXhwcl90eXBl ID09IEVYUFJfRlVOQ1RJT04KKyAgICAgICYmICFnZmNfcHVyZV9mdW5jdGlv biAoZSwgJm5hbWUpICYmICFnZmNfaW1wbGljaXRfcHVyZV9mdW5jdGlvbiAo ZSkpCisgICB7CisgICAgICBpZiAobmFtZSkKKwkgIGdmY193YXJuaW5nIChP UFRfV2Z1bmN0aW9uX2VsaW1pbmF0aW9uLAorCQkgICAgICAiUmVtb3Zpbmcg Y2FsbCB0byBpbXB1cmUgZnVuY3Rpb24gJXFzIGF0ICVMIiwgbmFtZSwKKwkJ ICAgICAgJihlLT53aGVyZSkpOworICAgICAgZWxzZQorCSAgZ2ZjX3dhcm5p bmcgKE9QVF9XZnVuY3Rpb25fZWxpbWluYXRpb24sCisJCSAgICAgICJSZW1v dmluZyBjYWxsIHRvIGltcHVyZSBmdW5jdGlvbiBhdCAlTCIsCisJCSAgICAg ICYoZS0+d2hlcmUpKTsKKyAgIH0KIH0KKworCiAvKiBDYWxsYmFjayBmdW5j dGlvbiBmb3IgdGhlIGNvZGUgd2Fsa2VyIGZvciBkb2luZyBjb21tb24gZnVu Y3Rpb24KICAgIGVsaW1pbmF0aW9uLiAgVGhpcyBidWlsZHMgdXAgdGhlIGxp c3Qgb2YgZnVuY3Rpb25zIGluIHRoZSBleHByZXNzaW9uCiAgICBhbmQgZ29l cyB0aHJvdWdoIHRoZW0gdG8gZGV0ZWN0IGR1cGxpY2F0ZXMsIHdoaWNoIGl0 IHRoZW4gcmVwbGFjZXMKSW5kZXg6IGdjYy9mb3J0cmFuL2dmb3J0cmFuLmgK PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PQotLS0gZ2NjL2ZvcnRyYW4vZ2ZvcnRy YW4uaAkocmV2aXNpb24gMjYyODI4KQorKysgZ2NjL2ZvcnRyYW4vZ2ZvcnRy YW4uaAkod29ya2luZyBjb3B5KQpAQCAtMzI3NSw2ICszMjc1LDggQEAgYm9v bCBnZmNfcmVzb2x2ZV9pbnRyaW5zaWMgKGdmY19zeW1ib2wgKiwgbG9jdXMg KikKIGJvb2wgZ2ZjX2V4cGxpY2l0X2ludGVyZmFjZV9yZXF1aXJlZCAoZ2Zj X3N5bWJvbCAqLCBjaGFyICosIGludCk7CiBleHRlcm4gaW50IGdmY19kb19j b25jdXJyZW50X2ZsYWc7CiBjb25zdCBjaGFyKiBnZmNfbG9va3VwX2Z1bmN0 aW9uX2Z1enp5IChjb25zdCBjaGFyICosIGdmY19zeW10cmVlICopOworaW50 IGdmY19wdXJlX2Z1bmN0aW9uIChnZmNfZXhwciAqZSwgY29uc3QgY2hhciAq Km5hbWUpOworaW50IGdmY19pbXBsaWNpdF9wdXJlX2Z1bmN0aW9uIChnZmNf ZXhwciAqZSk7CiAKIAogLyogYXJyYXkuYyAqLwpJbmRleDogZ2NjL2ZvcnRy YW4vZ2ZvcnRyYW4udGV4aQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBn Y2MvZm9ydHJhbi9nZm9ydHJhbi50ZXhpCShyZXZpc2lvbiAyNjI4MjgpCisr KyBnY2MvZm9ydHJhbi9nZm9ydHJhbi50ZXhpCSh3b3JraW5nIGNvcHkpCkBA IC0xMTc3LDYgKzExNzcsNyBAQCBtaWdodCBpbiBzb21lIHdheSBvciBhbm90 aGVyIGJlY29tZSB2aXNpYmxlIHRvIHRoZQogQG1lbnUKICogS0lORCBUeXBl IFBhcmFtZXRlcnM6OgogKiBJbnRlcm5hbCByZXByZXNlbnRhdGlvbiBvZiBM T0dJQ0FMIHZhcmlhYmxlczo6CisqIEV2YWx1YXRpb24gb2YgbG9naWNhbCBl eHByZXNzaW9uczo6CiAqIFRocmVhZC1zYWZldHkgb2YgdGhlIHJ1bnRpbWUg bGlicmFyeTo6CiAqIERhdGEgY29uc2lzdGVuY3kgYW5kIGR1cmFiaWxpdHk6 OgogKiBGaWxlcyBvcGVuZWQgd2l0aG91dCBhbiBleHBsaWNpdCBBQ1RJT049 IHNwZWNpZmllcjo6CkBAIC0xMjUxLDYgKzEyNTIsMTkgQEAgdmFsdWVzOiBA Y29kZXsxfSBmb3IgQGNvZGV7LlRSVUUufSBhbmQgQGNvZGV7MH0gZm8KIFNl ZSBhbHNvIEByZWZ7QXJndW1lbnQgcGFzc2luZyBjb252ZW50aW9uc30gYW5k IEByZWZ7SW50ZXJvcGVyYWJpbGl0eSB3aXRoIEN9LgogCiAKK0Bub2RlIEV2 YWx1YXRpb24gb2YgbG9naWNhbCBleHByZXNzaW9ucworQHNlY3Rpb24gRXZh bHVhdGlvbiBvZiBsb2dpY2FsIGV4cHJlc3Npb25zCisKK1RoZSBGb3J0cmFu IHN0YW5kYXJkIGRvZXMgbm90IHJlcXVpcmUgdGhlIGNvbXBpbGVyIHRvIGV2 YWx1YXRlIGFsbCBwYXJ0cyBvZiBhbgorZXhwcmVzc2lvbiwgaWYgdGhleSBk byBub3QgY29udHJpYnV0ZSB0byB0aGUgZmluYWwgcmVzdWx0LiAgRm9yIGxv Z2ljYWwKK2V4cHJlc3Npb25zIHdpdGggQGNvZGV7LkFORC59IG9yIEBjb2Rl ey5PUi59IG9wZXJhdG9ycywgaW4gcGFydGljdWxhciwgR05VCitGb3J0cmFu IHdpbGwgb3B0aW1pemUgb3V0IGZ1bmN0aW9uIGNhbGxzIChldmVuIHRvIGlt cHVyZSBmdW5jdGlvbnMpIGlmIHRoZQorcmVzdWx0IG9mIHRoZSBleHByZXNz aW9uIGNhbiBiZSBlc3RhYmxpc2hlZCB3aXRob3V0IHRoZW0uICBIb3dldmVy LCBzaW5jZSBub3QKK2FsbCBjb21waWxlcnMgZG8gdGhhdCwgYW5kIHN1Y2gg YW4gb3B0aW1pemF0aW9uIGNhbiBwb3RlbnRpYWxseSBtb2RpZnkgdGhlCitw cm9ncmFtIGZsb3cgYW5kIHN1YnNlcXVlbnQgcmVzdWx0cywgR05VIEZvcnRy YW4gdGhyb3dzIHdhcm5pbmdzIGZvciBzdWNoCitzaXR1YXRpb25zIHdpdGgg dGhlIEBvcHRpb257LVdmdW5jdGlvbi1lbGltaW5hdGlvbn0gZmxhZy4KKwor CiBAbm9kZSBUaHJlYWQtc2FmZXR5IG9mIHRoZSBydW50aW1lIGxpYnJhcnkK IEBzZWN0aW9uIFRocmVhZC1zYWZldHkgb2YgdGhlIHJ1bnRpbWUgbGlicmFy eQogQGNpbmRleCB0aHJlYWQtc2FmZXR5LCB0aHJlYWRzCkluZGV4OiBnY2Mv Zm9ydHJhbi9pbnZva2UudGV4aQo9PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t LSBnY2MvZm9ydHJhbi9pbnZva2UudGV4aQkocmV2aXNpb24gMjYyODI4KQor KysgZ2NjL2ZvcnRyYW4vaW52b2tlLnRleGkJKHdvcmtpbmcgY29weSkKQEAg LTEwNTYsOCArMTA1Niw5IEBAIG9mZiB2aWEgQG9wdGlvbnstV25vLWFsaWdu LWNvbW1vbnN9LiBTZWUgYWxzbyBAb3B0CiBAb3BpbmRleCBAY29kZXtXZnVu Y3Rpb24tZWxpbWluYXRpb259CiBAY2luZGV4IGZ1bmN0aW9uIGVsaW1pbmF0 aW9uCiBAY2luZGV4IHdhcm5pbmdzLCBmdW5jdGlvbiBlbGltaW5hdGlvbgot V2FybiBpZiBhbnkgY2FsbHMgdG8gZnVuY3Rpb25zIGFyZSBlbGltaW5hdGVk IGJ5IHRoZSBvcHRpbWl6YXRpb25zCitXYXJuIGlmIGFueSBjYWxscyB0byBp bXB1cmUgZnVuY3Rpb25zIGFyZSBlbGltaW5hdGVkIGJ5IHRoZSBvcHRpbWl6 YXRpb25zCiBlbmFibGVkIGJ5IHRoZSBAb3B0aW9uey1mZnJvbnRlbmQtb3B0 aW1pemV9IG9wdGlvbi4KK1RoaXMgb3B0aW9uIGlzIGltcGxpZWQgYnkgQG9w dGlvbnstV2V4dHJhfS4KIAogQGl0ZW0gLVdyZWFsbG9jLWxocwogQG9waW5k ZXggQGNvZGV7V3JlYWxsb2MtbGhzfQpJbmRleDogZ2NjL2ZvcnRyYW4vbGFu Zy5vcHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gZ2NjL2ZvcnRyYW4v bGFuZy5vcHQJKHJldmlzaW9uIDI2MjgyOCkKKysrIGdjYy9mb3J0cmFuL2xh bmcub3B0CSh3b3JraW5nIGNvcHkpCkBAIC0yNTAsNyArMjUwLDcgQEAgRm9y dHJhbiBWYXIoZmxhZ193YXJuX2Zyb250ZW5kX2xvb3BfaW50ZXJjaGFuZ2Up CiBXYXJuIGlmIGxvb3BzIGhhdmUgYmVlbiBpbnRlcmNoYW5nZWQuCiAKIFdm dW5jdGlvbi1lbGltaW5hdGlvbgotRm9ydHJhbiBXYXJuaW5nIFZhcih3YXJu X2Z1bmN0aW9uX2VsaW1pbmF0aW9uKQorRm9ydHJhbiBXYXJuaW5nIFZhcih3 YXJuX2Z1bmN0aW9uX2VsaW1pbmF0aW9uKSBMYW5nRW5hYmxlZEJ5KEZvcnRy YW4sV2V4dHJhKQogV2FybiBhYm91dCBmdW5jdGlvbiBjYWxsIGVsaW1pbmF0 aW9uLgogCiBXaW1wbGljaXQtaW50ZXJmYWNlCkluZGV4OiBnY2MvZm9ydHJh bi9yZXNvbHZlLmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gZ2NjL2Zv cnRyYW4vcmVzb2x2ZS5jCShyZXZpc2lvbiAyNjI4MjgpCisrKyBnY2MvZm9y dHJhbi9yZXNvbHZlLmMJKHdvcmtpbmcgY29weSkKQEAgLTI5NDEsOCArMjk0 MSw4IEBAIGlzX2V4dGVybmFsX3Byb2MgKGdmY19zeW1ib2wgKnN5bSkKIHN0 YXRpYyBpbnQKIHB1cmVfc3RtdF9mdW5jdGlvbiAoZ2ZjX2V4cHIgKiwgZ2Zj X3N5bWJvbCAqKTsKIAotc3RhdGljIGludAotcHVyZV9mdW5jdGlvbiAoZ2Zj X2V4cHIgKmUsIGNvbnN0IGNoYXIgKipuYW1lKQoraW50CitnZmNfcHVyZV9m dW5jdGlvbiAoZ2ZjX2V4cHIgKmUsIGNvbnN0IGNoYXIgKipuYW1lKQogewog ICBpbnQgcHVyZTsKICAgZ2ZjX2NvbXBvbmVudCAqY29tcDsKQEAgLTI5ODIs NiArMjk4MiwyMSBAQCBwdXJlX3N0bXRfZnVuY3Rpb24gKGdmY19leHByICos IGdmY19zeW1ib2wgKik7CiB9CiAKIAorLyogQ2hlY2sgaWYgdGhlIGV4cHJl c3Npb24gaXMgYSByZWZlcmVuY2UgdG8gYW4gaW1wbGljaXRseSBwdXJlIGZ1 bmN0aW9uLiAgKi8KKworaW50CitnZmNfaW1wbGljaXRfcHVyZV9mdW5jdGlv biAoZ2ZjX2V4cHIgKmUpCit7CisgIGdmY19jb21wb25lbnQgKmNvbXAgPSBn ZmNfZ2V0X3Byb2NfcHRyX2NvbXAgKGUpOworICBpZiAoY29tcCkKKyAgICBy ZXR1cm4gZ2ZjX2ltcGxpY2l0X3B1cmUgKGNvbXAtPnRzLmludGVyZmFjZSk7 CisgIGVsc2UgaWYgKGUtPnZhbHVlLmZ1bmN0aW9uLmVzeW0pCisgICAgcmV0 dXJuIGdmY19pbXBsaWNpdF9wdXJlIChlLT52YWx1ZS5mdW5jdGlvbi5lc3lt KTsKKyAgZWxzZQorICAgIHJldHVybiAwOworfQorCisKIHN0YXRpYyBib29s CiBpbXB1cmVfc3RtdF9mY24gKGdmY19leHByICplLCBnZmNfc3ltYm9sICpz eW0sCiAJCSBpbnQgKmYgQVRUUklCVVRFX1VOVVNFRCkKQEAgLTI5OTYsNyAr MzAxMSw3IEBAIGltcHVyZV9zdG10X2ZjbiAoZ2ZjX2V4cHIgKmUsIGdmY19z eW1ib2wgKnN5bSwKIAl8fCBlLT5zeW10cmVlLT5uLnN5bS0+YXR0ci5wcm9j ID09IFBST0NfU1RfRlVOQ1RJT04pCiAgICAgcmV0dXJuIGZhbHNlOwogCi0g IHJldHVybiBwdXJlX2Z1bmN0aW9uIChlLCAmbmFtZSkgPyBmYWxzZSA6IHRy dWU7CisgIHJldHVybiBnZmNfcHVyZV9mdW5jdGlvbiAoZSwgJm5hbWUpID8g ZmFsc2UgOiB0cnVlOwogfQogCiAKQEAgLTMwMTIsNyArMzAyNyw3IEBAIHB1 cmVfc3RtdF9mdW5jdGlvbiAoZ2ZjX2V4cHIgKmUsIGdmY19zeW1ib2wgKnN5 bSkKIHN0YXRpYyBib29sIGNoZWNrX3B1cmVfZnVuY3Rpb24gKGdmY19leHBy ICplKQogewogICBjb25zdCBjaGFyICpuYW1lID0gTlVMTDsKLSAgaWYgKCFw dXJlX2Z1bmN0aW9uIChlLCAmbmFtZSkgJiYgbmFtZSkKKyAgaWYgKCFnZmNf cHVyZV9mdW5jdGlvbiAoZSwgJm5hbWUpICYmIG5hbWUpCiAgICAgewogICAg ICAgaWYgKGZvcmFsbF9mbGFnKQogCXsKQEAgLTMwMzQsNyArMzA0OSw4IEBA IHN0YXRpYyBib29sIGNoZWNrX3B1cmVfZnVuY3Rpb24gKGdmY19leHByICpl KQogCQkgICAgICJ3aXRoaW4gYSBQVVJFIHByb2NlZHVyZSIsIG5hbWUsICZl LT53aGVyZSk7CiAJICByZXR1cm4gZmFsc2U7CiAJfQotICAgICAgZ2ZjX3Vu c2V0X2ltcGxpY2l0X3B1cmUgKE5VTEwpOworICAgICAgaWYgKCFnZmNfaW1w bGljaXRfcHVyZV9mdW5jdGlvbiAoZSkpCisJZ2ZjX3Vuc2V0X2ltcGxpY2l0 X3B1cmUgKE5VTEwpOwogICAgIH0KICAgcmV0dXJuIHRydWU7CiB9CkBAIC0z ODIyLDYgKzM4MzgsNDEgQEAgbG9va3VwX3VvcF9mdXp6eSAoY29uc3QgY2hh ciAqb3AsIGdmY19zeW10cmVlICp1b3AKIH0KIAogCisvKiBDYWxsYmFjayBm aW5kaW5nIGFuIGltcHVyZSBmdW5jdGlvbiBhcyBhbiBvcGVyYW5kIHRvIGFu IC5hbmQuIG9yCisgICAub3IuICBleHByZXNzaW9uLiAgUmVtZW1iZXIgdGhl IGxhc3QgZnVuY3Rpb24gd2FybmVkIGFib3V0IHRvCisgICBhdm9pZCBkb3Vi bGUgd2FybmluZ3Mgd2hlbiByZWN1cnNpbmcuICAqLworCitzdGF0aWMgaW50 CitpbXB1cmVfZnVuY3Rpb25fY2FsbGJhY2sgKGdmY19leHByICoqZSwgaW50 ICp3YWxrX3N1YnRyZWVzIEFUVFJJQlVURV9VTlVTRUQsCisJCQkgIHZvaWQg KmRhdGEpCit7CisgIGdmY19leHByICpmID0gKmU7CisgIGNvbnN0IGNoYXIg Km5hbWU7CisgIHN0YXRpYyBnZmNfZXhwciAqbGFzdCA9IE5VTEw7CisgIGJv b2wgKmZvdW5kID0gKGJvb2wgKikgZGF0YTsKKworICBpZiAoZi0+ZXhwcl90 eXBlID09IEVYUFJfRlVOQ1RJT04pCisgICAgeworICAgICAgKmZvdW5kID0g MTsKKyAgICAgIGlmIChmICE9IGxhc3QgJiYgIWdmY19wdXJlX2Z1bmN0aW9u IChmLCAmbmFtZSkKKwkgICYmICFnZmNfaW1wbGljaXRfcHVyZV9mdW5jdGlv biAoZikpCisJeworCSAgaWYgKG5hbWUpCisJICAgIGdmY193YXJuaW5nIChP UFRfV2Z1bmN0aW9uX2VsaW1pbmF0aW9uLAorCQkJICJJbXB1cmUgZnVuY3Rp b24gJXFzIGF0ICVMIG1pZ2h0IG5vdCBiZSBldmFsdWF0ZWQiLAorCQkJIG5h bWUsICZmLT53aGVyZSk7CisJICBlbHNlCisJICAgIGdmY193YXJuaW5nIChP UFRfV2Z1bmN0aW9uX2VsaW1pbmF0aW9uLAorCQkJICJJbXB1cmUgZnVuY3Rp b24gYXQgJUwgbWlnaHQgbm90IGJlIGV2YWx1YXRlZCIsCisJCQkgJmYtPndo ZXJlKTsKKwl9CisgICAgICBsYXN0ID0gZjsKKyAgICB9CisKKyAgcmV0dXJu IDA7Cit9CisKKwogLyogUmVzb2x2ZSBhbiBvcGVyYXRvciBleHByZXNzaW9u IG5vZGUuICBUaGlzIGNhbiBpbnZvbHZlIHJlcGxhY2luZyB0aGUKICAgIG9w ZXJhdGlvbiB3aXRoIGEgdXNlciBkZWZpbmVkIGZ1bmN0aW9uIGNhbGwuICAq LwogCkBAIC0zOTMwLDYgKzM5ODEsMTQgQEAgcmVzb2x2ZV9vcGVyYXRvciAo Z2ZjX2V4cHIgKmUpCiAJICAgIGdmY19jb252ZXJ0X3R5cGUgKG9wMSwgJmUt PnRzLCAyKTsKIAkgIGVsc2UgaWYgKG9wMi0+dHMua2luZCA8IGUtPnRzLmtp bmQpCiAJICAgIGdmY19jb252ZXJ0X3R5cGUgKG9wMiwgJmUtPnRzLCAyKTsK KworCSAgaWYgKGUtPnZhbHVlLm9wLm9wID09IElOVFJJTlNJQ19BTkQgfHwg ZS0+dmFsdWUub3Aub3AgPT0gSU5UUklOU0lDX09SKQorCSAgICB7CisJICAg ICAgLyogV2FybiBhYm91dCBzaG9ydC1jaXJjdWl0aW5nCisJICAgICAgICAg d2l0aCBpbXB1cmUgZnVuY3Rpb24gYXMgc2Vjb25kIG9wZXJhbmQuICAqLwor CSAgICAgIGJvb2wgb3AyX2YgPSBmYWxzZTsKKwkgICAgICBnZmNfZXhwcl93 YWxrZXIgKCZvcDIsIGltcHVyZV9mdW5jdGlvbl9jYWxsYmFjaywgJm9wMl9m KTsKKwkgICAgfQogCSAgYnJlYWs7CiAJfQogCkluZGV4OiBnY2MvdGVzdHN1 aXRlL2dmb3J0cmFuLmRnL2Z1bmN0aW9uX29wdGltaXplXzUuZjkwCj09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT0KLS0tIGdjYy90ZXN0c3VpdGUvZ2ZvcnRyYW4u ZGcvZnVuY3Rpb25fb3B0aW1pemVfNS5mOTAJKHJldmlzaW9uIDI2MjgyOCkK KysrIGdjYy90ZXN0c3VpdGUvZ2ZvcnRyYW4uZGcvZnVuY3Rpb25fb3B0aW1p emVfNS5mOTAJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAhIHsg ZGctZG8gY29tcGlsZSB9Ci0hIHsgZGctb3B0aW9ucyAiLWZmcm9udGVuZC1v cHRpbWl6ZSAtZmlubGluZS1tYXRtdWwtbGltaXQ9MCAtV2Z1bmN0aW9uLWVs aW1pbmF0aW9uIiB9CishIHsgZGctb3B0aW9ucyAiLWZmcm9udGVuZC1vcHRp bWl6ZSAtZmFnZ3Jlc3NpdmUtZnVuY3Rpb24tZWxpbWluYXRpb24gLWZpbmxp bmUtbWF0bXVsLWxpbWl0PTAgLVdmdW5jdGlvbi1lbGltaW5hdGlvbiIgfQog ISBDaGVjayB0aGUgLWZmcm9udGVuZC1vcHRpbWl6ZSAoaW4gdGhlIGFic2Vu Y2Ugb2YgLU8pIGFuZAogISAtV2Z1bmN0aW9uLWVsaW1pbmF0aW9uIG9wdGlv bnMuCiBwcm9ncmFtIG1haW4KQEAgLTI2LDE2ICsyNiwxNiBAQCBwcm9ncmFt IG1haW4KIAogICBkYXRhIGEgLzIuLCAzLiwgNS4sIDcuLwogICBkYXRhIGIg LzExLiwgMTMuLCAxNy4sIDIzLi8KLSAgd3JpdGUgKHVuaXQ9bGluZSwgZm10 PScoNEY3LjIpJykgbWF0bXVsKGEsYikgICYgISB7IGRnLXdhcm5pbmcgIlJl bW92aW5nIGNhbGwgdG8gZnVuY3Rpb24gJ21hdG11bCciIH0gCisgIHdyaXRl ICh1bml0PWxpbmUsIGZtdD0nKDRGNy4yKScpIG1hdG11bChhLGIpICAmCiAg ICAgICAgJiArIG1hdG11bChhLGIpCi0gIHogPSBzaW4oeCkgKyAyLjAgKyBz aW4oeCkgICEgeyBkZy13YXJuaW5nICJSZW1vdmluZyBjYWxsIHRvIGZ1bmN0 aW9uICdzaW4nIiB9CisgIHogPSBzaW4oeCkgKyAyLjAgKyBzaW4oeCkKICAg cHJpbnQgKix6Ci0gIHggPSBleHRfZnVuYyhhKSArIDIzICsgZXh0X2Z1bmMo YSkKKyAgeCA9IGV4dF9mdW5jKGEpICsgMjMgKyBleHRfZnVuYyhhKSAgISB7 IGRnLXdhcm5pbmcgIlJlbW92aW5nIGNhbGwgdG8gaW1wdXJlIGZ1bmN0aW9u IiB9CiAgIHByaW50ICosZCx4Ci0gIHogPSBlbGVtZW50KHgpICsgZWxlbWVu dCh4KSAhIHsgZGctd2FybmluZyAiUmVtb3ZpbmcgY2FsbCB0byBmdW5jdGlv biAnZWxlbWVudCciIH0KKyAgeiA9IGVsZW1lbnQoeCkgKyBlbGVtZW50KHgp CiAgIHByaW50ICosegotICBpID0gbXlwdXJlKHgpIC0gbXlwdXJlKHgpICEg eyBkZy13YXJuaW5nICJSZW1vdmluZyBjYWxsIHRvIGZ1bmN0aW9uICdteXB1 cmUnIiB9CisgIGkgPSBteXB1cmUoeCkgLSBteXB1cmUoeCkKICAgcHJpbnQg KixpCi0gIHogPSBlbGVtX2ltcHVyZSh4KSAtIGVsZW1faW1wdXJlKHgpCisg IHogPSBlbGVtX2ltcHVyZSh4KSAtIGVsZW1faW1wdXJlKHgpICAhIHsgZGct d2FybmluZyAiUmVtb3ZpbmcgY2FsbCB0byBpbXB1cmUgZnVuY3Rpb24iIH0K ICAgcHJpbnQgKix6CiBlbmQgcHJvZ3JhbSBtYWluCg== --0000000000005c10ed057136d931--