From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtp.smtpout.orange.fr (smtp02.smtpout.orange.fr [80.12.242.124]) by sourceware.org (Postfix) with ESMTPS id 377863858D20 for ; Mon, 14 Mar 2022 18:28:11 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 377863858D20 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=orange.fr Authentication-Results: sourceware.org; spf=none smtp.mailfrom=orange.fr Received: from [192.168.1.17] ([86.253.179.215]) by smtp.orange.fr with ESMTPA id TpQInAl9PeKJJTpQNn2ve0; Mon, 14 Mar 2022 19:28:09 +0100 X-ME-Helo: [192.168.1.17] X-ME-Auth: MDU4MTIxYWM4YWI0ZGE4ZTUwZWZmNTExZmI2ZWZlMThkM2ZhYiE5OWRkOGM= X-ME-Date: Mon, 14 Mar 2022 19:28:09 +0100 X-ME-IP: 86.253.179.215 Content-Type: multipart/mixed; boundary="------------9eqZa7B589O66ZoFs0aOgBSX" Message-ID: <4cce238d-5fdc-4a94-908b-9a1399193493@orange.fr> Date: Mon, 14 Mar 2022 19:28:02 +0100 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.6.2 From: Mikael Morin Subject: [PATCH] fortran: Separate associate character lengths earlier [PR104570] To: gfortran , gcc-patches Content-Language: en-US X-Spam-Status: No, score=-11.6 required=5.0 tests=BAYES_00, FREEMAIL_FROM, GIT_PATCH_0, KAM_DMARC_STATUS, KAM_LAZY_DOMAIN_SECURITY, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2, SPF_HELO_NONE, SPF_NONE, TXREP, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on server2.sourceware.org X-BeenThere: fortran@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Fortran mailing list List-Unsubscribe: , List-Archive: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 14 Mar 2022 18:28:13 -0000 This is a multi-part message in MIME format. --------------9eqZa7B589O66ZoFs0aOgBSX Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Hello, this workarounds the regression I introduced with the fix for pr104228. The problem comes from the evaluation of character length for the associate target (y) in the testcase. The expression is non-scalar which is not supported at that point, as no scalarization setup is made there. My initial direction to fix this was trying to modify the evaluation of expressions so that the rank was ignored in the context of character length evaluation. That’s the patch I attached to the PR. The patch I’m proposing here tries instead to avoid the need to evaluate character length through sharing of gfc_charlen between symbols and expressions. I slightly prefer the latter direction, though I’m not sure it’s more robust. At least it passes regression testing, which proves some basic level of goodness. OK for master? Even if PR104570 is a 12 regression only, the PR104228 fix is targeted at all the open branches so this one as well. OK for 11/10/9? --------------9eqZa7B589O66ZoFs0aOgBSX Content-Type: text/x-patch; charset=UTF-8; name="0001-fortran-Separate-associate-character-lengths-earlier.patch" Content-Disposition: attachment; filename*0="0001-fortran-Separate-associate-character-lengths-earlier.pa"; filename*1="tch" Content-Transfer-Encoding: base64 RnJvbSBhZjExYTkwYzczMGE1N2JlODZiOTQzMzFmMzFhNjExYjMxMjc2YjgzIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBNaWthZWwgTW9yaW4gPG1pa2FlbEBnY2MuZ251Lm9y Zz4KRGF0ZTogU3VuLCAxMyBNYXIgMjAyMiAyMjoyMjo1NSArMDEwMApTdWJqZWN0OiBbUEFU Q0hdIGZvcnRyYW46IFNlcGFyYXRlIGFzc29jaWF0ZSBjaGFyYWN0ZXIgbGVuZ3RocyBlYXJs aWVyCiBbUFIxMDQ1NzBdCk1JTUUtVmVyc2lvbjogMS4wCkNvbnRlbnQtVHlwZTogdGV4dC9w bGFpbjsgY2hhcnNldD1VVEYtOApDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0CgpU aGlzIGNoYW5nZSB3b3JrYXJvdW5kcyBhbiBJQ0UgaW4gdGhlIGV2YWx1YXRpb24gb2YgdGhl IGNoYXJhY3RlciBsZW5ndGggb2YgYW4KYXJyYXkgZXhwcmVzc2lvbiByZWZlcmVuY2luZyBh biBhc3NvY2lhdGUgdmFyaWFibGU7IHRoZSBjb2RlIGlzIG5vdCBwcmVwYXJlZAp0byBzZWUg YSBub24tc2NhbGFyIGV4cHJlc3Npb24gYXMgaXQgZG9lc27igJl0IGluaXRpYWxpemUgdGhl IHNjYWxhcml6ZXIuCgpCZWZvcmUgdGhpcyBjaGFuZ2UsIGFzc29jaWF0ZSBsZW5ndGggc3lt Ym9scyBnZXQgYSBuZXcgZ2ZjX2NoYXJsZW4gYXQgcmVzb2x1dGlvbgpzdGFnZSB0byB1bnNo YXJlIHRoZW0gZnJvbSB0aGUgYXNzb2NpYXRlIGV4cHJlc3Npb24sIHNvIHRoYXQgYXQgdHJh bnNsYXRpb24Kc3RhZ2UgaXQgaXMgYSBkZWNsIHNwZWNpZmljIHRvIHRoZSBhc3NvY2lhdGUg c3ltYm9sIHRoYXQgaXMgaW5pdGlhbGl6ZWQsIG5vdCB0aGUKZGVjbCBvZiBzb21lIG90aGVy IHN5bWJvbC4gIFRoaXMgcmVpbml0aWFsaXphdGlvbiBvZiBnZmNfY2hhcmxlbiBoYXBwZW5z IGFmdGVyCmV4cHJlc3Npb25zIHJlZmVyZW5jaW5nIHRoZSBhc3NvY2lhdGUgc3ltYm9sIGhh dmUgYmVlbiBwYXJzZWQsIHNvIHRoYXQgdGhvc2UKZXhwcmVzc2lvbnMgcmV0YWluIHRoZSBv cmlnaW5hbCBnZmNfY2hhcmxlbiB0aGV5IGhhdmUgY29waWVkIGZyb20gdGhlIHN5bWJvbC4K QXQgdHJhbnNsYXRpb24gc3RhZ2UsIHRoZSBnZmNfY2hhcmxlbiBmb3IgdGhlIGFzc29jaWF0 ZSBzeW1ib2wgaXMgc2V0dXAgd2l0aCB0aGUKZGVjbCBob2xkaW5nIHRoZSBhY3R1YWwgbGVu Z3RoIHZhbHVlLCBidXQgdGhlIGV4cHJlc3Npb25zIGhhdmUgcmV0YWluZWQgdGhlCm9yaWdp bmFsIGdmY19jaGFybGVuIHdpdGhvdXQgYW55IGRlY2wuICBTbyB0aGV5IG5lZWQgdG8gZXZh bHVhdGUgdGhlIGNoYXJhY3RlcgpsZW5ndGgsIGFuZCB0aGlzIGlzIHdoZXJlIHRoZSBJQ0Ug aGFwcGVucy4KClRoaXMgY2hhbmdlIG1vdmVzIHRoZSByZWluaXRpYWxpemF0aW9uIG9mIGdm Y19jaGFybGVuIGVhcmxpZXIgYXQgcGFyc2luZyBzdGFnZSwKc28gdGhhdCBhdCByZXNvbHV0 aW9uIHN0YWdlIHRoZSBnZmNfY2hhcmxlbiBjYW4gYmUgcmV0YWluZWQgYXMgaXTigJlzIGFs cmVhZHkgbm90CnNoYXJlZCB3aXRoIGFueSBvdGhlciBzeW1ib2wsIGFuZCB0aGUgZXhwcmVz c2lvbnMgd2hpY2ggbm93IHNoYXJlIHRoZWlyCmdmY19jaGFybGVuIHdpdGggdGhlIHN5bWJv bCBhcmUgYXV0b21hdGljYWxseSB1cGRhdGVkIHdoZW4gdGhlIGxlbmd0aCBkZWNsIGlzCnNl dHVwIGF0IHRyYW5zbGF0aW9uIHN0YWdlLiAgVGhlcmUgaXMgbm8gbmVlZCBhbnkgbW9yZSB0 byBldmFsdWF0ZSB0aGUgY2hhcmFjdGVyCmxlbmd0aCBhcyBpdCBoYXMgYWxsIHRoZSByZXF1 aXJlZCBpbmZvcm1hdGlvbiwgYW5kIHRoZSBJQ0UgZG9lc27igJl0IGhhcHBlbi4KClRoZSBm aXJzdCByZXNvbHZlLmNjIGh1bmsgaXMgbmVjZXNzYXJ5IHRvIGF2b2lkIHJlZ3Jlc3Npbmcg b24gdGhlCmFzc29jaWF0ZV8zNS5mOTAgdGVzdGNhc2UuCgoJUFIgZm9ydHJhbi8xMDQyMjgK CVBSIGZvcnRyYW4vMTA0NTcwCgpnY2MvZm9ydHJhbi9DaGFuZ2VMb2c6CgoJKiBwYXJzZS5j YyAocGFyc2VfYXNzb2NpYXRlKTogVXNlIGEgbmV3IGRpc3RpbmN0IGdmY19jaGFybGVuIGlm IHRoZQoJY29waWVkIHR5cGUgaGFzIG9uZSB3aG9zZSBsZW5ndGggaXMgbm90IGtub3duIHRv IGJlIGNvbnN0YW50LgoJKiByZXNvbHZlLmNjIChyZXNvbHZlX2Fzc29jX3Zhcik6IFJlc2V0 IGNoYXJsZW4gaWYgaXTigJlzIHNoYXJlZCB3aXRoCgl0aGUgYXNzb2NpYXRlIHRhcmdldCBy ZWdhcmRsZXNzIG9mIHRoZSBleHByZXNzaW9uIHR5cGUuCglEb27igJl0IHJlaW5pdGlhbGl6 ZSBjaGFybGVuIGlmIGl04oCZcyBkZWZlcnJlZC4KCmdjYy90ZXN0c3VpdGUvQ2hhbmdlTG9n OgoKCSogZ2ZvcnRyYW4uZGcvYXNzb2NpYXRlXzU4LmY5MDogTmV3IHRlc3QuCi0tLQogZ2Nj L2ZvcnRyYW4vcGFyc2UuY2MgICAgICAgICAgICAgICAgICAgICAgIHwgMTggKysrKysrKysr KysrKysrKysrCiBnY2MvZm9ydHJhbi9yZXNvbHZlLmNjICAgICAgICAgICAgICAgICAgICAg fCAgOSArKysrKystLS0KIGdjYy90ZXN0c3VpdGUvZ2ZvcnRyYW4uZGcvYXNzb2NpYXRlXzU4 LmY5MCB8IDIxICsrKysrKysrKysrKysrKysrKysrKwogMyBmaWxlcyBjaGFuZ2VkLCA0NSBp bnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IGdjYy90 ZXN0c3VpdGUvZ2ZvcnRyYW4uZGcvYXNzb2NpYXRlXzU4LmY5MAoKZGlmZiAtLWdpdCBhL2dj Yy9mb3J0cmFuL3BhcnNlLmNjIGIvZ2NjL2ZvcnRyYW4vcGFyc2UuY2MKaW5kZXggZGI5MTgy OTFiMTAuLmU2ZTkxNWQyYTVlIDEwMDY0NAotLS0gYS9nY2MvZm9ydHJhbi9wYXJzZS5jYwor KysgYi9nY2MvZm9ydHJhbi9wYXJzZS5jYwpAQCAtNDkyNCw2ICs0OTI0LDI0IEBAIHBhcnNl X2Fzc29jaWF0ZSAodm9pZCkKIAkgaW4gY2FzZSBvZiBhc3NvY2lhdGlvbiB0byBhIGRlcml2 ZWQtdHlwZS4gICovCiAgICAgICBzeW0tPnRzID0gYS0+dGFyZ2V0LT50czsKIAorICAgICAg LyogRG9u4oCZdCBzaGFyZSB0aGUgY2hhcmFjdGVyIGxlbmd0aCBpbmZvcm1hdGlvbiBiZXR3 ZWVuIGFzc29jaWF0ZQorCSB2YXJpYWJsZSBhbmQgdGFyZ2V0IGlmIHRoZSBsZW5ndGggaXMg bm90IGEgY29tcGlsZS10aW1lIGNvbnN0YW50LAorCSBhcyB3ZSBkb27igJl0IHdhbnQgdG8g dG91Y2ggc29tZSBvdGhlciBjaGFyYWN0ZXIgbGVuZ3RoIHZhcmlhYmxlIHdoZW4KKwkgd2Ug dHJ5IHRvIGluaXRpYWxpemUgdGhlIGFzc29jaWF0ZSB2YXJpYWJsZeKAmXMgY2hhcmFjdGVy IGxlbmd0aAorCSB2YXJpYWJsZS4KKwkgV2UgZG8gaXQgaGVyZSByYXRoZXIgdGhhbiBsYXRl ciBzbyB0aGF0IGV4cHJlc3Npb25zIHJlZmVyZW5jaW5nIHRoZQorCSBhc3NvY2lhdGUgdmFy aWFibGUgd2lsbCBhdXRvbWF0aWNhbGx5IGhhdmUgdGhlIGNvcnJlY3RseSBzZXR1cCBsZW5n dGgKKwkgaW5mb3JtYXRpb24uICBJZiB3ZSBkaWQgaXQgYXQgcmVzb2x1dGlvbiBzdGFnZSB0 aGUgZXhwcmVzc2lvbnMgd291bGQKKwkgdXNlIHRoZSBvcmlnaW5hbCBsZW5ndGggaW5mb3Jt YXRpb24sIGFuZCB0aGUgdmFyaWFibGUgYSBuZXcgZGlmZmVyZW50CisJIG9uZSwgYnV0IG9u bHkgdGhlIGxhdHRlciBvbmUgd291bGQgYmUgY29ycmVjdGx5IGluaXRpYWxpemVkIGF0CisJ IHRyYW5zbGF0aW9uIHN0YWdlLCBhbmQgdGhlIGZvcm1lciBvbmUgd291bGQgbmVlZCBzb21l IGFkZGl0aW9uYWwgc2V0dXAKKwkgdGhlcmUuICAqLworICAgICAgaWYgKHN5bS0+dHMudHlw ZSA9PSBCVF9DSEFSQUNURVIKKwkgICYmIHN5bS0+dHMudS5jbAorCSAgJiYgIShzeW0tPnRz LnUuY2wtPmxlbmd0aAorCSAgICAgICAmJiBzeW0tPnRzLnUuY2wtPmxlbmd0aC0+ZXhwcl90 eXBlID09IEVYUFJfQ09OU1RBTlQpKQorCXN5bS0+dHMudS5jbCA9IGdmY19uZXdfY2hhcmxl biAoZ2ZjX2N1cnJlbnRfbnMsIE5VTEwpOworCiAgICAgICAvKiBDaGVjayBpZiB0aGUgdGFy Z2V0IGV4cHJlc3Npb24gaXMgYXJyYXkgdmFsdWVkLiAgVGhpcyBjYW5ub3QgYWx3YXlzCiAJ IGJlIGRvbmUgYnkgbG9va2luZyBhdCB0YXJnZXQucmFuaywgYmVjYXVzZSB0aGF0IG1pZ2h0 IG5vdCBoYXZlIGJlZW4KIAkgc2V0IHlldC4gIFRoZXJlZm9yZSB0cmF2ZXJzZSB0aGUgY2hh aW4gb2YgcmVmcywgbG9va2luZyBmb3IgdGhlIGxhc3QKZGlmZiAtLWdpdCBhL2djYy9mb3J0 cmFuL3Jlc29sdmUuY2MgYi9nY2MvZm9ydHJhbi9yZXNvbHZlLmNjCmluZGV4IDI2NmU0MWUy NWIxLi4zZjU5NDQ4NjQ3ZSAxMDA2NDQKLS0tIGEvZ2NjL2ZvcnRyYW4vcmVzb2x2ZS5jYwor KysgYi9nY2MvZm9ydHJhbi9yZXNvbHZlLmNjCkBAIC05MjI2LDcgKzkyMjYsNyBAQCByZXNv bHZlX2Fzc29jX3ZhciAoZ2ZjX3N5bWJvbCogc3ltLCBib29sIHJlc29sdmVfdGFyZ2V0KQog ICAgICAgaWYgKCFzeW0tPnRzLnUuY2wpCiAJc3ltLT50cy51LmNsID0gdGFyZ2V0LT50cy51 LmNsOwogCi0gICAgICBpZiAoc3ltLT50cy5kZWZlcnJlZCAmJiB0YXJnZXQtPmV4cHJfdHlw ZSA9PSBFWFBSX1ZBUklBQkxFCisgICAgICBpZiAoc3ltLT50cy5kZWZlcnJlZAogCSAgJiYg c3ltLT50cy51LmNsID09IHRhcmdldC0+dHMudS5jbCkKIAl7CiAJICBzeW0tPnRzLnUuY2wg PSBnZmNfbmV3X2NoYXJsZW4gKHN5bS0+bnMsIE5VTEwpOwpAQCAtOTI0NSw4ICs5MjQ1LDEx IEBAIHJlc29sdmVfYXNzb2NfdmFyIChnZmNfc3ltYm9sKiBzeW0sIGJvb2wgcmVzb2x2ZV90 YXJnZXQpCiAJCXx8IHN5bS0+dHMudS5jbC0+bGVuZ3RoLT5leHByX3R5cGUgIT0gRVhQUl9D T05TVEFOVCkKIAkJJiYgdGFyZ2V0LT5leHByX3R5cGUgIT0gRVhQUl9WQVJJQUJMRSkKIAl7 Ci0JICBzeW0tPnRzLnUuY2wgPSBnZmNfbmV3X2NoYXJsZW4gKHN5bS0+bnMsIE5VTEwpOwot CSAgc3ltLT50cy5kZWZlcnJlZCA9IDE7CisJICBpZiAoIXN5bS0+dHMuZGVmZXJyZWQpCisJ ICAgIHsKKwkgICAgICBzeW0tPnRzLnUuY2wgPSBnZmNfbmV3X2NoYXJsZW4gKHN5bS0+bnMs IE5VTEwpOworCSAgICAgIHN5bS0+dHMuZGVmZXJyZWQgPSAxOworCSAgICB9CiAKIAkgIC8q IFRoaXMgaXMgcmVzZXQgaW4gdHJhbnMtc3RtdC5jYyBhZnRlciB0aGUgYXNzaWdubWVudAog CSAgICAgb2YgdGhlIHRhcmdldCBleHByZXNzaW9uIHRvIHRoZSBhc3NvY2lhdGUgbmFtZS4g ICovCmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2dmb3J0cmFuLmRnL2Fzc29jaWF0ZV81 OC5mOTAgYi9nY2MvdGVzdHN1aXRlL2dmb3J0cmFuLmRnL2Fzc29jaWF0ZV81OC5mOTAKbmV3 IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjljMjRmMzVjMGQ4Ci0tLSAv ZGV2L251bGwKKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nZm9ydHJhbi5kZy9hc3NvY2lhdGVfNTgu ZjkwCkBAIC0wLDAgKzEsMjEgQEAKKyEgeyBkZy1kbyBjb21waWxlIH0KKyEKKyEgUFIgZm9y dHJhbi8xMDQ1NzAKKyEgVGhlIGZvbGxvd2luZyB1c2VkIHRvIGNhdXNlIGFuIElDRSBiZWNh dXNlIHRoZSBzdHJpbmcgbGVuZ3RoCishIGV2YWx1YXRpb24gb2YgdGhlICh5KSBleHByZXNz aW9uIHdhcyBub3QgcHJlcGFyZWQgdG8gaGFuZGxlCishIGEgbm9uLXNjYWxhciBleHByZXNz aW9uLgorCitwcm9ncmFtIHAKKyAgIGNoYXJhY3Rlcig6KSwgYWxsb2NhdGFibGUgOjogeCg6 KQorICAgeCA9IFsnYWJjJ10KKyAgIGNhbGwgcworY29udGFpbnMKKyAgIHN1YnJvdXRpbmUg cworICAgICAgYXNzb2NpYXRlICh5ID0+IHgpCisgICAgICAgICBhc3NvY2lhdGUgKHogPT4g KHkpKQorICAgICAgICAgICAgcHJpbnQgKiwgegorICAgICAgICAgZW5kIGFzc29jaWF0ZQor ICAgICAgZW5kIGFzc29jaWF0ZQorICAgZW5kCitlbmQKKwotLSAKMi4zNS4xCgo= --------------9eqZa7B589O66ZoFs0aOgBSX--