From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from ciao.gmane.io (ciao.gmane.io [116.202.254.214]) by sourceware.org (Postfix) with ESMTPS id E6FB83858D35 for ; Tue, 21 Nov 2023 21:54:58 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org E6FB83858D35 Authentication-Results: sourceware.org; dmarc=fail (p=none dis=none) header.from=gmx.de Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=m.gmane-mx.org ARC-Filter: OpenARC Filter v1.0.0 sourceware.org E6FB83858D35 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=116.202.254.214 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1700603701; cv=none; b=b5JntVJfoGisOZy/fG1lsrRcZt50svX1kAqcEVTQs7hosr61I33cv4dm6GvoJvdRgzIbsoyLejpKcE2HNAIt0OBW4wdLSFYTx+5snfv6Vil6fF/X2Ys9UtUQ3Ak/0kXicKFMBj16g/Ldw79mqV86JzM/DVTfOy2gctHtcQy9D4w= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1700603701; c=relaxed/simple; bh=KasngJnf8SzTkL2v1nqSmWOTC3VZknDaOd/FtCwAiaI=; h=To:From:Subject:Date:Message-ID:Mime-Version; b=KfazDXVTomrgNiMAw08zMI2ZP7HbmsVGl7FQ9K7Y1wMC4A2YsQfrRBScglsMGR7gJmrrJAPBEblteOI2DfG69MSS+jwAiGlCvIlaVxdD2P3442b9Y3GfBH6LD8psm2X0fFffnhjl/YcHtqzWmsWIpqIypDY3SbgfzlxYaU7phjg= ARC-Authentication-Results: i=1; server2.sourceware.org Received: from list by ciao.gmane.io with local (Exim 4.92) (envelope-from ) id 1r5Yhs-0009Iu-PW for gcc-patches@gcc.gnu.org; Tue, 21 Nov 2023 22:54:56 +0100 X-Injected-Via-Gmane: http://gmane.org/ To: gcc-patches@gcc.gnu.org From: Harald Anlauf Subject: [PATCH, v3] Fortran: restrictions on integer arguments to SYSTEM_CLOCK [PR112609] Date: Tue, 21 Nov 2023 22:54:50 +0100 Message-ID: <06b5440b-fdab-4c02-988a-ea849aadfd48@gmx.de> References: <2898e351-eee8-45dd-a05d-0280378ba872@gmx.de> <84f48fee-a5b8-4bef-aa9b-f176d3cfbfa6@orange.fr> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="------------nmvPdTX5rj25fgz1xY6JVD1r" User-Agent: Mozilla Thunderbird Content-Language: en-US In-Reply-To: <84f48fee-a5b8-4bef-aa9b-f176d3cfbfa6@orange.fr> Cc: fortran@gcc.gnu.org X-Spam-Status: No, score=-9.0 required=5.0 tests=BAYES_00,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM,GIT_PATCH_0,HEADER_FROM_DIFFERENT_DOMAINS,KAM_DMARC_STATUS,SPF_HELO_NONE,SPF_PASS,TXREP,T_SCC_BODY_TEXT_LINE 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: Message-ID: <20231121215450.ltQGq-7GysyQDP-rXW4ngh7o9DInFK9UGWdNrpGlIe8@z> This is a multi-part message in MIME format. --------------nmvPdTX5rj25fgz1xY6JVD1r Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Hi Mikael, Steve, On 11/21/23 12:33, Mikael Morin wrote: > Harald, you mentioned the lack of GFC_STD_F2023_DEL feature group in > your first message, but I don't quite understand why you didn't add one. >  It seems to me the most natural way to do this. thanks for insisting on this variant. In my first attack at this problem, I overlooked one place in libgfortran.h, which I now was able to find and adjust. Now everything falls into place. > I suggest we emit a warning by default, error with -std=f2023 (I agree > with Steve that we should push towards strict f2023 conformance), and no > diagnostic with -std=gnu or -std=f2018 or lower. As the majority agrees on this, I accept it. The attached patch now does this and fixes the testcases accordingly. >> It seems that the solution is to fix the code in the testsuite. > > Agreed, these seem to explicitly test mismatching kinds, so add an > option to prevent error. Done. I also fixed a few issues in the documentation in gfortran.texi . As I currently cannot build a full compiler (see PR112643), patch V3 is not properly regtested yet, but appears to give results as discussed. Comments? > Mikael Thanks, Harald --------------nmvPdTX5rj25fgz1xY6JVD1r Content-Type: text/x-patch; charset=UTF-8; name="pr104819-v3.patch" Content-Disposition: attachment; filename="pr104819-v3.patch" Content-Transfer-Encoding: base64 ZGlmZiAtLWdpdCBhL2djYy9mb3J0cmFuL2NoZWNrLmNjIGIvZ2NjL2ZvcnRyYW4vY2hlY2su Y2MKaW5kZXggNmM0NWU2NTQyZjAuLmU1Y2Y2YTQ5NWI1IDEwMDY0NAotLS0gYS9nY2MvZm9y dHJhbi9jaGVjay5jYworKysgYi9nY2MvZm9ydHJhbi9jaGVjay5jYwpAQCAtNDM1Nyw2ICs0 MzU3LDkgQEAgZ2ZjX2NoZWNrX251bGwgKGdmY19leHByICptb2xkKQogICBpZiAobW9sZCA9 PSBOVUxMKQogICAgIHJldHVybiB0cnVlOwogCisgIGlmIChtb2xkLT5leHByX3R5cGUgPT0g RVhQUl9OVUxMKQorICAgIHJldHVybiB0cnVlOworCiAgIGlmICghdmFyaWFibGVfY2hlY2sg KG1vbGQsIDAsIHRydWUpKQogICAgIHJldHVybiBmYWxzZTsKIApAQCAtNTE4OSw3ICs1MTky LDcgQEAgaXNfY19pbnRlcm9wZXJhYmxlIChnZmNfZXhwciAqZXhwciwgY29uc3QgY2hhciAq Km1zZywgYm9vbCBjX2xvYywgYm9vbCBjX2ZfcHRyKQogewogICAqbXNnID0gTlVMTDsKIAot ICBpZiAoZXhwci0+ZXhwcl90eXBlID09IEVYUFJfTlVMTCkKKyAgaWYgKGV4cHItPmV4cHJf dHlwZSA9PSBFWFBSX05VTEwgJiYgZXhwci0+dHMudHlwZSA9PSBCVF9VTktOT1dOKQogICAg IHsKICAgICAgICptc2cgPSAiTlVMTCgpIGlzIG5vdCBpbnRlcm9wZXJhYmxlIjsKICAgICAg IHJldHVybiBmYWxzZTsKZGlmZiAtLWdpdCBhL2djYy9mb3J0cmFuL2ludGVyZmFjZS5jYyBi L2djYy9mb3J0cmFuL2ludGVyZmFjZS5jYwppbmRleCBmYzRmZTY2MmVhYi4uNjQxZWRmOWQw NTkgMTAwNjQ0Ci0tLSBhL2djYy9mb3J0cmFuL2ludGVyZmFjZS5jYworKysgYi9nY2MvZm9y dHJhbi9pbnRlcmZhY2UuY2MKQEAgLTIzODcsNiArMjM4Nyw4IEBAIGNvbXBhcmVfcGFyYW1l dGVyIChnZmNfc3ltYm9sICpmb3JtYWwsIGdmY19leHByICphY3R1YWwsCiAgIGdmY19jb21w b25lbnQgKnBwYzsKICAgYm9vbCBjb2RpbWVuc2lvbiA9IGZhbHNlOwogICBnZmNfYXJyYXlf c3BlYyAqZm9ybWFsX2FzOworICBib29sIHBvaW50ZXJfYXJnLCBhbGxvY2F0YWJsZV9hcmc7 CisgIGJvb2wgcHJlMjAxOCA9ICgoZ2ZjX29wdGlvbi5hbGxvd19zdGQgJiBHRkNfU1REX0Yy MDE4KSA9PSAwKTsKIAogICAvKiBJZiB0aGUgZm9ybWFsIGFyZyBoYXMgdHlwZSBCVF9WT0lE LCBpdCdzIHRvIG9uZSBvZiB0aGUgaXNvX2NfYmluZGluZwogICAgICBwcm9jcyBjX2ZfcG9p bnRlciBvciBjX2ZfcHJvY3BvaW50ZXIsIGFuZCB3ZSBuZWVkIHRvIGFjY2VwdCBtb3N0CkBA IC0yNTY0LDEzICsyNTY2LDIwIEBAIGNvbXBhcmVfcGFyYW1ldGVyIChnZmNfc3ltYm9sICpm b3JtYWwsIGdmY19leHByICphY3R1YWwsCiAJfQogICAgIH0KIAorICBwb2ludGVyX2FyZyA9 IGdmY19leHByX2F0dHIgKGFjdHVhbCkucG9pbnRlcjsKKyAgYWxsb2NhdGFibGVfYXJnID0g Z2ZjX2V4cHJfYXR0ciAoYWN0dWFsKS5hbGxvY2F0YWJsZTsKKwogICAvKiBGMDg6IDEyLjUu Mi41IEFsbG9jYXRhYmxlIGFuZCBwb2ludGVyIGR1bW15IHZhcmlhYmxlcy4gIEhvd2V2ZXIs IHRoaXMKICAgICAgaXMgbmVjZXNzYXJ5IGFsc28gZm9yIEYwMywgc28gcmV0YWluIGVycm9y IGZvciBib3RoLgorICAgICBGMjAxODoxNS41LjIuNSByZWxheGVzIHRoaXMgY29uc3RyYWlu dCB0byBzYW1lIGF0dHJpYnV0ZXMuCiAgICAgIE5PVEU6IE90aGVyIHR5cGUva2luZCBlcnJv cnMgcHJlLWVtcHQgdGhpcyBlcnJvci4gIFNpbmNlIHRoZXkgYXJlIEYwMwogICAgICBjb21w YXRpYmxlLCBubyBhdHRlbXB0IGhhcyBiZWVuIG1hZGUgdG8gY2hhbm5lbCB0byB0aGlzIG9u ZS4gICovCiAgIGlmIChVTkxJTUlURURfUE9MWSAoZm9ybWFsKSAmJiAhVU5MSU1JVEVEX1BP TFkgKGFjdHVhbCkKICAgICAgICYmIChDTEFTU19EQVRBIChmb3JtYWwpLT5hdHRyLmFsbG9j YXRhYmxlCi0JICB8fENMQVNTX0RBVEEgKGZvcm1hbCktPmF0dHIuY2xhc3NfcG9pbnRlcikp CisJICB8fCBDTEFTU19EQVRBIChmb3JtYWwpLT5hdHRyLmNsYXNzX3BvaW50ZXIpCisgICAg ICAmJiAocHJlMjAxOAorCSAgfHwgKGFsbG9jYXRhYmxlX2FyZyAmJiBDTEFTU19EQVRBIChm b3JtYWwpLT5hdHRyLmFsbG9jYXRhYmxlKQorCSAgfHwgKHBvaW50ZXJfYXJnICYmIENMQVNT X0RBVEEgKGZvcm1hbCktPmF0dHIuY2xhc3NfcG9pbnRlcikpKQogICAgIHsKICAgICAgIGlm ICh3aGVyZSkKIAlnZmNfZXJyb3IgKCJBY3R1YWwgYXJndW1lbnQgdG8gJXFzIGF0ICVMIG11 c3QgYmUgdW5saW1pdGVkICIKQEAgLTI3MTAsNyArMjcxOSw4IEBAIGNvbXBhcmVfcGFyYW1l dGVyIChnZmNfc3ltYm9sICpmb3JtYWwsIGdmY19leHByICphY3R1YWwsCiAgIHJhbmtfY2hl Y2sgPSB3aGVyZSAhPSBOVUxMICYmICFpc19lbGVtZW50YWwgJiYgZm9ybWFsX2FzCiAgICAg JiYgKGZvcm1hbF9hcy0+dHlwZSA9PSBBU19BU1NVTUVEX1NIQVBFCiAJfHwgZm9ybWFsX2Fz LT50eXBlID09IEFTX0RFRkVSUkVEKQotICAgICYmIGFjdHVhbC0+ZXhwcl90eXBlICE9IEVY UFJfTlVMTDsKKyAgICAmJiAhKGFjdHVhbC0+ZXhwcl90eXBlID09IEVYUFJfTlVMTAorCSAm JiBhY3R1YWwtPnRzLnR5cGUgPT0gQlRfVU5LTk9XTik7CiAKICAgLyogU2tpcCByYW5rIGNo ZWNrcyBmb3IgTk9fQVJHX0NIRUNLLiAgKi8KICAgaWYgKGZvcm1hbC0+YXR0ci5leHRfYXR0 ciAmICgxIDw8IEVYVF9BVFRSX05PX0FSR19DSEVDSykpCkBAIC0zMTg0LDggKzMxOTQsMTAg QEAgZ2ZjX2NvbXBhcmVfYWN0dWFsX2Zvcm1hbCAoZ2ZjX2FjdHVhbF9hcmdsaXN0ICoqYXAs IGdmY19mb3JtYWxfYXJnbGlzdCAqZm9ybWFsLAogICBnZmNfYXJyYXlfcmVmICphY3R1YWxf YXJyX3JlZjsKICAgZ2ZjX2FycmF5X3NwZWMgKmZhcywgKmFhczsKICAgYm9vbCBwb2ludGVy X2R1bW15LCBwb2ludGVyX2FyZywgYWxsb2NhdGFibGVfYXJnOworICBib29sIHByb2NwdHJf ZHVtbXksIG9wdGlvbmFsX2R1bW15LCBhbGxvY2F0YWJsZV9kdW1teTsKIAogICBib29sIG9r ID0gdHJ1ZTsKKyAgYm9vbCBwcmUyMDE4ID0gKChnZmNfb3B0aW9uLmFsbG93X3N0ZCAmIEdG Q19TVERfRjIwMTgpID09IDApOwogCiAgIGFjdHVhbCA9ICphcDsKIApAQCAtMzI5NiwxNSAr MzMwOCw2NiBAQCBnZmNfY29tcGFyZV9hY3R1YWxfZm9ybWFsIChnZmNfYWN0dWFsX2FyZ2xp c3QgKiphcCwgZ2ZjX2Zvcm1hbF9hcmdsaXN0ICpmb3JtYWwsCiAJICAmJiBhLT5leHByLT50 cy50eXBlICE9IEJUX0FTU1VNRUQpCiAJZ2ZjX2ZpbmRfdnRhYiAoJmEtPmV4cHItPnRzKTsK IAorICAgICAgLyogQ2hlY2tzIGZvciBOVUxMKCkgYWN0dWFsIGFyZ3VtZW50cyB3aXRob3V0 IE1PTEQuICAqLworICAgICAgaWYgKGEtPmV4cHItPmV4cHJfdHlwZSA9PSBFWFBSX05VTEwg JiYgYS0+ZXhwci0+dHMudHlwZSA9PSBCVF9VTktOT1dOKQorCXsKKwkgIC8qIEludGVycCBK My8yMi0xNDY6CisJICAgICAiSWYgdGhlIGNvbnRleHQgb2YgdGhlIHJlZmVyZW5jZSB0byBO VUxMIGlzIGFuIDxhY3R1YWwgYXJndW1lbnQ+CisJICAgICBjb3JyZXNwb25kaW5nIHRvIGFu IDxhc3N1bWVkLXJhbms+IGR1bW15IGFyZ3VtZW50LCBNT0xEIHNoYWxsIGJlCisJICAgICBw cmVzZW50LiIgICovCisJICBmYXMgPSAoZi0+c3ltLT50cy50eXBlID09IEJUX0NMQVNTICYm IENMQVNTX0RBVEEgKGYtPnN5bSkKKwkJID8gQ0xBU1NfREFUQSAoZi0+c3ltKS0+YXMKKwkJ IDogZi0+c3ltLT5hcyk7CisJICBpZiAoZmFzICYmIGZhcy0+dHlwZSA9PSBBU19BU1NVTUVE X1JBTkspCisJICAgIHsKKwkgICAgICBnZmNfZXJyb3IgKCJJbnRyaW5zaWMgJTxOVUxMKCkl PiB3aXRob3V0ICU8TU9MRCU+IGFyZ3VtZW50ICIKKwkJCSAiYXQgJUwgcGFzc2VkIHRvIGFz c3VtZWQtcmFuayBkdW1teSAlcXMiLAorCQkJICZhLT5leHByLT53aGVyZSwgZi0+c3ltLT5u YW1lKTsKKwkgICAgICBvayA9IGZhbHNlOworCSAgICAgIGdvdG8gbWF0Y2g7CisJICAgIH0K KworCSAgLyogQXN1bW1lZC1sZW5ndGggZHVtbXkgYXJndW1lbnQuICAqLworCSAgaWYgKGYt PnN5bS0+dHMudHlwZSA9PSBCVF9DSEFSQUNURVIKKwkgICAgICAmJiAhZi0+c3ltLT50cy5k ZWZlcnJlZAorCSAgICAgICYmIGYtPnN5bS0+dHMudS5jbAorCSAgICAgICYmIGYtPnN5bS0+ dHMudS5jbC0+bGVuZ3RoID09IE5VTEwpCisJICAgIHsKKwkgICAgICBnZmNfZXJyb3IgKCJJ bnRyaW5zaWMgJTxOVUxMKCklPiB3aXRob3V0ICU8TU9MRCU+IGFyZ3VtZW50ICIKKwkJCSAi YXQgJUwgcGFzc2VkIHRvIGFzc3VtZWQtbGVuZ3RoIGR1bW15ICVxcyIsCisJCQkgJmEtPmV4 cHItPndoZXJlLCBmLT5zeW0tPm5hbWUpOworCSAgICAgIG9rID0gZmFsc2U7CisJICAgICAg Z290byBtYXRjaDsKKwkgICAgfQorCX0KKworICAgICAgLyogQWxsb3cgcGFzc2luZyBvZiBO VUxMKCkgYXMgZGlzYXNzb2NpYXRlZCBwb2ludGVyLCBwcm9jZWR1cmUKKwkgcG9pbnRlciwg b3IgdW5hbGxvY2F0ZWQgYWxsb2NhdGFibGUgKEYyMDA4KykgdG8gYSByZXNwZWN0aXZlIGR1 bW15CisJIGFyZ3VtZW50LiAgKi8KKyAgICAgIHBvaW50ZXJfZHVtbXkgPSAoKGYtPnN5bS0+ dHMudHlwZSAhPSBCVF9DTEFTUworCQkJJiYgZi0+c3ltLT5hdHRyLnBvaW50ZXIpCisJCSAg ICAgICB8fCAoZi0+c3ltLT50cy50eXBlID09IEJUX0NMQVNTCisJCQkgICAmJiBDTEFTU19E QVRBIChmLT5zeW0pLT5hdHRyLmNsYXNzX3BvaW50ZXIpKTsKKworICAgICAgcHJvY3B0cl9k dW1teSA9ICgoZi0+c3ltLT50cy50eXBlICE9IEJUX0NMQVNTCisJCQkmJiBmLT5zeW0tPmF0 dHIucHJvY19wb2ludGVyKQorCQkgICAgICAgfHwgKGYtPnN5bS0+dHMudHlwZSA9PSBCVF9D TEFTUworCQkJICAgJiYgQ0xBU1NfREFUQSAoZi0+c3ltKS0+YXR0ci5wcm9jX3BvaW50ZXIp KTsKKworICAgICAgb3B0aW9uYWxfZHVtbXkgPSBmLT5zeW0tPmF0dHIub3B0aW9uYWw7CisK KyAgICAgIGFsbG9jYXRhYmxlX2R1bW15ID0gKChmLT5zeW0tPnRzLnR5cGUgIT0gQlRfQ0xB U1MKKwkJCSAgICAmJiBmLT5zeW0tPmF0dHIuYWxsb2NhdGFibGUpCisJCQkgICB8fCAoZi0+ c3ltLT50cy50eXBlID09IEJUX0NMQVNTCisJCQkgICAgICAgJiYgQ0xBU1NfREFUQSAoZi0+ c3ltKS0+YXR0ci5hbGxvY2F0YWJsZSkpOworCiAgICAgICBpZiAoYS0+ZXhwci0+ZXhwcl90 eXBlID09IEVYUFJfTlVMTAotCSAgJiYgKChmLT5zeW0tPnRzLnR5cGUgIT0gQlRfQ0xBU1Mg JiYgIWYtPnN5bS0+YXR0ci5wb2ludGVyCi0JICAgICAgICYmIChmLT5zeW0tPmF0dHIuYWxs b2NhdGFibGUgfHwgIWYtPnN5bS0+YXR0ci5vcHRpb25hbAotCQkgICB8fCAoZ2ZjX29wdGlv bi5hbGxvd19zdGQgJiBHRkNfU1REX0YyMDA4KSA9PSAwKSkKLQkgICAgICB8fCAoZi0+c3lt LT50cy50eXBlID09IEJUX0NMQVNTCi0JCSAgJiYgIUNMQVNTX0RBVEEgKGYtPnN5bSktPmF0 dHIuY2xhc3NfcG9pbnRlcgotCQkgICYmIChDTEFTU19EQVRBIChmLT5zeW0pLT5hdHRyLmFs bG9jYXRhYmxlCi0JCSAgICAgIHx8ICFmLT5zeW0tPmF0dHIub3B0aW9uYWwKLQkJICAgICAg fHwgKGdmY19vcHRpb24uYWxsb3dfc3RkICYgR0ZDX1NURF9GMjAwOCkgPT0gMCkpKSkKKwkg ICYmICFwb2ludGVyX2R1bW15CisJICAmJiAhcHJvY3B0cl9kdW1teQorCSAgJiYgIShvcHRp b25hbF9kdW1teQorCSAgICAgICAmJiAoZ2ZjX29wdGlvbi5hbGxvd19zdGQgJiBHRkNfU1RE X0YyMDA4KSAhPSAwKQorCSAgJiYgIShhbGxvY2F0YWJsZV9kdW1teQorCSAgICAgICAmJiAo Z2ZjX29wdGlvbi5hbGxvd19zdGQgJiBHRkNfU1REX0YyMDA4KSAhPSAwKSkKIAl7CiAJICBp ZiAod2hlcmUKIAkgICAgICAmJiAoIWYtPnN5bS0+YXR0ci5vcHRpb25hbApAQCAtMzQwOSw2 ICszNDcyLDkgQEAgZ2ZjX2NvbXBhcmVfYWN0dWFsX2Zvcm1hbCAoZ2ZjX2FjdHVhbF9hcmds aXN0ICoqYXAsIGdmY19mb3JtYWxfYXJnbGlzdCAqZm9ybWFsLAogICAgICAgaWYgKGYtPnN5 bS0+dHMudHlwZSA9PSBCVF9DTEFTUykKIAlnb3RvIHNraXBfc2l6ZV9jaGVjazsKIAorICAg ICAgaWYgKGEtPmV4cHItPmV4cHJfdHlwZSA9PSBFWFBSX05VTEwpCisJZ290byBza2lwX3Np emVfY2hlY2s7CisKICAgICAgIGFjdHVhbF9zaXplID0gZ2V0X2V4cHJfc3RvcmFnZV9zaXpl IChhLT5leHByKTsKICAgICAgIGZvcm1hbF9zaXplID0gZ2V0X3N5bV9zdG9yYWdlX3NpemUg KGYtPnN5bSk7CiAgICAgICBpZiAoYWN0dWFsX3NpemUgIT0gMCAmJiBhY3R1YWxfc2l6ZSA8 IGZvcm1hbF9zaXplCkBAIC0zNjA2LDYgKzM2NzIsNzEgQEAgZ2ZjX2NvbXBhcmVfYWN0dWFs X2Zvcm1hbCAoZ2ZjX2FjdHVhbF9hcmdsaXN0ICoqYXAsIGdmY19mb3JtYWxfYXJnbGlzdCAq Zm9ybWFsLAogCSAgICB9CiAJfQogCisgICAgICAvKiBDaGVjayBjb25kaXRpb25zIG9uIGFs bG9jYXRhYmxlIGFuZCBwb2ludGVyIGR1bW15IHZhcmlhYmxlczoKKworCSAiVGhlIGFjdHVh bCBhcmd1bWVudCBzaGFsbCBiZSBwb2x5bW9ycGhpYyBpZiBhbmQgb25seSBpZiB0aGUKKwkg YXNzb2NpYXRlZCBkdW1teSBhcmd1bWVudCBpcyBwb2x5bW9ycGhpYywgYW5kIGVpdGhlciBi b3RoIHRoZQorCSBhY3R1YWwgYW5kIGR1bW15IGFyZ3VtZW50cyBzaGFsbCBiZSB1bmxpbWl0 ZWQgcG9seW1vcnBoaWMsIG9yIHRoZQorCSBkZWNsYXJlZCB0eXBlIG9mIHRoZSBhY3R1YWwg YXJndW1lbnQgc2hhbGwgYmUgdGhlIHNhbWUgYXMgdGhlCisJIGRlY2xhcmVkIHR5cGUgb2Yg dGhlIGR1bW15IGFyZ3VtZW50LiIKKworCSB3aXRoIGEgbWlub3IgZGlmZmVyZW5jZSBmcm9t IEYyMDA4OjE1LjUuMi41IHRvIEYyMDE4OjE1LjUuMi41LAorCSB3aGVyZSB0aGUgbGF0dGVy IGFwcGxpZXMgb25seSB0byBzYW1lIChBTExPQ0FUQUJMRSBvciBQT0lOVEVSKQorCSBhdHRy aWJ1dGVzLiAgTm90ZSB0aGF0IGNoZWNrcyByZWxhdGVkIHRvIHVubGltaXRlZCBwb2x5bW9y cGhpc20KKwkgYXJlIGFsc28gZG9uZSBpbiBjb21wYXJlX3BhcmFtZXRlcigpLiAgKi8KKyAg ICAgIGlmICgocG9pbnRlcl9kdW1teSB8fCBhbGxvY2F0YWJsZV9kdW1teSkKKwkgICYmIChw b2ludGVyX2FyZyB8fCBhbGxvY2F0YWJsZV9hcmcpCisJICAmJiAocHJlMjAxOAorCSAgICAg IHx8IChwb2ludGVyX2R1bW15ICYmIHBvaW50ZXJfYXJnKQorCSAgICAgIHx8IChhbGxvY2F0 YWJsZV9kdW1teSAmJiBhbGxvY2F0YWJsZV9hcmcpKQorCSAgJiYgKGYtPnN5bS0+dHMudHlw ZSA9PSBCVF9DTEFTUworCSAgICAgIHx8IGEtPmV4cHItPnRzLnR5cGUgPT0gQlRfQ0xBU1Mp KQorICAgICAgIHsKKwkgIGlmIChmLT5zeW0tPnRzLnR5cGUgPT0gQlRfQ0xBU1MgJiYgYS0+ ZXhwci0+dHMudHlwZSAhPSBCVF9DTEFTUworCSAgICAgICYmIHBvaW50ZXJfZHVtbXkpCisJ ICAgIHsKKwkgICAgICBpZiAod2hlcmUpCisJCWdmY19lcnJvciAoIkFjdHVhbCBhcmd1bWVu dCB0byAlcXMgYXQgJUwgbXVzdCBiZSBhICIKKwkJCSAgICJDTEFTUyBQT0lOVEVSIiwKKwkJ CSAgIGYtPnN5bS0+bmFtZSwgJmEtPmV4cHItPndoZXJlKTsKKwkgICAgICBvayA9IGZhbHNl OworCSAgICAgIGdvdG8gbWF0Y2g7CisJICAgIH0KKworCSAgaWYgKGYtPnN5bS0+dHMudHlw ZSAhPSBCVF9DTEFTUyAmJiBhLT5leHByLT50cy50eXBlID09IEJUX0NMQVNTCisJICAgICAg JiYgcG9pbnRlcl9hcmcpCisJICAgIHsKKwkgICAgICBpZiAod2hlcmUpCisJCWdmY19lcnJv ciAoIkFjdHVhbCBhcmd1bWVudCB0byAlcXMgYXQgJUwgY2Fubm90IGJlIGEgIgorCQkJICAg IkNMQVNTIFBPSU5URVIiLAorCQkJICAgZi0+c3ltLT5uYW1lLCAmYS0+ZXhwci0+d2hlcmUp OworCSAgICAgIG9rID0gZmFsc2U7CisJICAgICAgZ290byBtYXRjaDsKKwkgICAgfQorCisJ ICBpZiAoZi0+c3ltLT50cy50eXBlID09IEJUX0NMQVNTICYmIGEtPmV4cHItPnRzLnR5cGUg IT0gQlRfQ0xBU1MKKwkgICAgICAmJiBhbGxvY2F0YWJsZV9kdW1teSkKKwkgICAgeworCSAg ICAgIGlmICh3aGVyZSkKKwkJZ2ZjX2Vycm9yICgiQWN0dWFsIGFyZ3VtZW50IHRvICVxcyBh dCAlTCBtdXN0IGJlIGEgIgorCQkJICAgIkNMQVNTIEFMTE9DQVRBQkxFIiwKKwkJCSAgIGYt PnN5bS0+bmFtZSwgJmEtPmV4cHItPndoZXJlKTsKKwkgICAgICBvayA9IGZhbHNlOworCSAg ICAgIGdvdG8gbWF0Y2g7CisJICAgIH0KKworCSAgaWYgKGYtPnN5bS0+dHMudHlwZSAhPSBC VF9DTEFTUyAmJiBhLT5leHByLT50cy50eXBlID09IEJUX0NMQVNTCisJICAgICAgJiYgYWxs b2NhdGFibGVfYXJnKQorCSAgICB7CisJICAgICAgaWYgKHdoZXJlKQorCQlnZmNfZXJyb3Ig KCJBY3R1YWwgYXJndW1lbnQgdG8gJXFzIGF0ICVMIGNhbm5vdCBiZSBhICIKKwkJCSAgICJD TEFTUyBBTExPQ0FUQUJMRSIsCisJCQkgICBmLT5zeW0tPm5hbWUsICZhLT5leHByLT53aGVy ZSk7CisJICAgICAgb2sgPSBmYWxzZTsKKwkgICAgICBnb3RvIG1hdGNoOworCSAgICB9Cisg ICAgICAgfQorCiAKICAgICAgIC8qIEZvcnRyYW4gMjAwOCwgQzEyNDIuICAqLwogICAgICAg aWYgKGYtPnN5bS0+YXR0ci5wb2ludGVyICYmIGdmY19pc19jb2luZGV4ZWQgKGEtPmV4cHIp KQpkaWZmIC0tZ2l0IGEvZ2NjL2ZvcnRyYW4vdHJhbnMtZXhwci5jYyBiL2djYy9mb3J0cmFu L3RyYW5zLWV4cHIuY2MKaW5kZXggNTBjNDYwNGEwMjUuLjMwYjk0MTM1NmI2IDEwMDY0NAot LS0gYS9nY2MvZm9ydHJhbi90cmFucy1leHByLmNjCisrKyBiL2djYy9mb3J0cmFuL3RyYW5z LWV4cHIuY2MKQEAgLTYyODgsMTYgKzYyODgsMzcgQEAgZ2ZjX2NvbnZfcHJvY2VkdXJlX2Nh bGwgKGdmY19zZSAqIHNlLCBnZmNfc3ltYm9sICogc3ltLAogCSAgICAgICAmJiAoZnN5bS0+ dHMudHlwZSAhPSBCVF9DTEFTUwogCQkgICB8fCAhQ0xBU1NfREFUQSAoZnN5bSktPmF0dHIu Y2xhc3NfcG9pbnRlcikpCiAJewotCSAgLyogUGFzcyBhIE5VTEwgcG9pbnRlciB0byBkZW5v dGUgYW4gYWJzZW50IGFyZy4gICovCi0JICBnY2NfYXNzZXJ0IChmc3ltLT5hdHRyLm9wdGlv bmFsICYmICFmc3ltLT5hdHRyLmFsbG9jYXRhYmxlCi0JCSAgICAgICYmIChmc3ltLT50cy50 eXBlICE9IEJUX0NMQVNTCi0JCQkgIHx8ICFDTEFTU19EQVRBIChmc3ltKS0+YXR0ci5hbGxv Y2F0YWJsZSkpOwotCSAgZ2ZjX2luaXRfc2UgKCZwYXJtc2UsIE5VTEwpOwotCSAgcGFybXNl LmV4cHIgPSBudWxsX3BvaW50ZXJfbm9kZTsKLQkgIGlmIChhcmctPmFzc29jaWF0ZWRfZHVt bXkKLQkgICAgICAmJiBnZmNfZHVtbXlfYXJnX2dldF90eXBlc3BlYyAoKmFyZy0+YXNzb2Np YXRlZF9kdW1teSkudHlwZQotCQkgPT0gQlRfQ0hBUkFDVEVSKQotCSAgICBwYXJtc2Uuc3Ry aW5nX2xlbmd0aCA9IGJ1aWxkX2ludF9jc3QgKGdmY19jaGFybGVuX3R5cGVfbm9kZSwgMCk7 CisJICBpZiAoKGZzeW0tPnRzLnR5cGUgIT0gQlRfQ0xBU1MKKwkgICAgICAgJiYgZnN5bS0+ YXR0ci5hbGxvY2F0YWJsZSkKKwkgICAgICB8fCAoZnN5bS0+dHMudHlwZSA9PSBCVF9DTEFT UworCQkgICYmIENMQVNTX0RBVEEgKGZzeW0pLT5hdHRyLmFsbG9jYXRhYmxlKSkKKwkgICAg eworCSAgICAgIC8qIFBhc3MgZGVzY3JpcHRvciBlcXVpdmFsZW50IHRvIGFuIHVuYWxsb2Nh dGVkIGFsbG9jYXRhYmxlCisJCSBhY3R1YWwgYXJndW1lbnQuICAqLworCSAgICAgIGlmIChl LT5yYW5rICE9IDApCisJCWdmY19pbnRlcm5hbF9lcnJvciAoImdmY19jb252X3Byb2NlZHVy ZV9jYWxsKCkgVE9ETzogIgorCQkJCSAgICAiTlVMTChhbGxvY2F0YWJsZShyYW5rICE9IDAp KSIpOworCSAgICAgIC8qIFNjYWxhciB2ZXJzaW9uIGJlbG93LiAgKi8KKwkgICAgICBnZmNf aW5pdF9zZSAoJnBhcm1zZSwgTlVMTCk7CisJICAgICAgZ2ZjX2NvbnZfZXhwcl9yZWZlcmVu Y2UgKCZwYXJtc2UsIGUpOworCSAgICAgIHRtcCA9IHBhcm1zZS5leHByOworCSAgICAgIGlm IChUUkVFX0NPREUgKHRtcCkgPT0gQUREUl9FWFBSKQorCQl0bXAgPSBUUkVFX09QRVJBTkQg KHRtcCwgMCk7CisJICAgICAgcGFybXNlLmV4cHIgPSBnZmNfY29udl9zY2FsYXJfdG9fZGVz Y3JpcHRvciAoJnBhcm1zZSwgdG1wLAorCQkJCQkJCSAgIGZzeW0tPmF0dHIpOworCSAgICAg IHBhcm1zZS5leHByID0gZ2ZjX2J1aWxkX2FkZHJfZXhwciAoTlVMTF9UUkVFLCBwYXJtc2Uu ZXhwcik7CisJICAgIH0KKwkgIGVsc2UKKwkgICAgeworCSAgICAgIC8qIFBhc3MgYSBOVUxM IHBvaW50ZXIgdG8gZGVub3RlIGFuIGFic2VudCBvcHRpb25hbCBhcmcuICAqLworCSAgICAg IGdjY19hc3NlcnQgKGZzeW0tPmF0dHIub3B0aW9uYWwpOworCSAgICAgIGdmY19pbml0X3Nl ICgmcGFybXNlLCBOVUxMKTsKKwkgICAgICBwYXJtc2UuZXhwciA9IG51bGxfcG9pbnRlcl9u b2RlOworCSAgICAgIGlmIChhcmctPmFzc29jaWF0ZWRfZHVtbXkKKwkJICAmJiBnZmNfZHVt bXlfYXJnX2dldF90eXBlc3BlYyAoKmFyZy0+YXNzb2NpYXRlZF9kdW1teSkudHlwZQorCQkg ID09IEJUX0NIQVJBQ1RFUikKKwkJcGFybXNlLnN0cmluZ19sZW5ndGggPSBidWlsZF9pbnRf Y3N0IChnZmNfY2hhcmxlbl90eXBlX25vZGUsIDApOworCSAgICB9CiAJfQogICAgICAgZWxz ZSBpZiAoZnN5bSAmJiBmc3ltLT50cy50eXBlID09IEJUX0NMQVNTCiAJCSAmJiBlLT50cy50 eXBlID09IEJUX0RFUklWRUQpCkBAIC02ODUyLDcgKzY4NzMsOSBAQCBnZmNfY29udl9wcm9j ZWR1cmVfY2FsbCAoZ2ZjX3NlICogc2UsIGdmY19zeW1ib2wgKiBzeW0sCiAJCSAgICAgd2Ug Y2FuIGFzc2lnbiBpdCB0byB0aGUgZGF0YSBmaWVsZC4gICovCiAKIAkJICBpZiAoZnN5bSAm JiBmc3ltLT5hcyAmJiBmc3ltLT5hcy0+dHlwZSA9PSBBU19BU1NVTUVEX1JBTksKLQkJICAg ICAgJiYgZnN5bS0+dHMudHlwZSAhPSBCVF9DTEFTUyAmJiBlLT5leHByX3R5cGUgIT0gRVhQ Ul9OVUxMKQorCQkgICAgICAmJiBmc3ltLT50cy50eXBlICE9IEJUX0NMQVNTCisJCSAgICAg ICYmICEoZS0+ZXhwcl90eXBlID09IEVYUFJfTlVMTAorCQkJICAgJiYgZS0+dHMudHlwZSA9 PSBCVF9VTktOT1dOKSkKIAkJICAgIHsKIAkJICAgICAgdG1wID0gcGFybXNlLmV4cHI7CiAJ CSAgICAgIGlmIChUUkVFX0NPREUgKHRtcCkgPT0gQUREUl9FWFBSKQo= --------------nmvPdTX5rj25fgz1xY6JVD1r--