From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mout.kundenserver.de (mout.kundenserver.de [212.227.126.134]) by sourceware.org (Postfix) with ESMTPS id A99813858D34 for ; Wed, 6 Mar 2024 17:09:04 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org A99813858D34 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=harwath.name Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=harwath.name ARC-Filter: OpenARC Filter v1.0.0 sourceware.org A99813858D34 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=212.227.126.134 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1709744947; cv=none; b=obm6Rt7VQ8lcJxZEcKGIYTtV+2vlBR7Hxf5iRHj+ZNf0mBenRn8k5qXPnYsbSeyREO2qp1gXnq71jn/xn9UkabH8JHrBaE4ARKUPqauOic6m1FaEWhopzL3ZEC1RAgqlFCUVLXsslLPnMYepqRDVNjTnHdsgf0e9fbWwFcKxRgQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1709744947; c=relaxed/simple; bh=rIg/CeZ5uOemdLDI2fLS+P0uwSEzmdTCKpus57UUw8I=; h=DKIM-Signature:Message-ID:Date:MIME-Version:Subject:From:To; b=otH5dpSX3IWR6YSJGaJraDLBFuOVb+zyq0HFpiMKMJCLYSNFUN4cVqptzz0WoJWNWhzMSTqyT5ZhtTkdO0NT4370fsxL82u90GAEQoh1b2Mu6mvxzT08dVR3tXTVkV9keIOCMBdapa2cK5UBxkdYYUPIpLiRPiCWXbgVawzUm8c= ARC-Authentication-Results: i=1; server2.sourceware.org DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=harwath.name; s=s1-ionos; t=1709744928; x=1710349728; i=frederik@harwath.name; bh=rIg/CeZ5uOemdLDI2fLS+P0uwSEzmdTCKpus57UUw8I=; h=X-UI-Sender-Class:Date:Subject:From:To:References:In-Reply-To; b=BM24Z/epptIwhQub0/1WsTJgjk0WDg1iej6McuYBxRU3RL0I5BlnOHxYtXx3oP/O row7DIHi4BWySHWZMupos8lmPqVOUzKk5WlzS3IW4IU5WWSW2x49j7LxxUcznZZQA nE8lufdCqMReH8zjBc8lqhuPOGWnhcCcWTZ7Ae2XUkWWkVFz98JwL4Y9RK1BVKjGG F3wfhJXywDqifB2LDwCNwAY9ktCJwxOooLkyiE45JXrzia8plcEw0KTHzSnRM1bEh KGrc/CJZzQ4tdZhIK608PSH57HFmxaN3hf9TuMsyjdgJJk9gLjVOTwD/rRJzRi0a5 xbiDwYDZJEbJCTly9A== X-UI-Sender-Class: 55c96926-9e95-11ee-ae09-1f7a4046a0f6 Received: from [192.168.178.47] ([87.161.131.34]) by mrelayeu.kundenserver.de (mreue011 [213.165.67.97]) with ESMTPSA (Nemesis) id 1MqbI0-1r4A9g0uqu-00maVB; Wed, 06 Mar 2024 18:08:48 +0100 Content-Type: multipart/mixed; boundary="------------qIJpPfs0MKwmmZhyEBFZ5oJT" Message-ID: Date: Wed, 6 Mar 2024 18:08:47 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH] OpenMP: warn about iteration var modifications in loop body Content-Language: en-US From: Frederik Harwath To: gcc-patches@gcc.gnu.org, tburnus@baylibre.com, jakub@redhat.com References: In-Reply-To: X-Provags-ID: V03:K1:wJI+2diKhXSfpqLGMXV03U7SZoI79ugEcO30L7+eu/4HfDWHs35 N99NIX8lahk5Dm1JEl/Kqy2z0KtH98fBtjI9Tw7Y1cn/HQd72YLlAD86XQnSVm5V0WGbMt7 QIdbhqN17Bit41C7W+QMtNI6YWyMDtTsOpON9/Dj8jlyVkQT3nEHeYV5pS0ohcNyC9edx60 kfT1v1mp0AJWTDQd0V99g== UI-OutboundReport: notjunk:1;M01:P0:8SqlbMFZqBA=;vs4O4eUxwNn+18oHUtwd5/57wBR luiDagHqqGes7C77sjBFLqUupL8VP5Ijmc3iO3Udu4/HTIMvRMY8biyMK1KGQKmx9StarnwQp P5Qjvl1KeBEsNVZphvlK/UhTUTKdGpfUHuMFf0pF3j5FMZ30pjv43A1JJpEeEf3O7ZxPOiRi9 dNZ/x7UlywObwJzfz1rlE/it9RFV7v+621mSd1YBXeqfTCDrkPCKoLb9qIguLmXzsN2Y/z3lO 7q7JufO5GMv0xE+T5ac/b4QgxLXAGOoGAaTXdHkG2o2+MJNsVpBK++9elGIgtqkYJhnaTHTXb y5PEe9JwQmGoH1NTz8ylxfUR6JeRHg9hZVTGTmIF4lqYjdZz8FwNESDNWjW7fcjYIRJHvrlqq 0G2KJEqEq8C1Y28Ok2tuYu3sue4y2TpGZ8iaCgl+L/aTvY9hPnMtPz4ONomL5DqdaE4C60tFC QMcNtOeJbAQLOesXdo3Dp97XUrLYbsbyjBq4zclljKd1L1FIWg6Go4QQFLuYSyn28KdyFN5hU X7XrboRuurroaBaok+gEtirdkd4y9kpKcrdH94jTJAYT7wKGDMv3fMepnPXnk0GAUegRWTcu4 Qy/ESE8xJ7moI4pjdL8PA/YjxZ1hMo7vLO3hv1z63wtIZLzpyng2/0i1zooCXMtc4a4P7JkyZ xnqBuQRxE31G8CgRG8yHIBAv6eZILrraNkzZ2RaGCkv7G5pKlQT5gadtsbDbinF4404Jcul6D 8r1UdK3csmFf9pEhC8mQX3TkVhKEyliLebh6hir8/u9R90U3iwK98o= X-Spam-Status: No, score=-11.7 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,GIT_PATCH_0,KAM_SHORT,RCVD_IN_BARRACUDACENTRAL,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H2,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. --------------qIJpPfs0MKwmmZhyEBFZ5oJT Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: quoted-printable Ping. The Linaro CI has kindly pointed me to two test regressions that I had missed. I have adjust the test expectations in the updated patch which I have attached. Frederik On 28.02.24 8:32 PM, Frederik Harwath wrote: > Hi, > > this patch implements a warning about (some simple cases of direct) > modifications of iteration variables in OpenMP loops which are > forbidden according to the OpenMP specification. I think this can be > helpful, especially for new OpenMP users. I have implemented this > after I observed some confusion concerning this topic recently. > The check is implemented during gimplification. It reuses the > "loop_iter_var" vector in the "gimplify_omp_ctx" which was previously > only used for "doacross" handling to identify the loop iteration > variables during the gimplification of MODIFY_EXPRs in omp_for bodies. > I have only added a common C/C++ test because I don't see any special > C++ constructs for which a warning *should* be emitted and Fortran > rejects modifications of iteration variables in do loops in general. > > I have run "make check" on x86_64-linux-gnu and not observed any > regressions. > > Is it ok to commit this? > > Best regards, > Frederik --------------qIJpPfs0MKwmmZhyEBFZ5oJT Content-Type: text/x-patch; charset=UTF-8; name="0001-OpenMP-warn-about-iteration-var-modifications-in-loo.patch" Content-Disposition: attachment; filename*0="0001-OpenMP-warn-about-iteration-var-modifications-in-loo.pa"; filename*1="tch" Content-Transfer-Encoding: base64 RnJvbSBkNGZiMTcxMGJmYTFkNWI2Njk3OWRiMWYwYWVhMmQ1YzY4YWIyMjY0IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBGcmVkZXJpayBIYXJ3YXRoIDxmcmVkZXJpa0BoYXJ3 YXRoLm5hbWU+CkRhdGU6IFR1ZSwgMjcgRmViIDIwMjQgMjE6MDc6MDAgKzAwMDAKU3ViamVj dDogW1BBVENIXSBPcGVuTVA6IHdhcm4gYWJvdXQgaXRlcmF0aW9uIHZhciBtb2RpZmljYXRp b25zIGluIGxvb3AgYm9keQoKT3Blbk1QIGxvb3AgaXRlcmF0aW9uIHZhcmlhYmxlcyBtYXkg bm90IGJlIGNoYW5nZWQgYnkgdXNlciBjb2RlIGluIHRoZQpsb29wIGJvZHkgYWNjb3JkaW5n IHRvIHRoZSBPcGVuTVAgc3BlY2lmaWNhdGlvbi4gIEluIGdlbmVyYWwsIHRoZQpjb21waWxl ciBjYW5ub3QgZW5mb3JjZSB0aGlzLCBidXQgbmV2ZXJ0aGVsZXNzIHNpbXBsZSBjYXNlcyBp biB3aGljaAp0aGUgdXNlciBtb2RpZmllcyB0aGUgaXRlcmF0aW9uIHZhcmlhYmxlIGRpcmVj dGx5IGluIHRoZSBsb29wIGJvZHkKKGluIGNvbnRyYXN0IHRvLCBlLmcuLCBtb2RpZmljYXRp b25zIHRocm91Z2ggYSBwb2ludGVyKSBjYW4gYmUgcmVjb2duaXplZC4gQQp3YXJuaW5nIHNo b3VsZCBiZSB1c2VmdWwsIGZvciBpbnN0YW5jZSwgdG8gbmV3IHVzZXJzIG9mIE9wZW5NUC4K ClRoaXMgY29tbWl0IGltcGxlbWVudHMgYSB3YXJuaW5nIGFib3V0IGZvcmJpZGRlbiBpdGVy YXRpb24gdmFyIG1vZGlmaWNhdGlvbnMKZHVyaW5nIGdpbXBsaWZpY2F0aW9uLiBJdCByZXVz ZXMgdGhlICJsb29wX2l0ZXJfdmFyIiB2ZWN0b3IgaW4gdGhlCiJnaW1wbGlmeV9vbXBfY3R4 IiB3aGljaCB3YXMgcHJldmlvdXNseSBvbmx5IHVzZWQgZm9yICJkb2Fjcm9zcyIgaGFuZGxp bmcgdG8KaWRlbnRpZnkgdGhlIGxvb3AgaXRlcmF0aW9uIHZhcmlhYmxlcyBkdXJpbmcgdGhl IGdpbXBsaWZpY2F0aW9uIG9mIE1PRElGWV9FWFBScwppbiBvbXBfZm9yIGJvZGllcy4KCmdj Yy9DaGFuZ2VMb2c6CgoJKiBnaW1wbGlmeS5jYyAoc3RydWN0IGdpbXBsaWZ5X29tcF9jdHgp OiBBZGQgZmllbGQgImluX29tcF9mb3JfYm9keSIgdG8KCXJlY29nbml6ZSB0aGUgZ2ltcGxp ZmljYXRpb24gc3RhdGUgZHVyaW5nIHdoaWNoIHRoZSBuZXcgd2FybmluZyBzaG91bGQKCWJl IGVtaXR0ZWQuIEFkZCBmaWVsZCAiaXNfZG9hY3Jvc3MiIHRvIGRpc3Rpbmd1aXNoIHRoZSBv cmlnaW5hbCB1c2Ugb2YKCSJsb29wX2l0ZXJfdmFyIiBmcm9tIGl0cyBuZXcgdXNlLgoJKG5l d19vbXBfY29udGV4dCk6IEluaXRpYWxpemUgbmV3IGdpbXBsaWZ5X29tcF9jdHggZmllbGRz LgoJKGdpbXBsaWZ5X21vZGlmeV9leHByKTogRW1pdCB3YXJuaW5nIGlmIGl0ZXIgdmFyIGlz IG1vZGlmaWVkLgoJKGdpbXBsaWZ5X29tcF9mb3IpOiBNYWtlIGluaXRpYWxpemF0aW9uIGFu ZCBmaWxsaW5nIG9mIGxvb3BfaXRlcl92YXIKCXZlY3RvciB1bmNvbmRpdGlvbmFsIGFuZCBh ZGp1c3QgbmV3IGdpbXBsaWZ5X29tcF9jdHggZmllbGRzIGJlZm9yZQoJZ2ltcGxpZnlpbmcg dGhlIG9tcF9mb3IgYm9keS4KCShnaW1wbGlmeV9vbXBfb3JkZXJlZCk6IENoZWNrIGZvciBk b19hY3Jvc3MgZmllbGQgaW4gYWRkaXRpb24gdG8KCWVtcHRpbmVzcyBjaGVjayBvbiBsb29w X2l0ZXJfdmFyIHZlY3RvciBzaW5jZSB0aGUgdmVjdG9yIGlzIG5vdyBhbHdheXMKCWJlaW5n IGZpbGxlZC4KCmdjYy90ZXN0c3VpdGUvQ2hhbmdlTG9nOgoKCSogZ2NjLmRnL3ZlY3QvcHI5 MjM0Ny5jOiBBZGp1c3QuCgkqIGdjYy50YXJnZXQvYWFyY2g2NC9zdmUvcHI5NjE5NS5jOiBB ZGp1c3QuCgkqIGMtYysrLWNvbW1vbi9nb21wL2l0ZXItdmFyLW1vZGlmaWNhdGlvbi5jOiBO ZXcgdGVzdC4KClNpZ25lZC1vZmYtYnk6IEZyZWRlcmlrIEhhcndhdGggIDxmcmVkZXJpa0Bo YXJ3YXRoLm5hbWU+Ci0tLQogZ2NjL2dpbXBsaWZ5LmNjICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHwgIDU0ICsrKysrKystLS0KIC4uLi9jLWMrKy1jb21tb24vZ29tcC9pdGVy LXZhci1tb2RpZmljYXRpb24uYyB8IDEwMCArKysrKysrKysrKysrKysrKysKIGdjYy90ZXN0 c3VpdGUvZ2NjLmRnL3ZlY3QvcHI5MjM0Ny5jICAgICAgICAgICB8ICAgMiArLQogLi4uL2dj Yy50YXJnZXQvYWFyY2g2NC9zdmUvcHI5NjE5NS5jICAgICAgICAgIHwgICAyICstCiA0IGZp bGVzIGNoYW5nZWQsIDE0MCBpbnNlcnRpb25zKCspLCAxOCBkZWxldGlvbnMoLSkKIGNyZWF0 ZSBtb2RlIDEwMDY0NCBnY2MvdGVzdHN1aXRlL2MtYysrLWNvbW1vbi9nb21wL2l0ZXItdmFy LW1vZGlmaWNhdGlvbi5jCgpkaWZmIC0tZ2l0IGEvZ2NjL2dpbXBsaWZ5LmNjIGIvZ2NjL2dp bXBsaWZ5LmNjCmluZGV4IDdmNzliM2NjN2U2Li5hNzRhZDk4N2NmNyAxMDA2NDQKLS0tIGEv Z2NjL2dpbXBsaWZ5LmNjCisrKyBiL2djYy9naW1wbGlmeS5jYwpAQCAtMjM1LDYgKzIzNSw4 IEBAIHN0cnVjdCBnaW1wbGlmeV9vbXBfY3R4CiAgIGJvb2wgb3JkZXJfY29uY3VycmVudDsK ICAgYm9vbCBoYXNfZGVwZW5kOwogICBib29sIGluX2Zvcl9leHByczsKKyAgYm9vbCBpbl9v bXBfZm9yX2JvZHk7CisgIGJvb2wgaXNfZG9hY3Jvc3M7CiAgIGludCBkZWZhdWx0bWFwWzVd OwogfTsKIApAQCAtNDU2LDYgKzQ1OCwxMCBAQCBuZXdfb21wX2NvbnRleHQgKGVudW0gb21w X3JlZ2lvbl90eXBlIHJlZ2lvbl90eXBlKQogICBjLT5wcml2YXRpemVkX3R5cGVzID0gbmV3 IGhhc2hfc2V0PHRyZWU+OwogICBjLT5sb2NhdGlvbiA9IGlucHV0X2xvY2F0aW9uOwogICBj LT5yZWdpb25fdHlwZSA9IHJlZ2lvbl90eXBlOworICBjLT5sb29wX2l0ZXJfdmFyLmNyZWF0 ZSAoMCk7CisgIGMtPmluX29tcF9mb3JfYm9keSA9IGZhbHNlOworICBjLT5pc19kb2Fjcm9z cyA9IGZhbHNlOworCiAgIGlmICgocmVnaW9uX3R5cGUgJiBPUlRfVEFTSykgPT0gMCkKICAg ICBjLT5kZWZhdWx0X2tpbmQgPSBPTVBfQ0xBVVNFX0RFRkFVTFRfU0hBUkVEOwogICBlbHNl CkBAIC02MzEyLDYgKzYzMTgsMTggQEAgZ2ltcGxpZnlfbW9kaWZ5X2V4cHIgKHRyZWUgKmV4 cHJfcCwgZ2ltcGxlX3NlcSAqcHJlX3AsIGdpbXBsZV9zZXEgKnBvc3RfcCwKICAgZ2NjX2Fz c2VydCAoVFJFRV9DT0RFICgqZXhwcl9wKSA9PSBNT0RJRllfRVhQUgogCSAgICAgIHx8IFRS RUVfQ09ERSAoKmV4cHJfcCkgPT0gSU5JVF9FWFBSKTsKIAorICBpZiAoZ2ltcGxpZnlfb21w X2N0eHAgJiYgZ2ltcGxpZnlfb21wX2N0eHAtPmluX29tcF9mb3JfYm9keSkKKyAgICB7Cisg ICAgICBzaXplX3QgbnVtX3ZhcnMgPSBnaW1wbGlmeV9vbXBfY3R4cC0+bG9vcF9pdGVyX3Zh ci5sZW5ndGggKCkgLyAyOworICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBudW1fdmFy czsgaSsrKQorCXsKKwkgIGlmICgqdG9fcCA9PSBnaW1wbGlmeV9vbXBfY3R4cC0+bG9vcF9p dGVyX3ZhclsyICogaSArIDFdKQorCSAgICB3YXJuaW5nX2F0IChpbnB1dF9sb2NhdGlvbiwg T1BUX1dvcGVubXAsCisJCQkiZm9yYmlkZGVuIG1vZGlmaWNhdGlvbiBvZiBpdGVyYXRpb24g dmFyaWFibGUgJXFFIGluICIKKwkJCSJPcGVuTVAgbG9vcCIsICp0b19wKTsKKwl9CisgICAg fQorCiAgIC8qIFRyeWluZyB0byBzaW1wbGlmeSBhIGNsb2JiZXIgdXNpbmcgbm9ybWFsIGxv Z2ljIGRvZXNuJ3Qgd29yaywKICAgICAgc28gaGFuZGxlIGl0IGhlcmUuICAqLwogICBpZiAo VFJFRV9DTE9CQkVSX1AgKCpmcm9tX3ApKQpAQCAtMTUzMzQsNiArMTUzNTIsOCBAQCBnaW1w bGlmeV9vbXBfZm9yICh0cmVlICpleHByX3AsIGdpbXBsZV9zZXEgKnByZV9wKQogCSAgICAg ID09IFRSRUVfVkVDX0xFTkdUSCAoT01QX0ZPUl9DT05EIChmb3Jfc3RtdCkpKTsKICAgZ2Nj X2Fzc2VydCAoVFJFRV9WRUNfTEVOR1RIIChPTVBfRk9SX0lOSVQgKGZvcl9zdG10KSkKIAkg ICAgICA9PSBUUkVFX1ZFQ19MRU5HVEggKE9NUF9GT1JfSU5DUiAoZm9yX3N0bXQpKSk7Cisg IGludCBsZW4gPSBUUkVFX1ZFQ19MRU5HVEggKE9NUF9GT1JfSU5JVCAoZm9yX3N0bXQpKTsK KyAgZ2ltcGxpZnlfb21wX2N0eHAtPmxvb3BfaXRlcl92YXIuY3JlYXRlIChsZW4gKiAyKTsK IAogICB0cmVlIGMgPSBvbXBfZmluZF9jbGF1c2UgKE9NUF9GT1JfQ0xBVVNFUyAoZm9yX3N0 bXQpLCBPTVBfQ0xBVVNFX09SREVSRUQpOwogICBib29sIGlzX2RvYWNyb3NzID0gZmFsc2U7 CkBAIC0xNTM0Miw4ICsxNTM2Miw2IEBAIGdpbXBsaWZ5X29tcF9mb3IgKHRyZWUgKmV4cHJf cCwgZ2ltcGxlX3NlcSAqcHJlX3ApCiAgICAgewogICAgICAgT01QX0NMQVVTRV9PUkRFUkVE X0RPQUNST1NTIChjKSA9IDE7CiAgICAgICBpc19kb2Fjcm9zcyA9IHRydWU7Ci0gICAgICBp bnQgbGVuID0gVFJFRV9WRUNfTEVOR1RIIChPTVBfRk9SX0lOSVQgKGZvcl9zdG10KSk7Ci0g ICAgICBnaW1wbGlmeV9vbXBfY3R4cC0+bG9vcF9pdGVyX3Zhci5jcmVhdGUgKGxlbiAqIDIp OwogICAgICAgZm9yICh0cmVlICpwYyA9ICZPTVBfRk9SX0NMQVVTRVMgKGZvcl9zdG10KTsg KnBjOyApCiAJaWYgKE9NUF9DTEFVU0VfQ09ERSAoKnBjKSA9PSBPTVBfQ0xBVVNFX0xJTkVB UikKIAkgIHsKQEAgLTE1MzgwLDIzICsxNTM5OCwyMiBAQCBnaW1wbGlmeV9vbXBfZm9yICh0 cmVlICpleHByX3AsIGdpbXBsZV9zZXEgKnByZV9wKQogICAgICAgZ2NjX2Fzc2VydCAoREVD TF9QIChkZWNsKSk7CiAgICAgICBnY2NfYXNzZXJ0IChJTlRFR1JBTF9UWVBFX1AgKFRSRUVf VFlQRSAoZGVjbCkpCiAJCSAgfHwgUE9JTlRFUl9UWVBFX1AgKFRSRUVfVFlQRSAoZGVjbCkp KTsKLSAgICAgIGlmIChpc19kb2Fjcm9zcykKKworICAgICAgaWYgKFRSRUVfQ09ERSAoZm9y X3N0bXQpID09IE9NUF9GT1IgJiYgT01QX0ZPUl9PUklHX0RFQ0xTIChmb3Jfc3RtdCkpCiAJ ewotCSAgaWYgKFRSRUVfQ09ERSAoZm9yX3N0bXQpID09IE9NUF9GT1IgJiYgT01QX0ZPUl9P UklHX0RFQ0xTIChmb3Jfc3RtdCkpCisJICB0cmVlIG9yaWdfZGVjbCA9IFRSRUVfVkVDX0VM VCAoT01QX0ZPUl9PUklHX0RFQ0xTIChmb3Jfc3RtdCksIGkpOworCSAgaWYgKFRSRUVfQ09E RSAob3JpZ19kZWNsKSA9PSBUUkVFX0xJU1QpCiAJICAgIHsKLQkgICAgICB0cmVlIG9yaWdf ZGVjbCA9IFRSRUVfVkVDX0VMVCAoT01QX0ZPUl9PUklHX0RFQ0xTIChmb3Jfc3RtdCksIGkp OwotCSAgICAgIGlmIChUUkVFX0NPREUgKG9yaWdfZGVjbCkgPT0gVFJFRV9MSVNUKQotCQl7 Ci0JCSAgb3JpZ19kZWNsID0gVFJFRV9QVVJQT1NFIChvcmlnX2RlY2wpOwotCQkgIGlmICgh b3JpZ19kZWNsKQotCQkgICAgb3JpZ19kZWNsID0gZGVjbDsKLQkJfQotCSAgICAgIGdpbXBs aWZ5X29tcF9jdHhwLT5sb29wX2l0ZXJfdmFyLnF1aWNrX3B1c2ggKG9yaWdfZGVjbCk7CisJ ICAgICAgb3JpZ19kZWNsID0gVFJFRV9QVVJQT1NFIChvcmlnX2RlY2wpOworCSAgICAgIGlm ICghb3JpZ19kZWNsKQorCQlvcmlnX2RlY2wgPSBkZWNsOwogCSAgICB9Ci0JICBlbHNlCi0J ICAgIGdpbXBsaWZ5X29tcF9jdHhwLT5sb29wX2l0ZXJfdmFyLnF1aWNrX3B1c2ggKGRlY2wp OwotCSAgZ2ltcGxpZnlfb21wX2N0eHAtPmxvb3BfaXRlcl92YXIucXVpY2tfcHVzaCAoZGVj bCk7CisJICBnaW1wbGlmeV9vbXBfY3R4cC0+bG9vcF9pdGVyX3Zhci5xdWlja19wdXNoIChv cmlnX2RlY2wpOwogCX0KKyAgICAgIGVsc2UKKwlnaW1wbGlmeV9vbXBfY3R4cC0+bG9vcF9p dGVyX3Zhci5xdWlja19wdXNoIChkZWNsKTsKKyAgICAgIGdpbXBsaWZ5X29tcF9jdHhwLT5s b29wX2l0ZXJfdmFyLnF1aWNrX3B1c2ggKGRlY2wpOworCiAKICAgICAgIGlmIChmb3Jfc3Rt dCA9PSBvcmlnX2Zvcl9zdG10KQogCXsKQEAgLTE1ODE4LDkgKzE1ODM1LDEzIEBAIGdpbXBs aWZ5X29tcF9mb3IgKHRyZWUgKmV4cHJfcCwgZ2ltcGxlX3NlcSAqcHJlX3ApCiAJICBUUkVF X1NJREVfRUZGRUNUUyAoT01QX0ZPUl9CT0RZIChvcmlnX2Zvcl9zdG10KSkgPSAxOwogCX0K ICAgICB9CisgIGdpbXBsaWZ5X29tcF9jdHhwLT5pbl9vbXBfZm9yX2JvZHkgPSB0cnVlOwor ICBnaW1wbGlmeV9vbXBfY3R4cC0+aXNfZG9hY3Jvc3MgPSBpc19kb2Fjcm9zczsKIAogICBn aW1wbGUgKmcgPSBnaW1wbGlmeV9hbmRfcmV0dXJuX2ZpcnN0IChPTVBfRk9SX0JPRFkgKG9y aWdfZm9yX3N0bXQpLAogCQkJCQkgJmZvcl9ib2R5KTsKKyAgZ2ltcGxpZnlfb21wX2N0eHAt PmluX29tcF9mb3JfYm9keSA9IGZhbHNlOworICBnaW1wbGlmeV9vbXBfY3R4cC0+aXNfZG9h Y3Jvc3MgPSBmYWxzZTsKIAogICBpZiAoVFJFRV9DT0RFIChvcmlnX2Zvcl9zdG10KSA9PSBP TVBfVEFTS0xPT1AKICAgICAgIHx8IChsb29wX3AgJiYgb3JpZ19mb3Jfc3RtdCA9PSBmb3Jf c3RtdCkpCkBAIC0xNzQzMCw3ICsxNzQ1MSw4IEBAIGdpbXBsaWZ5X29tcF9vcmRlcmVkICh0 cmVlIGV4cHIsIGdpbXBsZV9zZXEgYm9keSkKICAgICB7CiAgICAgICBmb3IgKGMgPSBPTVBf T1JERVJFRF9DTEFVU0VTIChleHByKTsgYzsgYyA9IE9NUF9DTEFVU0VfQ0hBSU4gKGMpKQog CWlmIChPTVBfQ0xBVVNFX0NPREUgKGMpID09IE9NUF9DTEFVU0VfRE9BQ1JPU1MKLQkgICAg JiYgZ2ltcGxpZnlfb21wX2N0eHAtPmxvb3BfaXRlcl92YXIuaXNfZW1wdHkgKCkpCisJICAg ICYmICghZ2ltcGxpZnlfb21wX2N0eHAtPmlzX2RvYWNyb3NzCisJCXx8IGdpbXBsaWZ5X29t cF9jdHhwLT5sb29wX2l0ZXJfdmFyLmlzX2VtcHR5ICgpKSkKIAkgIHsKIAkgICAgZXJyb3Jf YXQgKE9NUF9DTEFVU0VfTE9DQVRJT04gKGMpLAogCQkgICAgICAiJTxvcmRlcmVkJT4gY29u c3RydWN0IHdpdGggJXFzIGNsYXVzZSBtdXN0IGJlICIKZGlmZiAtLWdpdCBhL2djYy90ZXN0 c3VpdGUvYy1jKystY29tbW9uL2dvbXAvaXRlci12YXItbW9kaWZpY2F0aW9uLmMgYi9nY2Mv dGVzdHN1aXRlL2MtYysrLWNvbW1vbi9nb21wL2l0ZXItdmFyLW1vZGlmaWNhdGlvbi5jCm5l dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi41NjYyZmNlMmE2ZgotLS0g L2Rldi9udWxsCisrKyBiL2djYy90ZXN0c3VpdGUvYy1jKystY29tbW9uL2dvbXAvaXRlci12 YXItbW9kaWZpY2F0aW9uLmMKQEAgLTAsMCArMSwxMDAgQEAKK2V4dGVybiBpbnQgYVsxMDAw XTsKKworaW50IG1haW4gKCkKK3sKKyNwcmFnbWEgb21wIGZvcgorICBmb3IgKGludCBpID0g MDsgaSA8IDEwMDA7IGkrKykKKyAgICB7CisgICAgICBpZiAoaSAlIDIgID09IDApCisJaSsr OyAvKiB7IGRnLXdhcm5pbmcge2ZvcmJpZGRlbiBtb2RpZmljYXRpb24gb2YgaXRlcmF0aW9u IHZhcmlhYmxlIC5pLiBpbiBPcGVuTVAgbG9vcH0gfSAqLworICAgIH0KKworICAjcHJhZ21h IG9tcCBmb3IKKyAgZm9yIChpbnQgaSA9IDA7IGkgPCAxMDAwOyBpKyspCisgICAgeworICAg ICAgaWYgKGkgJSAyICA9PSAwKTsKKyAgICAgIGVsc2UKKwlpKys7IC8qIHsgZGctd2Fybmlu ZyB7Zm9yYmlkZGVuIG1vZGlmaWNhdGlvbiBvZiBpdGVyYXRpb24gdmFyaWFibGUgLmkuIGlu IE9wZW5NUCBsb29wfSB9ICovCisgICAgfQorCisjcHJhZ21hIG9tcCBmb3IKKyAgZm9yIChp bnQgaSA9IDA7IGkgPCAxMDAwOyBpKyspCisgICAgeworCWkgPSAwOyAvKiB7IGRnLXdhcm5p bmcge2ZvcmJpZGRlbiBtb2RpZmljYXRpb24gb2YgaXRlcmF0aW9uIHZhcmlhYmxlIC5pLiBp biBPcGVuTVAgbG9vcH0gfSAqLworICAgIH0KKworI3ByYWdtYSBvbXAgZm9yCisgIGZvciAo aW50IGkgPSAwOyBpICE9IDEwMDA7IGkrKykKKyAgICB7CisJaSA9IDA7IC8qIHsgZGctd2Fy bmluZyB7Zm9yYmlkZGVuIG1vZGlmaWNhdGlvbiBvZiBpdGVyYXRpb24gdmFyaWFibGUgLmku IGluIE9wZW5NUCBsb29wfSB9ICovCisgICAgfQorCisjcHJhZ21hIG9tcCBmb3IKKyAgZm9y IChpbnQgaSA9IDEwMDA7IGkgPiAwOyBpLS0pCisgICAgeworCWkgPSAwOyAvKiB7IGRnLXdh cm5pbmcge2ZvcmJpZGRlbiBtb2RpZmljYXRpb24gb2YgaXRlcmF0aW9uIHZhcmlhYmxlIC5p LiBpbiBPcGVuTVAgbG9vcH0gfSAqLworICAgIH0KKworI3ByYWdtYSBvbXAgZm9yCisgIGZv ciAoaW50ICpwID0gKGludCopJmE7IHAgPCBhICsgMTAwMDsgcCsrKQorICAgIHsKKyAgICAg IHAgPSAoaW50KikmYTsgLyogeyBkZy13YXJuaW5nIHtmb3JiaWRkZW4gbW9kaWZpY2F0aW9u IG9mIGl0ZXJhdGlvbiB2YXJpYWJsZSAucC4gaW4gT3Blbk1QIGxvb3B9IH0gKi8KKyAgICB9 CisKKyNwcmFnbWEgb21wIGZvcgorICBmb3IgKGludCAqcCA9IChpbnQqKSZhOyBwIDwgYSAr IDEwMDA7IHArKykKKyAgICB7CisJKnAgPSAwOworICAgIH0KKworI3ByYWdtYSBvbXAgcGFy YWxsZWwgZm9yIGNvbGxhcHNlKDMpCisgIGZvciAoaW50IGkgPSAwOyBpIDwgMTAwMDsgaSsr KQorICAgICAgZm9yIChpbnQgaiA9IDA7IGogPCAxMDAwOyBqKyspCisJZm9yIChpbnQgayA9 IDA7IGsgPCAxMDAwOyBrKyspCisKKyAgICB7CisJaisrOyAvKiB7IGRnLXdhcm5pbmcge2Zv cmJpZGRlbiBtb2RpZmljYXRpb24gb2YgaXRlcmF0aW9uIHZhcmlhYmxlIC5qLiBpbiBPcGVu TVAgbG9vcH0gfSAqLworICAgIH0KKworI3ByYWdtYSBvbXAgdGFyZ2V0IHRlYW1zIGRpc3Ry aWJ1dGUgcGFyYWxsZWwgZm9yIGNvbGxhcHNlKDMpCisgIGZvciAoaW50IGkgPSAwOyBpIDwg MTAwMDsgaSsrKQorICAgICAgZm9yIChpbnQgaiA9IDA7IGogPCAxMDAwOyBqKyspCisJZm9y IChpbnQgayA9IDA7IGsgPCAxMDAwOyBrKyspCisKKyAgICB7CisJaysrOyAvKiB7IGRnLXdh cm5pbmcge2ZvcmJpZGRlbiBtb2RpZmljYXRpb24gb2YgaXRlcmF0aW9uIHZhcmlhYmxlIC5r LiBpbiBPcGVuTVAgbG9vcH0gfSAqLworICAgIH0KKworI3ByYWdtYSBvbXAgcGFyYWxsZWwg Zm9yIGNvbGxhcHNlKDIpCisgIGZvciAoaW50IGkgPSAwOyBpIDwgMTAwMDsgaSsrKQorICAg ICAgZm9yIChpbnQgaiA9IDA7IGogPCAxMDAwOyBqKyspCisJZm9yIChpbnQgayA9IDA7IGsg PCAxMDAwOyBrKyspCisKKyAgICB7CisJaisrOyAvKiB7IGRnLXdhcm5pbmcge2ZvcmJpZGRl biBtb2RpZmljYXRpb24gb2YgaXRlcmF0aW9uIHZhcmlhYmxlIC5qLiBpbiBPcGVuTVAgbG9v cH0gfSAqLworICAgIH0KKworI3ByYWdtYSBvbXAgdGFyZ2V0IHRlYW1zIGRpc3RyaWJ1dGUg cGFyYWxsZWwgZm9yIGNvbGxhcHNlKDIpCisgIGZvciAoaW50IGkgPSAwOyBpIDwgMTAwMDsg aSsrKQorICAgICAgZm9yIChpbnQgaiA9IDA7IGogPCAxMDAwOyBqKyspCisJZm9yIChpbnQg ayA9IDA7IGsgPCAxMDAwOyBrKyspCisKKyAgICB7CisJaysrOyAvKiBObyBlcnJvciBzaW5j ZSB0aGlyZCBsb29wIGlzIG5vdCBpbmNsdWRlZCBpbiBjb2xsYXBzZWQgbG9vcC1uZXN0LiAq LworICAgIH0KKworICAvKiBPbmx5IG1vZGlmaWNhdGlvbnMgaW4gdGhlIGJvZHkgc2hvdWxk IGJlIHJlcG9ydGVkLiAgRG8gbm90IHdhcm4gYWJvdXQKKyAgICAgYXNzaWdubWVudHMgdG8g aSxrIGluIHRoZSBwcmUtYm9keS4gKi8KKyAgaW50IGkgPSAwOworICBpbnQgayA9IDA7Cisj cHJhZ21hIG9tcCB0YXJnZXQgdGVhbXMgZGlzdHJpYnV0ZSBwYXJhbGxlbCBmb3IgY29sbGFw c2UoMykKKyAgZm9yIChpID0gMTsgaSA8IDEwMDA7IGkrKykKKyAgICAgIGZvciAoaW50IGog PSAwOyBqIDwgMTAwMDsgaisrKQorCWZvciAoayA9IDE7IGsgPCAxMDAwOyBrKyspCisKKyAg ICB7CisJaisrOyAvKiB7IGRnLXdhcm5pbmcge2ZvcmJpZGRlbiBtb2RpZmljYXRpb24gb2Yg aXRlcmF0aW9uIHZhcmlhYmxlIC5qLiBpbiBPcGVuTVAgbG9vcH0gfSAqLworICAgIH0KKwor ICByZXR1cm4gMDsKK30KZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2NjLmRnL3ZlY3Qv cHI5MjM0Ny5jIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MuZGcvdmVjdC9wcjkyMzQ3LmMKaW5kZXgg Zjc1YjI1OTZhMjYuLjJlMWZjMDNiMGMzIDEwMDY0NAotLS0gYS9nY2MvdGVzdHN1aXRlL2dj Yy5kZy92ZWN0L3ByOTIzNDcuYworKysgYi9nY2MvdGVzdHN1aXRlL2djYy5kZy92ZWN0L3By OTIzNDcuYwpAQCAtMTQsNSArMTQsNSBAQCBxaCAoaW50IG9oKQogewogI3ByYWdtYSBvbXAg c2ltZAogICBmb3IgKGJ5ID0gMDsgYnkgPCBvaDsgKytieSkKLSAgICBieSA9IHpwIChieSk7 CisgICAgYnkgPSB6cCAoYnkpOyAvKiB7IGRnLXdhcm5pbmcge2ZvcmJpZGRlbiBtb2RpZmlj YXRpb24gb2YgaXRlcmF0aW9uIHZhcmlhYmxlIC5ieS4gaW4gT3Blbk1QIGxvb3B9IH0gKi8K IH0KZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9hYXJjaDY0L3N2ZS9w cjk2MTk1LmMgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvYWFyY2g2NC9zdmUvcHI5NjE5 NS5jCmluZGV4IGQ4NzllZmRhNWM4Li4zZWY0NmUyMzZlOCAxMDA2NDQKLS0tIGEvZ2NjL3Rl c3RzdWl0ZS9nY2MudGFyZ2V0L2FhcmNoNjQvc3ZlL3ByOTYxOTUuYworKysgYi9nY2MvdGVz dHN1aXRlL2djYy50YXJnZXQvYWFyY2g2NC9zdmUvcHI5NjE5NS5jCkBAIC0xMiw2ICsxMiw2 IEBAIHFoIChpbnQgb2gpCiB7CiAjcHJhZ21hIG9tcCBzaW1kCiAgIGZvciAoYnkgPSAwOyBi eSA8IG9oOyArK2J5KQotICAgIGJ5ID0genAgKGJ5KTsKKyAgICBieSA9IHpwIChieSk7IC8q IHsgZGctd2FybmluZyB7Zm9yYmlkZGVuIG1vZGlmaWNhdGlvbiBvZiBpdGVyYXRpb24gdmFy aWFibGUgLmJ5LiBpbiBPcGVuTVAgbG9vcH0gfSAqLwogfQogCi0tIAoyLjM0LjEKCg== --------------qIJpPfs0MKwmmZhyEBFZ5oJT--