From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from esa2.mentor.iphmx.com (esa2.mentor.iphmx.com [68.232.141.98]) by sourceware.org (Postfix) with ESMTPS id D96193858C83; Tue, 8 Mar 2022 14:25:15 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org D96193858C83 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,165,1643702400"; d="diff'?scan'208";a="72885785" Received: from orw-gwy-02-in.mentorg.com ([192.94.38.167]) by esa2.mentor.iphmx.com with ESMTP; 08 Mar 2022 06:25:14 -0800 IronPort-SDR: E1f7+LOEUkyRzcNK+BqE7SgG2hLy0oNeCkJsmg+pLByL4ApX1z2Wr8q6UUyZaY+YPugrkmfSAT x8uD7GnADaiwjhW80wehJqlABsTHuNTswa/wbZLek3CX+Z7vHy2HGOODFr6KKdFMXwyI0LLNLy htIByJKMICmUg9ghfFLrZmyAtqxC4ihRKwB7b24ygU5rRwEKuENceo+houtsiYD/Od9/5ejFe+ vbEYdZxBr5EiWtLdQLPy9qlgMePyqkn2rb+FWU1/evmQrqTCaxV2CRvpkx/xLJaEGMBUwwZ50+ PuM= Content-Type: multipart/mixed; boundary="------------giDE8z00I9RQcMh6s0PS14zF" Message-ID: Date: Tue, 8 Mar 2022 15:25:07 +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 , Thomas Schwinge , Jakub Jelinek From: Tobias Burnus Subject: [Patch] Fortran: OpenMP/OpenACC avoid uninit access in size calc for mapping X-Originating-IP: [137.202.0.90] X-ClientProxiedBy: svr-ies-mbx-11.mgc.mentorg.com (139.181.222.11) 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, KAM_SHORT, RCVD_IN_MSPIKE_H2, 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: Tue, 08 Mar 2022 14:25:18 -0000 --------------giDE8z00I9RQcMh6s0PS14zF Content-Type: text/plain; charset="UTF-8"; format=flowed Content-Transfer-Encoding: quoted-printable Hi Thomas & Jakub, found when working on the deep-mapping patch* with OpenMP code (and part of that patch) but it already shows up in an existing OpenACC testcase. I think it makes sense to fix it already for GCC 12. Problem: Also for unallocated allocatables, their size was calculated - the 'if(desc.data =3D=3D NULL)' check was only added for pointers. Result after the patch: When compiling with -O (which is the default for goacc.exp), the warning now disappears. Thus, I now use '-O0' and the previous "is uninitialized" is now "may be uninitialized". Unrelated to the patch and the testcase, I added some 'allocate'**/'if(allocated())' to the testcase - as otherwise uninit vars would be accessed. (Not relevant for the warning or the patch - but I prefer no invalid code in testcases, if it can be avoided.) OK for mainline? Tobias * https://gcc.gnu.org/pipermail/gcc-patches/2022-March/591144.html ** I am actually not sure whether 'acc update(b)' will/should map a previous allocated variable - or whether it should. But that's unrelated to this bug fix. See also: https://gcc.gnu.org/PR96668 for the re-mapping in OpenMP (works for arrays but not scalars). ----------------- 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 --------------giDE8z00I9RQcMh6s0PS14zF Content-Type: text/x-patch; charset="UTF-8"; name="uninit-map.diff" Content-Disposition: attachment; filename="uninit-map.diff" Content-Transfer-Encoding: base64 Rm9ydHJhbjogT3Blbk1QL09wZW5BQ0MgYXZvaWQgdW5pbml0IGFjY2VzcyBpbiBzaXplIGNh bGMgZm9yIG1hcHBpbmcKCmdjYy9mb3J0cmFuL0NoYW5nZUxvZzoKCgkqIHRyYW5zLW9wZW5t cC5jYyAoZ2ZjX3RyYW5zX29tcF9jbGF1c2VzLCBnZmNfb21wX2ZpbmlzaF9jbGF1c2UpOgoJ T2J0YWluIHNpemUgZm9yIG1hcHBpbmcgb25seSBpZiBhbGxvY2F0YWJsZSBhcnJheSBpcyBh bGxvY2F0ZWQuCgpnY2MvdGVzdHN1aXRlL0NoYW5nZUxvZzoKCgkqIGdmb3J0cmFuLmRnL2dv YWNjL2FycmF5LXdpdGgtZHQtMS5mOTA6IFJ1biB3aXRoIC1PMCBhbmQKCXVwZGF0ZSBkZy13 YXJuaW5nLgoJKiBnZm9ydHJhbi5kZy9nb2FjYy9wcjkzNDY0LmY5MDogTGlrZXdpc2UuCgog Z2NjL2ZvcnRyYW4vdHJhbnMtb3Blbm1wLmNjICAgICAgICAgICAgICAgICAgICAgICAgIHwg IDYgKysrKy0tCiBnY2MvdGVzdHN1aXRlL2dmb3J0cmFuLmRnL2dvYWNjL2FycmF5LXdpdGgt ZHQtMS5mOTAgfCAxMiArKysrKysrKystLS0KIGdjYy90ZXN0c3VpdGUvZ2ZvcnRyYW4uZGcv Z29hY2MvcHI5MzQ2NC5mOTAgICAgICAgICB8ICA4ICsrKystLS0tCiAzIGZpbGVzIGNoYW5n ZWQsIDE3IGluc2VydGlvbnMoKyksIDkgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZ2Nj L2ZvcnRyYW4vdHJhbnMtb3Blbm1wLmNjIGIvZ2NjL2ZvcnRyYW4vdHJhbnMtb3Blbm1wLmNj CmluZGV4IDRkNTZhNzcxMzQ5Li5mYWQ3NmE0NzkxZiAxMDA2NDQKLS0tIGEvZ2NjL2ZvcnRy YW4vdHJhbnMtb3Blbm1wLmNjCisrKyBiL2djYy9mb3J0cmFuL3RyYW5zLW9wZW5tcC5jYwpA QCAtMTU5Nyw3ICsxNTk3LDggQEAgZ2ZjX29tcF9maW5pc2hfY2xhdXNlICh0cmVlIGMsIGdp bXBsZV9zZXEgKnByZV9wLCBib29sIG9wZW5hY2MpCiAgICAgICB0cmVlIHNpemUgPSBjcmVh dGVfdG1wX3ZhciAoZ2ZjX2FycmF5X2luZGV4X3R5cGUpOwogICAgICAgdHJlZSBlbGVtc3og PSBUWVBFX1NJWkVfVU5JVCAoZ2ZjX2dldF9lbGVtZW50X3R5cGUgKHR5cGUpKTsKICAgICAg IGVsZW1zeiA9IGZvbGRfY29udmVydCAoZ2ZjX2FycmF5X2luZGV4X3R5cGUsIGVsZW1zeik7 Ci0gICAgICBpZiAoR0ZDX1RZUEVfQVJSQVlfQUtJTkQgKHR5cGUpID09IEdGQ19BUlJBWV9Q T0lOVEVSCisgICAgICBpZiAoR0ZDX1RZUEVfQVJSQVlfQUtJTkQgKHR5cGUpID09IEdGQ19B UlJBWV9BTExPQ0FUQUJMRQorCSAgfHwgR0ZDX1RZUEVfQVJSQVlfQUtJTkQgKHR5cGUpID09 IEdGQ19BUlJBWV9QT0lOVEVSCiAJICB8fCBHRkNfVFlQRV9BUlJBWV9BS0lORCAodHlwZSkg PT0gR0ZDX0FSUkFZX1BPSU5URVJfQ09OVCkKIAl7CiAJICBzdG10YmxvY2tfdCBjb25kX2Js b2NrOwpAQCAtMzIwOCw3ICszMjA5LDggQEAgZ2ZjX3RyYW5zX29tcF9jbGF1c2VzIChzdG10 YmxvY2tfdCAqYmxvY2ssIGdmY19vbXBfY2xhdXNlcyAqY2xhdXNlcywKIAogCQkgICAgICAv KiBXZSBoYXZlIHRvIGNoZWNrIGZvciBuLT5zeW0tPmF0dHIuZGltZW5zaW9uIGJlY2F1c2UK IAkJCSBvZiBzY2FsYXIgY29hcnJheXMuICAqLwotCQkgICAgICBpZiAobi0+c3ltLT5hdHRy LnBvaW50ZXIgJiYgbi0+c3ltLT5hdHRyLmRpbWVuc2lvbikKKwkJICAgICAgaWYgKChuLT5z eW0tPmF0dHIucG9pbnRlciB8fCBuLT5zeW0tPmF0dHIuYWxsb2NhdGFibGUpCisJCQkgICYm IG4tPnN5bS0+YXR0ci5kaW1lbnNpb24pCiAJCQl7CiAJCQkgIHN0bXRibG9ja190IGNvbmRf YmxvY2s7CiAJCQkgIHRyZWUgc2l6ZQpkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nZm9y dHJhbi5kZy9nb2FjYy9hcnJheS13aXRoLWR0LTEuZjkwIGIvZ2NjL3Rlc3RzdWl0ZS9nZm9y dHJhbi5kZy9nb2FjYy9hcnJheS13aXRoLWR0LTEuZjkwCmluZGV4IDEzNmU0MmFjZDU5Li5m Njg4MDIzOGM4OSAxMDA2NDQKLS0tIGEvZ2NjL3Rlc3RzdWl0ZS9nZm9ydHJhbi5kZy9nb2Fj Yy9hcnJheS13aXRoLWR0LTEuZjkwCisrKyBiL2djYy90ZXN0c3VpdGUvZ2ZvcnRyYW4uZGcv Z29hY2MvYXJyYXktd2l0aC1kdC0xLmY5MApAQCAtMSw0ICsxLDQgQEAKLSEgeyBkZy1hZGRp dGlvbmFsLW9wdGlvbnMgLVd1bmluaXRpYWxpemVkIH0KKyEgeyBkZy1hZGRpdGlvbmFsLW9w dGlvbnMgIi1XdW5pbml0aWFsaXplZCAtTzAiIH0KIAogdHlwZSB0CiAgICBpbnRlZ2VyLCBh bGxvY2F0YWJsZSA6OiBBKDosOikKQEAgLTgsOSArOCwxNSBAQCB0eXBlKHQpLCBhbGxvY2F0 YWJsZSA6OiBiKDopCiAhIHsgZGctbm90ZSB7J2InIGRlY2xhcmVkIGhlcmV9IHt9IHsgdGFy Z2V0ICotKi0qIH0gLi0xIH0KIAogISRhY2MgdXBkYXRlIGhvc3QoYikKLSEgeyBkZy13YXJu aW5nIHsnYlwuZGltXFswXF1cLnVib3VuZCcgaXMgdXNlZCB1bmluaXRpYWxpemVkfSB7fSB7 IHRhcmdldCAqLSotKiB9IC4tMSB9Ci0hIHsgZGctd2FybmluZyB7J2JcLmRpbVxbMFxdXC5s Ym91bmQnIGlzIHVzZWQgdW5pbml0aWFsaXplZH0ge30geyB0YXJnZXQgKi0qLSogfSAuLTIg fQorISB7IGRnLXdhcm5pbmcgeydiXC5kaW1cWzBcXVwudWJvdW5kJyBtYXkgYmUgdXNlZCB1 bmluaXRpYWxpemVkfSB7fSB7IHRhcmdldCAqLSotKiB9IC4tMSB9CishIHsgZGctd2Fybmlu ZyB7J2JcLmRpbVxbMFxdXC5sYm91bmQnIG1heSBiZSB1c2VkIHVuaW5pdGlhbGl6ZWR9IHt9 IHsgdGFyZ2V0ICotKi0qIH0gLi0yIH0KKworYWxsb2NhdGUoYigxKSkKKyEkYWNjIHVwZGF0 ZSBob3N0KGIpCiAhJGFjYyB1cGRhdGUgaG9zdChiKDopKQorCishJGFjYyB1cGRhdGUgaG9z dChiKDEpJUEpCithbGxvY2F0ZShiKDEpJUEoMSwxKSkKICEkYWNjIHVwZGF0ZSBob3N0KGIo MSklQSkKICEkYWNjIHVwZGF0ZSBob3N0KGIoMSklQSg6LDopKQogZW5kCmRpZmYgLS1naXQg YS9nY2MvdGVzdHN1aXRlL2dmb3J0cmFuLmRnL2dvYWNjL3ByOTM0NjQuZjkwIGIvZ2NjL3Rl c3RzdWl0ZS9nZm9ydHJhbi5kZy9nb2FjYy9wcjkzNDY0LmY5MAppbmRleCBjOTJmMWQzZDhi Mi4uMTg1MzFhYmRmNzcgMTAwNjQ0Ci0tLSBhL2djYy90ZXN0c3VpdGUvZ2ZvcnRyYW4uZGcv Z29hY2MvcHI5MzQ2NC5mOTAKKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nZm9ydHJhbi5kZy9nb2Fj Yy9wcjkzNDY0LmY5MApAQCAtMiwxNyArMiwxNyBAQAogIQogISBDb250cmlidXRlZCBieSBH LiBTdGVpbm1ldHoKIAotISB7IGRnLWFkZGl0aW9uYWwtb3B0aW9ucyAtV3VuaW5pdGlhbGl6 ZWQgfQorISB7IGRnLWFkZGl0aW9uYWwtb3B0aW9ucyAiLVd1bmluaXRpYWxpemVkIC1PMCIg fQogCiBwcm9ncmFtIHAKICAgIGNoYXJhY3RlciA6OiBjKDIpID0gJ2EnCiAgICBjaGFyYWN0 ZXIsIGFsbG9jYXRhYmxlIDo6IHooOikKICAgICEgeyBkZy1ub3RlIHsneicgZGVjbGFyZWQg aGVyZX0ge30geyB0YXJnZXQgKi0qLSogfSAuLTEgfQogICAgISRhY2MgcGFyYWxsZWwKLSAg ICEgeyBkZy13YXJuaW5nIHsnelwuZGltXFswXF1cLnVib3VuZCcgaXMgdXNlZCB1bmluaXRp YWxpemVkfSB7fSB7IHRhcmdldCAqLSotKiB9IC4tMSB9Ci0gICAhIHsgZGctd2FybmluZyB7 J3pcLmRpbVxbMFxdXC5sYm91bmQnIGlzIHVzZWQgdW5pbml0aWFsaXplZH0ge30geyB0YXJn ZXQgKi0qLSogfSAuLTIgfQorICAgISB7IGRnLXdhcm5pbmcgeyd6XC5kaW1cWzBcXVwudWJv dW5kJyBtYXkgYmUgdXNlZCB1bmluaXRpYWxpemVkfSB7fSB7IHRhcmdldCAqLSotKiB9IC4t MSB9CisgICAhIHsgZGctd2FybmluZyB7J3pcLmRpbVxbMFxdXC5sYm91bmQnIG1heSBiZSB1 c2VkIHVuaW5pdGlhbGl6ZWR9IHt9IHsgdGFyZ2V0ICotKi0qIH0gLi0yIH0KICAgICEkb21w IHRhcmdldAotICAgeiA9IGMKKyAgIGlmIChhbGxvY2F0ZWQoeikpIHogPSBjCiAgICAhJGFj YyBlbmQgcGFyYWxsZWwKICAgICEkb21wIGVuZCB0YXJnZXQKICAgIHByaW50ICosIHoK --------------giDE8z00I9RQcMh6s0PS14zF--