From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mout.gmx.net (mout.gmx.net [212.227.17.21]) by sourceware.org (Postfix) with ESMTPS id A920A3858D33; Tue, 21 Nov 2023 21:54:58 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org A920A3858D33 Authentication-Results: sourceware.org; dmarc=pass (p=none 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 A920A3858D33 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=212.227.17.21 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1700603701; cv=none; b=xc8isopyxSXUsrakDTVswLnQKWt1EUVILTroqIYamHOcs3LHSJ1QsS/o9zKnM3OttRUfxEjLrZD5GMlsgx40zEbTcmJ2KSnTR4WhDp16JyWo3++vshgqhr+NLUeG2kMEhM+dGJIvRiShBtv9BfuyQh4yCPX/DAfQQgEcqBNbEqE= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1700603701; c=relaxed/simple; bh=NsZ29Ivs5VXcmxgAZHQUO5W+W5/ZMiodz4latEr7BlM=; h=DKIM-Signature:Message-ID:Date:MIME-Version:Subject:To:From; b=rBYkwpfdZ2Dg+VlkEjvVJ6XMqLnN/2yjkvX5wRLBg49ugIOQAtk5Q3vNDnfv/g3pMB9u9remWXvaUlwoqZ9IMqPSNXisnrfGkhYuYDZl6IRBoglp5o889M7pDd6L8LYq3NmQWPzk7QEkCYqR70YdfLzqcP5dEcKpu+/UPLgX5tA= ARC-Authentication-Results: i=1; server2.sourceware.org DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.de; s=s31663417; t=1700603694; x=1701208494; i=anlauf@gmx.de; bh=NsZ29Ivs5VXcmxgAZHQUO5W+W5/ZMiodz4latEr7BlM=; h=X-UI-Sender-Class:Date:Subject:To:Cc:References:From: In-Reply-To; b=lJfcJz35Uu+lPfaEm7UERWipMv4s1ONZocHevWoXZ18DykDze5AsNpVNe/yYQp1X vY58pKJmowkKFtO0TXUg25ufYDPHHlCF1Luk8ZG5LxzeyKMEhWoRkZU3OTfDn174l psnvc2Ykcf+Ua6F75gHXZZF5yAzAc62nBLd5YFpjkCKvcrnInsrg7s5PhDjgGCjiw WZUlemWlGao5IVsyUIpxg0h/xfACVmRK34b75stSUxp+cqfBWvwc/mMx2HPEL0Mgn X+ZzrpFS3uhZ7MrrTjSqM9UpPh+kX7rQ7ZNDMjy7gEsBG3PtciEJn4L/VUpgdJkZr XgHKCaiL/BM8UG1iMg== X-UI-Sender-Class: 724b4f7f-cbec-4199-ad4e-598c01a50d3a Received: from [192.168.178.29] ([79.251.1.100]) by mail.gmx.net (mrgmx105 [212.227.17.168]) with ESMTPSA (Nemesis) id 1M8hVB-1r0tsV1NRp-004ftZ; Tue, 21 Nov 2023 22:54:54 +0100 Content-Type: multipart/mixed; boundary="------------nmvPdTX5rj25fgz1xY6JVD1r" Message-ID: <06b5440b-fdab-4c02-988a-ea849aadfd48@gmx.de> Date: Tue, 21 Nov 2023 22:54:50 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: [PATCH, v3] Fortran: restrictions on integer arguments to SYSTEM_CLOCK [PR112609] To: Mikael Morin , sgk@troutmask.apl.washington.edu Cc: fortran , gcc-patches Newsgroups: gmane.comp.gcc.patches,gmane.comp.gcc.fortran References: <2898e351-eee8-45dd-a05d-0280378ba872@gmx.de> <84f48fee-a5b8-4bef-aa9b-f176d3cfbfa6@orange.fr> Content-Language: en-US From: Harald Anlauf In-Reply-To: <84f48fee-a5b8-4bef-aa9b-f176d3cfbfa6@orange.fr> X-Provags-ID: V03:K1:9ntUx+g4SbzENSyVrAa28iuOx7uHgjz3PTp6eee3SYZAek9g1oi 1yYQ9FzBQJzxJUvldSgrTPuyI5Kg49DGhAqgwa47AB+ekyI9ONYDVL1HW95/lW93iKYL/GS QiypOHyMo9FfW9+bC9lrRLWKFoq+WLyQ20GR3WpvIZeaue+ESkBw5Q+fcPsWBwk1aLzZD4l hoP6Zc2EoH9uei5FyroqQ== UI-OutboundReport: notjunk:1;M01:P0:lQiU4DrqhZI=;r0Gnq1trzFV185CI/fnDC5hFbfO oq/w84Sum2ZvHvrg2E5OKO+E+sGussuKyrqKisAxYL4DyYvyORaor3VPEnvuZKuIYNfsXpcX5 a5MHiojyADoA3EqlXG6KGDJ2syk/yk3DtVXMrgZInh5Ii7Yf7bw94roZlKJLF0vucfSUPKKY8 QDpUOgJMvi8N/wXj1K1tqsvO2BTrqhIV0zxxs5JNhe0eyABd4BFIwUoDWUniLofaJd4CcLb7e rFHDiuaIazWJVgJw8h2K8dJZctvRL33YMJ9bNx4jsHT4mk5VPB1xSMRssRWXV0hmUbIepwS27 cOORn+buN5hnTMTVyEpSaOmJhSR4Od1PUMuE3Cg77i+QLYWVpHAGkYgJ+x6bxRwOEB50jeyIY ZIsBRdo1Bmah88YgBq8bZm+GkGjuOHtuVt9303hR+rsSoJTH7GSRmVISmbaRTDXlRkfdL7zwY BvNFG+a1WJC4QhM+Gak55gdczaJGou2dsS0y/RzPMaUMCG47n2NREHWvbojGtE47+IRP4h4nV 2IxqQtDt5GUjgjS1aRd8BYDrf0Xm52YTHuo4XvOZ0edK7Xgj0CzCtJ3tWWuLs3E5yGcd77a5X wEjJMCIuAr3iO5kQzrTO21hK4hc5BWog4uwqHRbA0yVnA3hOwFdPootBJwZdqfATEiMwWWA1z Jt2nIzJ2x18UbZ24mzVqOpeDDHMIMYL2p3ko6lDM6w9cKIUjSSLSc6xDehueRNdZtrnS8B5QU it7zqQpriGPFKn8X/YECgW7eQ11d4eKq0j/XQdVtOU0jfISAlC3C4R3rMq/btYzZCWLtr8gsO qf7H1kxTI03EKD4+RaYB0Jj8UaVV8uXRXs3+8F3YvV468sqKgcM+oO/Bi8oQibKXbJwP/noVV hSfiMQky9HFc9WkDULr6Wtktsv207lmSqikqTLA0U/u3v5CQ+Cxy1IAgt0coBIdxNvOi9VkV/ HyHbOwIVvmEujgfYRIsq3O53ohw= 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_H4,RCVD_IN_MSPIKE_WL,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: This is a multi-part message in MIME format. --------------nmvPdTX5rj25fgz1xY6JVD1r Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: quoted-printable 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. > =C2=A0It 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=3Df2023 (I agree > with Steve that we should push towards strict f2023 conformance), and no > diagnostic with -std=3Dgnu or -std=3Df2018 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--