From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from esa4.mentor.iphmx.com (esa4.mentor.iphmx.com [68.232.137.252]) by sourceware.org (Postfix) with ESMTPS id 40E1E3858D35; Mon, 7 Mar 2022 14:02:23 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 40E1E3858D35 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=codesourcery.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=mentor.com X-IronPort-AV: E=Sophos;i="5.90,162,1643702400"; d="diff'?scan'208";a="72790860" Received: from orw-gwy-01-in.mentorg.com ([192.94.38.165]) by esa4.mentor.iphmx.com with ESMTP; 07 Mar 2022 06:02:10 -0800 IronPort-SDR: UHXbTK96vNNewWyxE6aYnETxJ7HjSRho2VZaFtHYqxkQqebAhtuc8HYVUzhM8LpETxMVcBQj4Y B5o48MBskf9/9mlV7cvoih5OR01JtofdGwVo4tFEEzRpI8tMP7/arB8ajXOEsxE49MwMamhl5j 5rVIhavLtDlSblc8BaQcdtMmIt3o0rUHXwYcWkh3OJh5vX5otJJWp0i3FCURHxsCADafjL61xz tlJwsSmAesnNwQnmS0e4nRnIG8s5rCZrdfcHcwUIgoZREVHzy/GtbcGn2Ru6hxSQJTxdbYAmJC x2k= Content-Type: multipart/mixed; boundary="------------xmL04JxXNHqnMXGKhvFY5J0U" Message-ID: <2cd2f3b9-3b67-dc5f-de37-94c9c5002e53@codesourcery.com> Date: Mon, 7 Mar 2022 15:01:59 +0100 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.6.2 Content-Language: en-US To: gcc-patches , fortran From: Tobias Burnus Subject: [Patch] Fortran: Fix gfc_maybe_dereference_var [PR104430] X-Originating-IP: [137.202.0.90] X-ClientProxiedBy: SVR-IES-MBX-07.mgc.mentorg.com (139.181.222.7) To svr-ies-mbx-01.mgc.mentorg.com (139.181.222.1) X-Spam-Status: No, score=-11.5 required=5.0 tests=BAYES_00, GIT_PATCH_0, HEADER_FROM_DIFFERENT_DOMAINS, KAM_DMARC_STATUS, SPF_HELO_PASS, SPF_PASS, 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, 07 Mar 2022 14:02:29 -0000 --------------xmL04JxXNHqnMXGKhvFY5J0U Content-Type: text/plain; charset="UTF-8"; format=flowed Content-Transfer-Encoding: quoted-printable The problem is that inside the main program, y =3D f(z) where the the result of z is type(t) :: z(size(x%a)) and 'x' is a dummy argument. 'x' looses the attr.dummy in gfc_add_interface_mapping and this leads to an additional indirect ref in gfc_maybe_dereference_var - but after the first indirect ref, TREE_TYPE is alread a RECORD_TYPE ... The simple fix is to simply punt when the argument is not a pointer or reference. This patch additionally fixes a comment in conv_parent_component_references. Those parts are obvious. The only potentially risky change is the comparison change from a name-wise comparison to a pointer-based comparison. I think it is fine and the testsuite did not find any issue, but you prefer, I can also exclude it. OK for mainline? How about GCC 10/11 backports? (I think leaving out the last change, it should be very safe to do.) Tobias ----------------- Siemens Electronic Design Automation GmbH; Anschrift: Arnulfstra=C3=9Fe 201= , 80634 M=C3=BCnchen; Gesellschaft mit beschr=C3=A4nkter Haftung; Gesch=C3= =A4ftsf=C3=BChrer: Thomas Heurung, Frank Th=C3=BCrauf; Sitz der Gesellschaf= t: M=C3=BCnchen; Registergericht M=C3=BCnchen, HRB 106955 --------------xmL04JxXNHqnMXGKhvFY5J0U Content-Type: text/x-patch; charset="UTF-8"; name="pr104430-class-result.diff" Content-Disposition: attachment; filename="pr104430-class-result.diff" Content-Transfer-Encoding: base64 Rm9ydHJhbjogRml4IGdmY19tYXliZV9kZXJlZmVyZW5jZV92YXIgW1BSMTA0NDMwXQoKCVBS IGZvcnRyYW4vMTA0NDMwCgpnY2MvZm9ydHJhbi9DaGFuZ2VMb2c6CgoJKiB0cmFucy1leHBy LmNjIChjb252X3BhcmVudF9jb21wb25lbnRfcmVmZXJlbmNlcyk6IEZpeCBjb21tZW50OwoJ c2ltcGxpZnkgY29tcGFyaXNvbi4KCShnZmNfbWF5YmVfZGVyZWZlcmVuY2VfdmFyKTogQXZv aWQgZGVyZWZlcmVpbmcgYSBub25wb2ludGVyCgpnY2MvdGVzdHN1aXRlL0NoYW5nZUxvZzoK CgkqIGdmb3J0cmFuLmRnL2NsYXNzX3Jlc3VsdF8xMC5mOTA6IE5ldyB0ZXN0LgoKIGdjYy9m b3J0cmFuL3RyYW5zLWV4cHIuY2MgICAgICAgICAgICAgICAgICAgICB8ICA2ICsrKystLQog Z2NjL3Rlc3RzdWl0ZS9nZm9ydHJhbi5kZy9jbGFzc19yZXN1bHRfMTAuZjkwIHwgMjUgKysr KysrKysrKysrKysrKysrKysrKysrKwogMiBmaWxlcyBjaGFuZ2VkLCAyOSBpbnNlcnRpb25z KCspLCAyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2djYy9mb3J0cmFuL3RyYW5zLWV4 cHIuY2MgYi9nY2MvZm9ydHJhbi90cmFucy1leHByLmNjCmluZGV4IGViNmE3OGMzYTYyLi5l NDQxOTUyODE4YiAxMDA2NDQKLS0tIGEvZ2NjL2ZvcnRyYW4vdHJhbnMtZXhwci5jYworKysg Yi9nY2MvZm9ydHJhbi90cmFucy1leHByLmNjCkBAIC0yODA1LDkgKzI4MDUsOSBAQCBjb252 X3BhcmVudF9jb21wb25lbnRfcmVmZXJlbmNlcyAoZ2ZjX3NlICogc2UsIGdmY19yZWYgKiBy ZWYpCiAgIGR0ID0gcmVmLT51LmMuc3ltOwogICBjID0gcmVmLT51LmMuY29tcG9uZW50Owog Ci0gIC8qIFJldHVybiBpZiB0aGUgY29tcG9uZW50IGlzIGluIHRoZSBwYXJlbnQgdHlwZS4g ICovCisgIC8qIFJldHVybiBpZiB0aGUgY29tcG9uZW50IGlzIGluIHRoaXMgdHlwZSwgaS5l LiBub3QgaW4gdGhlIHBhcmVudCB0eXBlLiAgKi8KICAgZm9yIChjbXAgPSBkdC0+Y29tcG9u ZW50czsgY21wOyBjbXAgPSBjbXAtPm5leHQpCi0gICAgaWYgKHN0cmNtcCAoYy0+bmFtZSwg Y21wLT5uYW1lKSA9PSAwKQorICAgIGlmIChjID09IGNtcCkKICAgICAgIHJldHVybjsKIAog ICAvKiBCdWlsZCBhIGdmY19yZWYgdG8gcmVjdXJzaXZlbHkgY2FsbCBnZmNfY29udl9jb21w b25lbnRfcmVmLiAgKi8KQEAgLTI4NjcsNiArMjg2Nyw4IEBAIHRyZWUKIGdmY19tYXliZV9k ZXJlZmVyZW5jZV92YXIgKGdmY19zeW1ib2wgKnN5bSwgdHJlZSB2YXIsIGJvb2wgZGVzY3Jp cHRvcl9vbmx5X3AsCiAJCQkgICBib29sIGlzX2NsYXNzYXJyYXkpCiB7CisgIGlmICghUE9J TlRFUl9UWVBFX1AgKFRSRUVfVFlQRSAodmFyKSkpCisgICAgcmV0dXJuIHZhcjsKICAgaWYg KGlzX0NGSV9kZXNjIChzeW0sIE5VTEwpKQogICAgIHJldHVybiBidWlsZF9mb2xkX2luZGly ZWN0X3JlZl9sb2MgKGlucHV0X2xvY2F0aW9uLCB2YXIpOwogCmRpZmYgLS1naXQgYS9nY2Mv dGVzdHN1aXRlL2dmb3J0cmFuLmRnL2NsYXNzX3Jlc3VsdF8xMC5mOTAgYi9nY2MvdGVzdHN1 aXRlL2dmb3J0cmFuLmRnL2NsYXNzX3Jlc3VsdF8xMC5mOTAKbmV3IGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggMDAwMDAwMDAwMDAuLmFjZDlhNzNlYmRhCi0tLSAvZGV2L251bGwKKysrIGIv Z2NjL3Rlc3RzdWl0ZS9nZm9ydHJhbi5kZy9jbGFzc19yZXN1bHRfMTAuZjkwCkBAIC0wLDAg KzEsMjUgQEAKKyEgeyBkZy1kbyBydW59CishCishIFBSIGZvcnRyYW4vMTA0NDMwCishCish IENvbnRyaWJ1dGVkIGJ5ICBHLiBTdGVpbm1ldHogCisKK21vZHVsZSBtCisgICB0eXBlIHQK KyAgICAgIGludGVnZXIgOjogYQorICAgZW5kIHR5cGUKK2NvbnRhaW5zCisgICBmdW5jdGlv biBmKHgpIHJlc3VsdCh6KQorICAgICAgY2xhc3ModCkgOjogeCg6KQorICAgICAgdHlwZSh0 KSA6OiB6KHNpemUoeCVhKSkKKyAgICAgIHolYSA9IDQyCisgICBlbmQKK2VuZAorcHJvZ3Jh bSBwCisgICB1c2UgbQorICAgY2xhc3ModCksIGFsbG9jYXRhYmxlIDo6IHkoOiksIHooOikK KyAgIGFsbG9jYXRlICh5KDMyKSkKKyAgIHogPSBmKHkpCisgICBpZiAoc2l6ZSh6KSAvPSAz Mikgc3RvcCAxCisgICBpZiAoYW55ICh6JWEgLz0gNDIpKSBzdG9wIDIKK2VuZAo= --------------xmL04JxXNHqnMXGKhvFY5J0U--