From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-pf1-x435.google.com (mail-pf1-x435.google.com [IPv6:2607:f8b0:4864:20::435]) by sourceware.org (Postfix) with ESMTPS id 8F4243858D28; Fri, 7 Apr 2023 07:07:43 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 8F4243858D28 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=gmail.com Received: by mail-pf1-x435.google.com with SMTP id d2e1a72fcca58-625e8447a64so147443b3a.1; Fri, 07 Apr 2023 00:07:43 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; t=1680851262; h=to:subject:message-id:date:from:in-reply-to:references:mime-version :from:to:cc:subject:date:message-id:reply-to; bh=ZwYUbapzkn+Yy/mo5m/r6KhvsgHQIeAWcwVbYPxi6Ew=; b=FuGuXzuEYoTqh0/Evl3L+z/3vJ0OVRl4ISvTWWYw1mcNKunjvBaorXF6r3WSgI511r rqC40M03w0EpLdOvgDAirpO+Y8Az5yE4krlTv6dR/eOF9cUE+ZDeode4sMw2RS/opb4r oE8XiMh8dBqfjegcWZOF5r+LFxpFV3BFbbT1bA+jspPfr5PMq0pKV9DFhkKzuye7mQIS ztfdS6+OhbTUR0oAwhvIUQhkyp22fy27RO+CtIR5uO7bJCgjjMBFVTuaDzfXepg+GXLs BLit5JpN+cYcnSh+vWup8Ldv1lGuHry5jWTbCkW+/ApxXOFy8KfuTiOO9wYMZCpW8oST yj5w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1680851262; h=to:subject:message-id:date:from:in-reply-to:references:mime-version :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=ZwYUbapzkn+Yy/mo5m/r6KhvsgHQIeAWcwVbYPxi6Ew=; b=QaSpy9mGLBSn0mXEzitao1WdgnH5sKkaWOKmty4HddmL+q60ncsHb4wWE4ULMBC/5f nNzlD4G111imDTTjnoRY2OjRf3L5QfljfsoNnAWYLG7GxtgkX5g9TGh1zg7MIVwNE3oa IxHjDVnSIkYPrfYSFEpfld9iV9apcm8Tj9fZ0Eu40jAmYsfVF1/UH3SxB5/cL1H+2YcL KrAtXuztMaPXSpVEN4yCXI/bQwJadnl5nczi/PTRnyxSAQp1Ht7LYr8q+9DzSakZcgg9 D1xq6U3szVEY3Zn90y5EI6UMh4htVmvrGPpqTZQ6uCkp4xyKEPDjyfFPFQlRX3QV81z2 NacQ== X-Gm-Message-State: AAQBX9fspvwv7iVJBJ24+VuE+v4ldkrJtE3UbMK7hmWD/YtgnrNTDNYe bDYaxCJC3LbsRzZU67wDeNuY6Y9pMA2IeLzPObRzkm4zXzA= X-Google-Smtp-Source: AKy350ZZdGHbgm/jz1Smx435bdwhe9doo/KLS1aML1f8Hat4QjUH3WtLlvfN0g0jSM0tpYQFpBM5gCvvI+6nXSSM3aA= X-Received: by 2002:a05:6a00:2391:b0:626:23a1:7b9d with SMTP id f17-20020a056a00239100b0062623a17b9dmr851136pfc.6.1680851261962; Fri, 07 Apr 2023 00:07:41 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Paul Richard Thomas Date: Fri, 7 Apr 2023 08:07:30 +0100 Message-ID: Subject: Re: Ping! [Patch, fortran] PR87477 - [meta-bug] [F03] issues concerning the ASSOCIATE statement To: "fortran@gcc.gnu.org" , gcc-patches Content-Type: multipart/mixed; boundary="000000000000641f0d05f8b9ae38" X-Spam-Status: No, score=-7.4 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM,GIT_PATCH_0,HTML_MESSAGE,RCVD_IN_DNSWL_NONE,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: --000000000000641f0d05f8b9ae38 Content-Type: multipart/alternative; boundary="000000000000641f0c05f8b9ae36" --000000000000641f0c05f8b9ae36 Content-Type: text/plain; charset="UTF-8" Dear All, Please find attached a slightly updated version of the patch with a consolidated testcase. The three additional testcases are nothing to do with associate and test fixes of character related bugs. OK for mainline? Cheers Paul Fortran: Fix some of the bugs in associate [PR87477] 2023-04-07 Paul Thomas gcc/fortran PR fortran/87477 * resolve.cc (resolve_assoc_var): Handle parentheses around the target expression. (resolve_block_construct): Remove unnecessary static decls. * trans-array.cc (gfc_conv_expr_descriptor): Guard string len expression in condition. Improve handling of string length and span, especially for substrings of the descriptor. (duplicate_allocatable): Make element type more explicit with 'eltype'. * trans_decl.cc (gfc_get_symbol_decl): Emit a fatal error with appropriate message instead of ICE if symbol type is unknown. * trans-expr.cc (gfc_get_expr_charlen): Retain last charlen in 'previous' and use if end expression in substring reference is null. (gfc_conv_string_length): Use gfc_conv_expr_descriptor if 'expr_flat' is an array. (gfc_trans_alloc_subarray_assign): If this is a deferred string length component, store the string length in the hidden comp. Update the typespec length accordingly. Generate a new type spec for the call to gfc_duplicate-allocatable in this case. * trans-io.cc (gfc_trans_transfer): Scalarize transfer of deferred character array components. gcc/testsuite/ PR fortran/87477 * gfortran.dg/finalize_47.f90 : Enable substring test. * gfortran.dg/finalize_51.f90 : Update an error message. PR fortran/85686 PR fortran/88247 PR fortran/91941 PR fortran/92779 PR fortran/93339 PR fortran/93813 PR fortran/100948 PR fortran/102106 * gfortran.dg/associate_60.f90 : New test PR fortran/98408 * gfortran.dg/pr98408.f90 : New test PR fortran/105205 * gfortran.dg/pr105205.f90 : New test PR fortran/106918 * gfortran.dg/pr106918.f90 : New test --000000000000641f0c05f8b9ae36-- --000000000000641f0d05f8b9ae38 Content-Type: text/x-patch; charset="US-ASCII"; name="submit060423.diff" Content-Disposition: attachment; filename="submit060423.diff" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_lg67fhy30 ZGlmZiAtLWdpdCBhL2djYy9mb3J0cmFuL2lyZXNvbHZlLmNjIGIvZ2NjL2Zv cnRyYW4vaXJlc29sdmUuY2MKaW5kZXggMzM3OTRmMGE4NTguLjhhY2FkNjBh MDJiIDEwMDY0NAotLS0gYS9nY2MvZm9ydHJhbi9pcmVzb2x2ZS5jYworKysg Yi9nY2MvZm9ydHJhbi9pcmVzb2x2ZS5jYwpAQCAtMjMwLDcgKzIzMCw5IEBA IGdmY19yZXNvbHZlX2FkanVzdGwgKGdmY19leHByICpmLCBnZmNfZXhwciAq c3RyaW5nKQogewogICBmLT50cy50eXBlID0gQlRfQ0hBUkFDVEVSOwogICBm LT50cy5raW5kID0gc3RyaW5nLT50cy5raW5kOwotICBpZiAoc3RyaW5nLT50 cy51LmNsKQorICBpZiAoc3RyaW5nLT50cy5kZWZlcnJlZCkKKyAgICBmLT50 cyA9IHN0cmluZy0+dHM7CisgIGVsc2UgaWYgKHN0cmluZy0+dHMudS5jbCkK ICAgICBmLT50cy51LmNsID0gZ2ZjX25ld19jaGFybGVuIChnZmNfY3VycmVu dF9ucywgc3RyaW5nLT50cy51LmNsKTsKCiAgIGYtPnZhbHVlLmZ1bmN0aW9u Lm5hbWUgPSBnZmNfZ2V0X3N0cmluZyAoIl9fYWRqdXN0bF9zJWQiLCBmLT50 cy5raW5kKTsKQEAgLTI0Miw3ICsyNDQsOSBAQCBnZmNfcmVzb2x2ZV9hZGp1 c3RyIChnZmNfZXhwciAqZiwgZ2ZjX2V4cHIgKnN0cmluZykKIHsKICAgZi0+ dHMudHlwZSA9IEJUX0NIQVJBQ1RFUjsKICAgZi0+dHMua2luZCA9IHN0cmlu Zy0+dHMua2luZDsKLSAgaWYgKHN0cmluZy0+dHMudS5jbCkKKyAgaWYgKHN0 cmluZy0+dHMuZGVmZXJyZWQpCisgICAgZi0+dHMgPSBzdHJpbmctPnRzOwor ICBlbHNlIGlmIChzdHJpbmctPnRzLnUuY2wpCiAgICAgZi0+dHMudS5jbCA9 IGdmY19uZXdfY2hhcmxlbiAoZ2ZjX2N1cnJlbnRfbnMsIHN0cmluZy0+dHMu dS5jbCk7CgogICBmLT52YWx1ZS5mdW5jdGlvbi5uYW1lID0gZ2ZjX2dldF9z dHJpbmcgKCJfX2FkanVzdHJfcyVkIiwgZi0+dHMua2luZCk7CkBAIC0zMzYx LDcgKzMzNjUsNyBAQCBnZmNfcmVzb2x2ZV9tdmJpdHMgKGdmY19jb2RlICpj KQogfQoKCi0vKiBTZXQgdXAgdGhlIGNhbGwgdG8gUkFORE9NX0lOSVQuICAq LworLyogU2V0IHVwIHRoZSBjYWxsIHRvIFJBTkRPTV9JTklULiAgKi8KCiB2 b2lkCiBnZmNfcmVzb2x2ZV9yYW5kb21faW5pdCAoZ2ZjX2NvZGUgKmMpCmRp ZmYgLS1naXQgYS9nY2MvZm9ydHJhbi9yZXNvbHZlLmNjIGIvZ2NjL2ZvcnRy YW4vcmVzb2x2ZS5jYwppbmRleCBmNmVjNzZhY2IwYi4uNmU0MjM5N2MyZWEg MTAwNjQ0Ci0tLSBhL2djYy9mb3J0cmFuL3Jlc29sdmUuY2MKKysrIGIvZ2Nj L2ZvcnRyYW4vcmVzb2x2ZS5jYwpAQCAtOTA4NCw2ICs5MDg0LDcgQEAgc3Rh dGljIHZvaWQKIHJlc29sdmVfYXNzb2NfdmFyIChnZmNfc3ltYm9sKiBzeW0s IGJvb2wgcmVzb2x2ZV90YXJnZXQpCiB7CiAgIGdmY19leHByKiB0YXJnZXQ7 CisgIGJvb2wgcGFyZW50aGVzZXMgPSBmYWxzZTsKCiAgIGdjY19hc3NlcnQg KHN5bS0+YXNzb2MpOwogICBnY2NfYXNzZXJ0IChzeW0tPmF0dHIuZmxhdm9y ID09IEZMX1ZBUklBQkxFKTsKQEAgLTkwOTYsNiArOTA5NywxNiBAQCByZXNv bHZlX2Fzc29jX3ZhciAoZ2ZjX3N5bWJvbCogc3ltLCBib29sIHJlc29sdmVf dGFyZ2V0KQogICAgIHJldHVybjsKICAgZ2NjX2Fzc2VydCAoIXN5bS0+YXNz b2MtPmRhbmdsaW5nKTsKCisgIGlmICh0YXJnZXQtPmV4cHJfdHlwZSA9PSBF WFBSX09QCisgICAgICAmJiB0YXJnZXQtPnZhbHVlLm9wLm9wID09IElOVFJJ TlNJQ19QQVJFTlRIRVNFUworICAgICAgJiYgdGFyZ2V0LT52YWx1ZS5vcC5v cDEtPmV4cHJfdHlwZSA9PSBFWFBSX1ZBUklBQkxFKQorICAgIHsKKyAgICAg IHN5bS0+YXNzb2MtPnRhcmdldCA9IGdmY19jb3B5X2V4cHIgKHRhcmdldC0+ dmFsdWUub3Aub3AxKTsKKyAgICAgIGdmY19mcmVlX2V4cHIgKHRhcmdldCk7 CisgICAgICB0YXJnZXQgPSBzeW0tPmFzc29jLT50YXJnZXQ7CisgICAgICBw YXJlbnRoZXNlcyA9IHRydWU7CisgICAgfQorCiAgIGlmIChyZXNvbHZlX3Rh cmdldCAmJiAhZ2ZjX3Jlc29sdmVfZXhwciAodGFyZ2V0KSkKICAgICByZXR1 cm47CgpAQCAtOTE3Nyw2ICs5MTg4LDcgQEAgcmVzb2x2ZV9hc3NvY192YXIg KGdmY19zeW1ib2wqIHN5bSwgYm9vbCByZXNvbHZlX3RhcmdldCkKCiAgIC8q IFNlZSBpZiB0aGlzIGlzIGEgdmFsaWQgYXNzb2NpYXRpb24tdG8tdmFyaWFi bGUuICAqLwogICBzeW0tPmFzc29jLT52YXJpYWJsZSA9ICh0YXJnZXQtPmV4 cHJfdHlwZSA9PSBFWFBSX1ZBUklBQkxFCisJCQkgICYmICFwYXJlbnRoZXNl cwogCQkJICAmJiAhZ2ZjX2hhc192ZWN0b3Jfc3Vic2NyaXB0ICh0YXJnZXQp KTsKCiAgIC8qIEZpbmFsbHkgcmVzb2x2ZSBpZiB0aGlzIGlzIGFuIGFycmF5 IG9yIG5vdC4gICovCkBAIC05MTkxLDcgKzkyMDMsNiBAQCByZXNvbHZlX2Fz c29jX3ZhciAoZ2ZjX3N5bWJvbCogc3ltLCBib29sIHJlc29sdmVfdGFyZ2V0 KQogICAgICAgcmV0dXJuOwogICAgIH0KCi0KICAgLyogV2UgY2Fubm90IGRl YWwgd2l0aCBjbGFzcyBzZWxlY3RvcnMgdGhhdCBuZWVkIHRlbXBvcmFyaWVz LiAgKi8KICAgaWYgKHRhcmdldC0+dHMudHlwZSA9PSBCVF9DTEFTUwogCSYm IGdmY19yZWZfbmVlZHNfdGVtcG9yYXJ5X3AgKHRhcmdldC0+cmVmKSkKQEAg LTEwODg1LDExICsxMDg5Niw2IEBAIGdmY19yZXNvbHZlX2ZvcmFsbCAoZ2Zj X2NvZGUgKmNvZGUsIGdmY19uYW1lc3BhY2UgKm5zLCBpbnQgZm9yYWxsX3Nh dmUpCgoKIC8qIFJlc29sdmUgYSBCTE9DSyBjb25zdHJ1Y3Qgc3RhdGVtZW50 LiAgKi8KLXN0YXRpYyBnZmNfZXhwcioKLWdldF90ZW1wX2Zyb21fZXhwciAo Z2ZjX2V4cHIgKiwgZ2ZjX25hbWVzcGFjZSAqKTsKLXN0YXRpYyBnZmNfY29k ZSAqCi1idWlsZF9hc3NpZ25tZW50IChnZmNfZXhlY19vcCwgZ2ZjX2V4cHIg KiwgZ2ZjX2V4cHIgKiwKLQkJICBnZmNfY29tcG9uZW50ICosIGdmY19jb21w b25lbnQgKiwgbG9jdXMpOwoKIHN0YXRpYyB2b2lkCiByZXNvbHZlX2Jsb2Nr X2NvbnN0cnVjdCAoZ2ZjX2NvZGUqIGNvZGUpCmRpZmYgLS1naXQgYS9nY2Mv Zm9ydHJhbi90cmFucy1hcnJheS5jYyBiL2djYy9mb3J0cmFuL3RyYW5zLWFy cmF5LmNjCmluZGV4IDQxNjYxYjQxOTVlLi5lMTcyNTgwODAzMyAxMDA2NDQK LS0tIGEvZ2NjL2ZvcnRyYW4vdHJhbnMtYXJyYXkuY2MKKysrIGIvZ2NjL2Zv cnRyYW4vdHJhbnMtYXJyYXkuY2MKQEAgLTc1NjgsNiArNzU2OCw3IEBAIGdm Y19jb252X2V4cHJfZGVzY3JpcHRvciAoZ2ZjX3NlICpzZSwgZ2ZjX2V4cHIg KmV4cHIpCiAgIGludCBmdWxsOwogICBib29sIHN1YnJlZl9hcnJheV90YXJn ZXQgPSBmYWxzZTsKICAgYm9vbCBkZWZlcnJlZF9hcnJheV9jb21wb25lbnQg PSBmYWxzZTsKKyAgYm9vbCBzdWJzdHIgPSBmYWxzZTsKICAgZ2ZjX2V4cHIg KmFyZywgKnNzX2V4cHI7CgogICBpZiAoc2UtPndhbnRfY29hcnJheSkKQEAg LTc2MTgsNiArNzYxOSw5IEBAIGdmY19jb252X2V4cHJfZGVzY3JpcHRvciAo Z2ZjX3NlICpzZSwgZ2ZjX2V4cHIgKmV4cHIpCiAJICAmJiBUUkVFX0NPREUg KGRlc2MpID09IENPTVBPTkVOVF9SRUYpCiAJZGVmZXJyZWRfYXJyYXlfY29t cG9uZW50ID0gdHJ1ZTsKCisgICAgICBzdWJzdHIgPSBpbmZvLT5yZWYgJiYg aW5mby0+cmVmLT5uZXh0CisJICAgICAgICYmIGluZm8tPnJlZi0+bmV4dC0+ dHlwZSA9PSBSRUZfU1VCU1RSSU5HOworCiAgICAgICBzdWJyZWZfYXJyYXlf dGFyZ2V0ID0gKGlzX3N1YnJlZl9hcnJheSAoZXhwcikKIAkJCSAgICAgJiYg KHNlLT5kaXJlY3RfYnlyZWYKIAkJCQkgfHwgZXhwci0+dHMudHlwZSA9PSBC VF9DSEFSQUNURVIpKTsKQEAgLTc2NTksNyArNzY2MywxMCBAQCBnZmNfY29u dl9leHByX2Rlc2NyaXB0b3IgKGdmY19zZSAqc2UsIGdmY19leHByICpleHBy KQogCQkJCSAgICAgIHN1YnJlZl9hcnJheV90YXJnZXQsIGV4cHIpOwoKIAkg ICAgICAvKiAuLi4uYW5kIHNldCB0aGUgc3BhbiBmaWVsZC4gICovCi0JICAg ICAgdG1wID0gZ2ZjX2NvbnZfZGVzY3JpcHRvcl9zcGFuX2dldCAoZGVzYyk7 CisJICAgICAgaWYgKHNzX2luZm8tPmV4cHItPnRzLnR5cGUgPT0gQlRfQ0hB UkFDVEVSKQorCQl0bXAgPSBnZmNfY29udl9kZXNjcmlwdG9yX3NwYW5fZ2V0 IChkZXNjKTsKKwkgICAgICBlbHNlCisJCXRtcCA9IGdmY19nZXRfYXJyYXlf c3BhbiAoZGVzYywgZXhwcik7CiAJICAgICAgZ2ZjX2NvbnZfZGVzY3JpcHRv cl9zcGFuX3NldCAoJnNlLT5wcmUsIHNlLT5leHByLCB0bXApOwogCSAgICB9 CiAJICBlbHNlIGlmIChzZS0+d2FudF9wb2ludGVyKQpAQCAtNzczMCw2ICs3 NzM3LDcgQEAgZ2ZjX2NvbnZfZXhwcl9kZXNjcmlwdG9yIChnZmNfc2UgKnNl LCBnZmNfZXhwciAqZXhwcikKCiAJICBuZWVkX3RtcCA9IDE7CiAJICBpZiAo ZXhwci0+dHMudHlwZSA9PSBCVF9DSEFSQUNURVIKKwkJJiYgZXhwci0+dHMu dS5jbC0+bGVuZ3RoCiAJCSYmIGV4cHItPnRzLnUuY2wtPmxlbmd0aC0+ZXhw cl90eXBlICE9IEVYUFJfQ09OU1RBTlQpCiAJICAgIGdldF9hcnJheV9jaGFy bGVuIChleHByLCBzZSk7CgpAQCAtNzkxNSw3ICs3OTIzLDcgQEAgZ2ZjX2Nv bnZfZXhwcl9kZXNjcmlwdG9yIChnZmNfc2UgKnNlLCBnZmNfZXhwciAqZXhw cikKICAgICAgIC8qIFNldCB0aGUgc3RyaW5nX2xlbmd0aCBmb3IgYSBjaGFy YWN0ZXIgYXJyYXkuICAqLwogICAgICAgaWYgKGV4cHItPnRzLnR5cGUgPT0g QlRfQ0hBUkFDVEVSKQogCXsKLQkgIGlmIChkZWZlcnJlZF9hcnJheV9jb21w b25lbnQpCisJICBpZiAoZGVmZXJyZWRfYXJyYXlfY29tcG9uZW50ICYmICFz dWJzdHIpCiAJICAgIHNlLT5zdHJpbmdfbGVuZ3RoID0gc3NfaW5mby0+c3Ry aW5nX2xlbmd0aDsKIAkgIGVsc2UKIAkgICAgc2UtPnN0cmluZ19sZW5ndGgg PSAgZ2ZjX2dldF9leHByX2NoYXJsZW4gKGV4cHIpOwpAQCAtNzk5Miw3ICs4 MDAwLDExIEBAIGdmY19jb252X2V4cHJfZGVzY3JpcHRvciAoZ2ZjX3NlICpz ZSwgZ2ZjX2V4cHIgKmV4cHIpCiAJfQoKICAgICAgIC8qIFNldCB0aGUgc3Bh biBmaWVsZC4gICovCi0gICAgICB0bXAgPSBnZmNfZ2V0X2FycmF5X3NwYW4g KGRlc2MsIGV4cHIpOworICAgICAgdG1wID0gTlVMTF9UUkVFOworICAgICAg aWYgKEdGQ19ERVNDUklQVE9SX1RZUEVfUCAoVFJFRV9UWVBFIChkZXNjKSkp CisJdG1wID0gZ2ZjX2NvbnZfZGVzY3JpcHRvcl9zcGFuX2dldCAoZGVzYyk7 CisgICAgICBlbHNlCisJdG1wID0gZ2ZjX2dldF9hcnJheV9zcGFuIChkZXNj LCBleHByKTsKICAgICAgIGlmICh0bXApCiAJZ2ZjX2NvbnZfZGVzY3JpcHRv cl9zcGFuX3NldCAoJmxvb3AucHJlLCBwYXJtLCB0bXApOwoKQEAgLTg3NjYs NiArODc3OCw3IEBAIGR1cGxpY2F0ZV9hbGxvY2F0YWJsZSAodHJlZSBkZXN0 LCB0cmVlIHNyYywgdHJlZSB0eXBlLCBpbnQgcmFuaywKIAkJICAgICAgIHRy ZWUgYWRkX3doZW5fYWxsb2NhdGVkKQogewogICB0cmVlIHRtcDsKKyAgdHJl ZSBlbHR5cGU7CiAgIHRyZWUgc2l6ZTsKICAgdHJlZSBuZWxlbXM7CiAgIHRy ZWUgbnVsbF9jb25kOwpAQCAtODc4MiwxMCArODc5NSwxMSBAQCBkdXBsaWNh dGVfYWxsb2NhdGFibGUgKHRyZWUgZGVzdCwgdHJlZSBzcmMsIHRyZWUgdHlw ZSwgaW50IHJhbmssCiAgICAgICBudWxsX2RhdGEgPSBnZmNfZmluaXNoX2Js b2NrICgmYmxvY2spOwoKICAgICAgIGdmY19pbml0X2Jsb2NrICgmYmxvY2sp OworICAgICAgZWx0eXBlID0gVFJFRV9UWVBFICh0eXBlKTsKICAgICAgIGlm IChzdHJfc3ogIT0gTlVMTF9UUkVFKQogCXNpemUgPSBzdHJfc3o7CiAgICAg ICBlbHNlCi0Jc2l6ZSA9IFRZUEVfU0laRV9VTklUIChUUkVFX1RZUEUgKHR5 cGUpKTsKKwlzaXplID0gVFlQRV9TSVpFX1VOSVQgKGVsdHlwZSk7CgogICAg ICAgaWYgKCFub19tYWxsb2MpCiAJewpAQCAtODgxMiwxMSArODgyNiwxOSBA QCBkdXBsaWNhdGVfYWxsb2NhdGFibGUgKHRyZWUgZGVzdCwgdHJlZSBzcmMs IHRyZWUgdHlwZSwgaW50IHJhbmssCiAgICAgICBlbHNlCiAJbmVsZW1zID0g Z2ZjX2luZGV4X29uZV9ub2RlOwoKKyAgICAgIC8qIElmIHR5cGUgaXMgbm90 IHRoZSBhcnJheSB0eXBlLCB0aGVuIGl0IGlzIHRoZSBlbGVtZW50IHR5cGUu ICAqLworICAgICAgaWYgKEdGQ19BUlJBWV9UWVBFX1AgKHR5cGUpIHx8IEdG Q19ERVNDUklQVE9SX1RZUEVfUCAodHlwZSkpCisJZWx0eXBlID0gZ2ZjX2dl dF9lbGVtZW50X3R5cGUgKHR5cGUpOworICAgICAgZWxzZQorCWVsdHlwZSA9 IHR5cGU7CisKICAgICAgIGlmIChzdHJfc3ogIT0gTlVMTF9UUkVFKQogCXRt cCA9IGZvbGRfY29udmVydCAoZ2ZjX2FycmF5X2luZGV4X3R5cGUsIHN0cl9z eik7CiAgICAgICBlbHNlCiAJdG1wID0gZm9sZF9jb252ZXJ0IChnZmNfYXJy YXlfaW5kZXhfdHlwZSwKLQkJCSAgICBUWVBFX1NJWkVfVU5JVCAoZ2ZjX2dl dF9lbGVtZW50X3R5cGUgKHR5cGUpKSk7CisJCQkgICAgVFlQRV9TSVpFX1VO SVQgKGVsdHlwZSkpOworCisgICAgICB0bXAgPSBnZmNfZXZhbHVhdGVfbm93 ICh0bXAsICZibG9jayk7CiAgICAgICBzaXplID0gZm9sZF9idWlsZDJfbG9j IChpbnB1dF9sb2NhdGlvbiwgTVVMVF9FWFBSLCBnZmNfYXJyYXlfaW5kZXhf dHlwZSwKIAkJCSAgICAgIG5lbGVtcywgdG1wKTsKICAgICAgIGlmICghbm9f bWFsbG9jKQpAQCAtOTg2NSw2ICs5ODg3LDcgQEAgc3RydWN0dXJlX2FsbG9j X2NvbXBzIChnZmNfc3ltYm9sICogZGVyX3R5cGUsIHRyZWUgZGVjbCwgdHJl ZSBkZXN0LAogCSAgICAgIC8qIFRoaXMgY29tcG9uZW50IGNhbm5vdCBoYXZl IGFsbG9jYXRhYmxlIGNvbXBvbmVudHMsCiAJCSB0aGVyZWZvcmUgYWRkX3do ZW5fYWxsb2NhdGVkIG9mIGR1cGxpY2F0ZV9hbGxvY2F0YWJsZSAoKQogCQkg aXMgYWx3YXlzIE5VTEwuICAqLworCSAgICAgIHJhbmsgPSBjLT5hcyA/IGMt PmFzLT5yYW5rIDogMDsKIAkgICAgICB0bXAgPSBkdXBsaWNhdGVfYWxsb2Nh dGFibGUgKGRjbXAsIGNvbXAsIGN0eXBlLCByYW5rLAogCQkJCQkgICBmYWxz ZSwgZmFsc2UsIHNpemUsIE5VTExfVFJFRSk7CiAJICAgICAgZ2ZjX2FkZF9l eHByX3RvX2Jsb2NrICgmZm5ibG9jaywgdG1wKTsKZGlmZiAtLWdpdCBhL2dj Yy9mb3J0cmFuL3RyYW5zLWRlY2wuY2MgYi9nY2MvZm9ydHJhbi90cmFucy1k ZWNsLmNjCmluZGV4IDI1NzM3ODgxYWUwLi4yOTk3NjRiMDhiMiAxMDA2NDQK LS0tIGEvZ2NjL2ZvcnRyYW4vdHJhbnMtZGVjbC5jYworKysgYi9nY2MvZm9y dHJhbi90cmFucy1kZWNsLmNjCkBAIC0xNzkxLDYgKzE3OTEsOSBAQCBnZmNf Z2V0X3N5bWJvbF9kZWNsIChnZmNfc3ltYm9sICogc3ltKQogICAgICAgcmV0 dXJuIGRlY2w7CiAgICAgfQoKKyAgaWYgKHN5bS0+dHMudHlwZSA9PSBCVF9V TktOT1dOKQorICAgIGdmY19mYXRhbF9lcnJvciAoIiVzIGF0ICVDIGhhcyBu byBkZWZhdWx0IHR5cGUiLCBzeW0tPm5hbWUpOworCiAgIGlmIChzeW0tPmF0 dHIuaW50cmluc2ljKQogICAgIGdmY19pbnRlcm5hbF9lcnJvciAoImludHJp bnNpYyB2YXJpYWJsZSB3aGljaCBpc24ndCBhIHByb2NlZHVyZSIpOwoKQEAg LTc1MzgsNiArNzU0MSw3IEBAIGdmY19nZW5lcmF0ZV9mdW5jdGlvbl9jb2Rl IChnZmNfbmFtZXNwYWNlICogbnMpCiAgICAgfQoKICAgdHJhbnNfZnVuY3Rp b25fc3RhcnQgKHN5bSk7CisgIGdmY19jdXJyZW50X2xvY3VzID0gc3ltLT5k ZWNsYXJlZF9hdDsKCiAgIGdmY19pbml0X2Jsb2NrICgmaW5pdCk7CiAgIGdm Y19pbml0X2Jsb2NrICgmY2xlYW51cCk7CmRpZmYgLS1naXQgYS9nY2MvZm9y dHJhbi90cmFucy1leHByLmNjIGIvZ2NjL2ZvcnRyYW4vdHJhbnMtZXhwci5j YwppbmRleCBkOTk2ZDI5NWJkMi4uMDIzMjU4YzFiNDMgMTAwNjQ0Ci0tLSBh L2djYy9mb3J0cmFuL3RyYW5zLWV4cHIuY2MKKysrIGIvZ2NjL2ZvcnRyYW4v dHJhbnMtZXhwci5jYwpAQCAtMjEyNCw2ICsyMTI0LDcgQEAgZ2ZjX2dldF9l eHByX2NoYXJsZW4gKGdmY19leHByICplKQogewogICBnZmNfcmVmICpyOwog ICB0cmVlIGxlbmd0aDsKKyAgdHJlZSBwcmV2aW91cyA9IE5VTExfVFJFRTsK ICAgZ2ZjX3NlIHNlOwoKICAgZ2NjX2Fzc2VydCAoZS0+ZXhwcl90eXBlID09 IEVYUFJfVkFSSUFCTEUKQEAgLTIxNDksNiArMjE1MCw3IEBAIGdmY19nZXRf ZXhwcl9jaGFybGVuIChnZmNfZXhwciAqZSkKICAgLyogTG9vayB0aHJvdWdo IHRoZSByZWZlcmVuY2UgY2hhaW4gZm9yIGNvbXBvbmVudCByZWZlcmVuY2Vz LiAgKi8KICAgZm9yIChyID0gZS0+cmVmOyByOyByID0gci0+bmV4dCkKICAg ICB7CisgICAgICBwcmV2aW91cyA9IGxlbmd0aDsKICAgICAgIHN3aXRjaCAo ci0+dHlwZSkKIAl7CiAJY2FzZSBSRUZfQ09NUE9ORU5UOgpAQCAtMjE2NCw3 ICsyMTY2LDEwIEBAIGdmY19nZXRfZXhwcl9jaGFybGVuIChnZmNfZXhwciAq ZSkKIAkgIGdmY19pbml0X3NlICgmc2UsIE5VTEwpOwogCSAgZ2ZjX2NvbnZf ZXhwcl90eXBlICgmc2UsIHItPnUuc3Muc3RhcnQsIGdmY19jaGFybGVuX3R5 cGVfbm9kZSk7CiAJICBsZW5ndGggPSBzZS5leHByOwotCSAgZ2ZjX2NvbnZf ZXhwcl90eXBlICgmc2UsIHItPnUuc3MuZW5kLCBnZmNfY2hhcmxlbl90eXBl X25vZGUpOworCSAgaWYgKHItPnUuc3MuZW5kKQorCSAgICBnZmNfY29udl9l eHByX3R5cGUgKCZzZSwgci0+dS5zcy5lbmQsIGdmY19jaGFybGVuX3R5cGVf bm9kZSk7CisJICBlbHNlCisJICAgIHNlLmV4cHIgPSBwcmV2aW91czsKIAkg IGxlbmd0aCA9IGZvbGRfYnVpbGQyX2xvYyAoaW5wdXRfbG9jYXRpb24sIE1J TlVTX0VYUFIsCiAJCQkJICAgIGdmY19jaGFybGVuX3R5cGVfbm9kZSwKIAkJ CQkgICAgc2UuZXhwciwgbGVuZ3RoKTsKQEAgLTI1NTQsOSArMjU1OSwxMiBA QCBnZmNfY29udl9zdHJpbmdfbGVuZ3RoIChnZmNfY2hhcmxlbiAqIGNsLCBn ZmNfZXhwciAqIGV4cHIsIHN0bXRibG9ja190ICogcGJsb2NrKQogICAgICAg ZXhwcl9mbGF0ID0gZ2ZjX2NvcHlfZXhwciAoZXhwcik7CiAgICAgICBmbGF0 dGVuX2FycmF5X2N0b3JzX3dpdGhvdXRfc3RybGVuIChleHByX2ZsYXQpOwog ICAgICAgZ2ZjX3Jlc29sdmVfZXhwciAoZXhwcl9mbGF0KTsKLQotICAgICAg Z2ZjX2NvbnZfZXhwciAoJnNlLCBleHByX2ZsYXQpOwotICAgICAgZ2ZjX2Fk ZF9ibG9ja190b19ibG9jayAocGJsb2NrLCAmc2UucHJlKTsKKyAgICAgIGlm IChleHByX2ZsYXQtPnJhbmspCisJZ2ZjX2NvbnZfZXhwcl9kZXNjcmlwdG9y ICgmc2UsIGV4cHJfZmxhdCk7CisgICAgICBlbHNlCisJZ2ZjX2NvbnZfZXhw ciAoJnNlLCBleHByX2ZsYXQpOworICAgICAgaWYgKGV4cHJfZmxhdC0+ZXhw cl90eXBlICE9IEVYUFJfVkFSSUFCTEUpCisJZ2ZjX2FkZF9ibG9ja190b19i bG9jayAocGJsb2NrLCAmc2UucHJlKTsKICAgICAgIGNsLT5iYWNrZW5kX2Rl Y2wgPSBjb252ZXJ0IChnZmNfY2hhcmxlbl90eXBlX25vZGUsIHNlLnN0cmlu Z19sZW5ndGgpOwoKICAgICAgIGdmY19mcmVlX2V4cHIgKGV4cHJfZmxhdCk7 CkBAIC04NTg0LDYgKzg1OTIsMjAgQEAgZ2ZjX3RyYW5zX2FsbG9jX3N1YmFy cmF5X2Fzc2lnbiAodHJlZSBkZXN0LCBnZmNfY29tcG9uZW50ICogY20sCiAg IGdmY19jb252X2V4cHJfZGVzY3JpcHRvciAoJnNlLCBleHByKTsKICAgZ2Zj X2FkZF9ibG9ja190b19ibG9jayAoJmJsb2NrLCAmc2UucHJlKTsKICAgZ2Zj X2FkZF9tb2RpZnkgKCZibG9jaywgZGVzdCwgc2UuZXhwcik7CisgIGlmIChj bS0+dHMudHlwZSA9PSBCVF9DSEFSQUNURVIKKyAgICAgICYmIGdmY19kZWZl cnJlZF9zdHJsZW4gKGNtLCAmdG1wKSkKKyAgICB7CisgICAgICB0bXAgPSBm b2xkX2J1aWxkM19sb2MgKGlucHV0X2xvY2F0aW9uLCBDT01QT05FTlRfUkVG LAorCQkJICAgICBUUkVFX1RZUEUgKHRtcCksCisJCQkgICAgIFRSRUVfT1BF UkFORCAoZGVzdCwgMCksCisJCQkgICAgIHRtcCwgTlVMTF9UUkVFKTsKKyAg ICAgIGdmY19hZGRfbW9kaWZ5ICgmYmxvY2ssIHRtcCwKKwkJCSAgICAgIGZv bGRfY29udmVydCAoVFJFRV9UWVBFICh0bXApLAorCQkJICAgICAgc2Uuc3Ry aW5nX2xlbmd0aCkpOworICAgICAgY20tPnRzLnUuY2wtPmJhY2tlbmRfZGVj bCA9IGdmY19jcmVhdGVfdmFyIChnZmNfY2hhcmxlbl90eXBlX25vZGUsCisJ CQkJCQkgICJzbGVuIik7CisgICAgICBnZmNfYWRkX21vZGlmeSAoJmJsb2Nr LCBjbS0+dHMudS5jbC0+YmFja2VuZF9kZWNsLCBzZS5zdHJpbmdfbGVuZ3Ro KTsKKyAgICB9CgogICAvKiBEZWFsIHdpdGggYXJyYXlzIG9mIGRlcml2ZWQg dHlwZXMgd2l0aCBhbGxvY2F0YWJsZSBjb21wb25lbnRzLiAgKi8KICAgaWYg KGdmY19idF9zdHJ1Y3QgKGNtLT50cy50eXBlKQpAQCAtODYwNywxMSArODYy OSwxNiBAQCBnZmNfdHJhbnNfYWxsb2Nfc3ViYXJyYXlfYXNzaWduICh0cmVl IGRlc3QsIGdmY19jb21wb25lbnQgKiBjbSwKIAkJCQkJICAgdG1wLCBleHBy LT5yYW5rLCBOVUxMX1RSRUUpOwogCX0KICAgICB9CisgIGVsc2UgaWYgKGNt LT50cy50eXBlID09IEJUX0NIQVJBQ1RFUiAmJiBjbS0+dHMuZGVmZXJyZWQp CisgICAgdG1wID0gZ2ZjX2R1cGxpY2F0ZV9hbGxvY2F0YWJsZSAoZGVzdCwg c2UuZXhwciwKKwkJCQkgICAgIGdmY190eXBlbm9kZV9mb3Jfc3BlYyAoJmNt LT50cyksCisJCQkJICAgICBjbS0+YXMtPnJhbmssIE5VTExfVFJFRSk7CiAg IGVsc2UKICAgICB0bXAgPSBnZmNfZHVwbGljYXRlX2FsbG9jYXRhYmxlIChk ZXN0LCBzZS5leHByLAogCQkJCSAgICAgVFJFRV9UWVBFKGNtLT5iYWNrZW5k X2RlY2wpLAogCQkJCSAgICAgY20tPmFzLT5yYW5rLCBOVUxMX1RSRUUpOwoK KwogICBnZmNfYWRkX2V4cHJfdG9fYmxvY2sgKCZibG9jaywgdG1wKTsKICAg Z2ZjX2FkZF9ibG9ja190b19ibG9jayAoJmJsb2NrLCAmc2UucG9zdCk7Cgpk aWZmIC0tZ2l0IGEvZ2NjL2ZvcnRyYW4vdHJhbnMtaW8uY2MgYi9nY2MvZm9y dHJhbi90cmFucy1pby5jYwppbmRleCBiYWVlYTk1NWQzNS4uOWI1NGQyZjBk MzEgMTAwNjQ0Ci0tLSBhL2djYy9mb3J0cmFuL3RyYW5zLWlvLmNjCisrKyBi L2djYy9mb3J0cmFuL3RyYW5zLWlvLmNjCkBAIC0yNjIyLDEwICsyNjIyLDEw IEBAIGdmY190cmFuc190cmFuc2ZlciAoZ2ZjX2NvZGUgKiBjb2RlKQoKICAg ICAgIGlmIChleHByLT50cy50eXBlICE9IEJUX0NMQVNTCiAJICYmIGV4cHIt PmV4cHJfdHlwZSA9PSBFWFBSX1ZBUklBQkxFCi0JICYmIGdmY19leHByX2F0 dHIgKGV4cHIpLnBvaW50ZXIpCisJICYmICgoZXhwci0+c3ltdHJlZS0+bi5z eW0tPnRzLnR5cGUgPT0gQlRfREVSSVZFRCAmJiBleHByLT50cy5kZWZlcnJl ZCkKKwkgICAgIHx8IGdmY19leHByX2F0dHIgKGV4cHIpLnBvaW50ZXIpKQog CWdvdG8gc2NhbGFyaXplOwoKLQogICAgICAgaWYgKCEoZ2ZjX2J0X3N0cnVj dCAoZXhwci0+dHMudHlwZSkKIAkgICAgICB8fCBleHByLT50cy50eXBlID09 IEJUX0NMQVNTKQogCSAgICAmJiByZWYgJiYgcmVmLT5uZXh0ID09IE5VTEwK ZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2ZvcnRyYW4uZGcvYXNzb2Np YXRlXzQ3LmY5MCBiL2djYy90ZXN0c3VpdGUvZ2ZvcnRyYW4uZGcvYXNzb2Np YXRlXzQ3LmY5MAppbmRleCAwODVjNmYzODMzOC4uZDhhNTBjNjA5MWMgMTAw NjQ0Ci0tLSBhL2djYy90ZXN0c3VpdGUvZ2ZvcnRyYW4uZGcvYXNzb2NpYXRl XzQ3LmY5MAorKysgYi9nY2MvdGVzdHN1aXRlL2dmb3J0cmFuLmRnL2Fzc29j aWF0ZV80Ny5mOTAKQEAgLTM5LDEwICszOSw5IEBAIHByb2dyYW0gcAogICAg ZW5kIGFzc29jaWF0ZQogICAgaWYgKHglZCgxKSAubmUuICd6cXJ0eWQnKSBz dG9wIDUKCi0hIFN1YnN0cmluZ3Mgb2YgYXJyYXlzIHN0aWxsIGRvIG5vdCB3 b3JrIGNvcnJlY3RseS4KICAgIGNhbGwgZm9vICgnbG1ub3BxcnN0JywnZ2hp amtsbW5vJykKICAgIGFzc29jaWF0ZSAoeSA9PiB4JWQoOikoMjo0KSkKLSEg ICAgICBpZiAoYW55ICh5IC5uZS4gWydtbm8nLCdoaWonXSkpIHN0b3AgNgor ICAgICAgaWYgKGFueSAoeSAubmUuIFsnbW5vJywnaGlqJ10pKSBzdG9wIDYK ICAgIGVuZCBhc3NvY2lhdGUKCiAgICBjYWxsIGZvbyAoJ2FiY2RlZicsJ2do aWprbCcpCmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2dmb3J0cmFuLmRn L2Fzc29jaWF0ZV81MS5mOTAgYi9nY2MvdGVzdHN1aXRlL2dmb3J0cmFuLmRn L2Fzc29jaWF0ZV81MS5mOTAKaW5kZXggZTZmMmU0ZmFmYTMuLjJlNTIxOGM3 OGNmIDEwMDY0NAotLS0gYS9nY2MvdGVzdHN1aXRlL2dmb3J0cmFuLmRnL2Fz c29jaWF0ZV81MS5mOTAKKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nZm9ydHJhbi5k Zy9hc3NvY2lhdGVfNTEuZjkwCkBAIC01MSw3ICs1MSw3IEBAIHJlY3Vyc2l2 ZSBzdWJyb3V0aW5lIHMKIGVuZAoKIHJlY3Vyc2l2ZSBzdWJyb3V0aW5lIHMy Ci0gICBhc3NvY2lhdGUgKHkgPT4gKHMyKSkgISB7IGRnLWVycm9yICJBc3Nv Y2lhdGluZyBzZWxlY3Rvci1leHByZXNzaW9uIGF0IC4xLiB5aWVsZHMgYSBw cm9jZWR1cmUiIH0KKyAgIGFzc29jaWF0ZSAoeSA9PiAoczIpKSAhIHsgZGct ZXJyb3IgImlzIGEgcHJvY2VkdXJlIG5hbWUiIH0KICAgIGVuZCBhc3NvY2lh dGUKIGVuZAoK --000000000000641f0d05f8b9ae38--