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 4C6C03858D37; Wed, 2 Mar 2022 17:22:30 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 4C6C03858D37 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,149,1643702400"; d="scan'208,223";a="72648289" Received: from orw-gwy-01-in.mentorg.com ([192.94.38.165]) by esa2.mentor.iphmx.com with ESMTP; 02 Mar 2022 09:22:29 -0800 IronPort-SDR: /UQTxlx7pfU8IX46d7DIw4POsXL3QtrQXP/ZveDkdvcdJYJ3ArBDFwTUhAs8a15BqBUKfcWvND ObxUaz9gMRmmXxK58TcmkeEc6CoCfbezlwlw16kbDglnBtnQnUw1ZlutcB6+EyznYAuyLWALwJ jg2DPSuieGGZK9+Ho7v0BLV3xuc/Wwv5UfOm2hvZxB6JlbpAkMXmhaIwh7h07jw1ySVxS9XVQL n95nl3mEAlcNz3w2Dzq6XoxfGoETsCcLrDsrmuLp55z51mkx2unNOS/fXhFA08Gu7NVQbbFneZ N7Y= Content-Type: multipart/mixed; boundary="------------SaJWUd0DB91zYBR1bBd81NB6" Message-ID: <262035c6-7039-84c5-0b61-b9ee98f24b23@codesourcery.com> Date: Wed, 2 Mar 2022 17:22:21 +0000 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101 Thunderbird/91.6.1 From: Kwok Cheung Yeung Subject: [PATCH][v2] openmp, fortran: Check that the type of an event handle in a detach clause is suitable [PR104131] To: Mikael Morin , Tobias Burnus , Jakub Jelinek CC: , gcc-patches , fortran References: <383792f1-a5c7-af10-c603-2f1332336648@codesourcery.com> <3c2d161f-481a-b223-a855-cadee01a5679@orange.fr> <8981ebb8-7b8e-19d7-a3b3-ef5fce239c53@orange.fr> <907e1f89-4534-75e4-fdb8-a11da280e3d1@orange.fr> <65456330-dc81-0647-3bdb-6d409554136d@codesourcery.com> <14be1163-51e6-19bd-0032-c18a53ffe254@codesourcery.com> <6f75ce81-648d-a2e5-b9f4-b9aaa4a19775@orange.fr> In-Reply-To: <6f75ce81-648d-a2e5-b9f4-b9aaa4a19775@orange.fr> X-Originating-IP: [137.202.0.90] X-ClientProxiedBy: svr-ies-mbx-13.mgc.mentorg.com (139.181.222.13) To SVR-IES-MBX-04.mgc.mentorg.com (139.181.222.4) X-Spam-Status: No, score=-11.9 required=5.0 tests=BAYES_00, GIT_PATCH_0, HEADER_FROM_DIFFERENT_DOMAINS, KAM_DMARC_STATUS, 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: Wed, 02 Mar 2022 17:22:32 -0000 --------------SaJWUd0DB91zYBR1bBd81NB6 Content-Type: text/plain; charset="UTF-8"; format=flowed Content-Transfer-Encoding: 8bit Hello I have updated the patch to catch array elements and structure components as additional checks, in addition to checking that the variable is a scalar. The check has been moved to the end of resolve_omp_clauses as it is more appropriate there. This gets rid of the additional 'Unexpected !$OMP END TASK statement' error, since the type error is now caught after the matching phase. Coarrays (with the testcases in pr104131-2.f90) can be dealt with in a separate patch. Is this part okay for trunk? Thanks Kwok On 01/03/2022 3:37 pm, Mikael Morin wrote: > So, if I try to sum up what has been gathered in this thread: > >  - pr104131.f90 is invalid, as x is not scalar. >    Checks are better done in resolve_omp_clauses after a call >    to gfc_resolve_expr. >    Checking expr->sym->attr.dimension seems to cover more cases than >    expr->rank > 0. > >  - pr104131-2.f90 is valid and should be accepted. > >  - Some other cases should be rejected, including x[1] (coindexed >    variable), x(1) (array element), x%comp (structure component). > > Is that correct? Anything else? > > Regarding the expr->rank vs expr->sym->attr.dimension controversy, my > take is that it should stick to the error message.  Use expr->rank is > the error is about scalar vs array, use expr->sym->attr.dimension if > it’s about subobject-ness of an array variable. > > Coming back to the PR, the ICE backtraces for pr104131.f90 and > pr104131-2.f90 are different and should probably be treated separatedly. > I don’t know how difficult the bullet 2 above would be, but bullet 1 and > 3 seem quite doable. --------------SaJWUd0DB91zYBR1bBd81NB6 Content-Type: text/plain; charset="UTF-8"; name="0001-openmp-fortran-Check-that-the-type-of-an-event-handl.patch" Content-Disposition: attachment; filename*0="0001-openmp-fortran-Check-that-the-type-of-an-event-handl.pa"; filename*1="tch" Content-Transfer-Encoding: base64 RnJvbSAzZWQ2ZWIxZTM4YWQyYTI1YzZlY2ExOGY5ZmY0ZDA1ZDNmMjI3ZGIzIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBLd29rIENoZXVuZyBZZXVuZyA8a2N5QGNvZGVzb3Vy Y2VyeS5jb20+CkRhdGU6IFdlZCwgMiBNYXIgMjAyMiAxNzowOTo0NSArMDAwMApTdWJqZWN0 OiBbUEFUQ0hdIG9wZW5tcCwgZm9ydHJhbjogQ2hlY2sgdGhhdCB0aGUgdHlwZSBvZiBhbiBl dmVudCBoYW5kbGUgaW4gYQogZGV0YWNoIGNsYXVzZSBpcyBzdWl0YWJsZSBbUFIxMDQxMzFd CgpUaGlzIHJlamVjdHMgdmFyaWFibGVzIHRoYXQgYXJlIGFycmF5IHR5cGVzLCBhcnJheSBl bGVtZW50cyBvciBkZXJpdmVkIHR5cGUKbWVtYmVycyB3aGVuIHVzZWQgYXMgdGhlIGV2ZW50 IGhhbmRsZSBpbnNpZGUgYSBkZXRhY2ggY2xhdXNlIChpbiBhY2NvcmRhbmNlCndpdGggdGhl IE9wZW5NUCBzcGVjaWZpY2F0aW9uKS4gIFRoaXMgd291bGQgcHJldmlvdXNseSBsZWFkIHRv IGFuIElDRS4KCjIwMjItMDMtMDIgIEt3b2sgQ2hldW5nIFlldW5nICA8a2N5QGNvZGVzb3Vy Y2VyeS5jb20+CgpnY2MvZm9ydHJhbi8KCglQUiBmb3J0cmFuLzEwNDEzMQoJKiBvcGVubXAu Y2MgKGdmY19tYXRjaF9vbXBfZGV0YWNoKTogTW92ZSBjaGVjayBmb3IgdHlwZSBvZiBldmVu dAoJaGFuZGxlIHRvLi4uCgkocmVzb2x2ZV9vbXBfY2xhdXNlcykgLi4uaGVyZS4gIEFsc28g Y2hlY2sgdGhhdCB0aGUgZXZlbnQgaGFuZGxlIGlzCglub3QgYW4gYXJyYXksIG9yIGFuIGFy cmF5IGFjY2VzcyBvciBzdHJ1Y3R1cmUgZWxlbWVudCBhY2Nlc3MuCgpnY2MvdGVzdHN1aXRl LwoKCVBSIGZvcnRyYW4vMTA0MTMxCgkqIGdmb3J0cmFuLmRnL2dvbXAvcHIxMDQxMzEuZjkw OiBOZXcuCgkqIGdmb3J0cmFuLmRnL2dvbXAvdGFzay1kZXRhY2gtMS5mOTA6IFVwZGF0ZSBl eHBlY3RlZCBlcnJvciBtZXNzYWdlLgotLS0KIGdjYy9mb3J0cmFuL29wZW5tcC5jYyAgICAg ICAgICAgICAgICAgICAgICAgICB8IDM0ICsrKysrKysrKysrKystLS0tLS0KIGdjYy90ZXN0 c3VpdGUvZ2ZvcnRyYW4uZGcvZ29tcC9wcjEwNDEzMS5mOTAgICB8IDI2ICsrKysrKysrKysr KysrCiAuLi4vZ2ZvcnRyYW4uZGcvZ29tcC90YXNrLWRldGFjaC0xLmY5MCAgICAgICAgfCAg NCArLS0KIDMgZmlsZXMgY2hhbmdlZCwgNTEgaW5zZXJ0aW9ucygrKSwgMTMgZGVsZXRpb25z KC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgZ2NjL3Rlc3RzdWl0ZS9nZm9ydHJhbi5kZy9nb21w L3ByMTA0MTMxLmY5MAoKZGlmZiAtLWdpdCBhL2djYy9mb3J0cmFuL29wZW5tcC5jYyBiL2dj Yy9mb3J0cmFuL29wZW5tcC5jYwppbmRleCAxOTE0MmM0ZDhkMC4uMTZjZDAzYTNkNjcgMTAw NjQ0Ci0tLSBhL2djYy9mb3J0cmFuL29wZW5tcC5jYworKysgYi9nY2MvZm9ydHJhbi9vcGVu bXAuY2MKQEAgLTUzMSwxNCArNTMxLDYgQEAgZ2ZjX21hdGNoX29tcF9kZXRhY2ggKGdmY19l eHByICoqZXhwcikKICAgaWYgKGdmY19tYXRjaF92YXJpYWJsZSAoZXhwciwgMCkgIT0gTUFU Q0hfWUVTKQogICAgIGdvdG8gc3ludGF4X2Vycm9yOwogCi0gIGlmICgoKmV4cHIpLT50cy50 eXBlICE9IEJUX0lOVEVHRVIgfHwgKCpleHByKS0+dHMua2luZCAhPSBnZmNfY19pbnRwdHJf a2luZCkKLSAgICB7Ci0gICAgICBnZmNfZXJyb3IgKCIlcXMgYXQgJUwgc2hvdWxkIGJlIG9m IHR5cGUgIgotCQkgImludGVnZXIoa2luZD1vbXBfZXZlbnRfaGFuZGxlX2tpbmQpIiwKLQkJ ICgqZXhwciktPnN5bXRyZWUtPm4uc3ltLT5uYW1lLCAmKCpleHByKS0+d2hlcmUpOwotICAg ICAgcmV0dXJuIE1BVENIX0VSUk9SOwotICAgIH0KLQogICBpZiAoZ2ZjX21hdGNoX2NoYXIg KCcpJykgIT0gTUFUQ0hfWUVTKQogICAgIGdvdG8gc3ludGF4X2Vycm9yOwogCkBAIC03NTgx LDkgKzc1NzMsMjkgQEAgcmVzb2x2ZV9vbXBfY2xhdXNlcyAoZ2ZjX2NvZGUgKmNvZGUsIGdm Y19vbXBfY2xhdXNlcyAqb21wX2NsYXVzZXMsCiAJZ2ZjX2Vycm9yICgiJXMgbXVzdCBjb250 YWluIGF0IGxlYXN0IG9uZSBNQVAgY2xhdXNlIGF0ICVMIiwKIAkJICAgcCwgJmNvZGUtPmxv Yyk7CiAgICAgfQotICBpZiAoIW9wZW5hY2MgJiYgb21wX2NsYXVzZXMtPm1lcmdlYWJsZSAm JiBvbXBfY2xhdXNlcy0+ZGV0YWNoKQotICAgIGdmY19lcnJvciAoIiU8REVUQUNIJT4gY2xh dXNlIGF0ICVMIG11c3Qgbm90IGJlIHVzZWQgdG9nZXRoZXIgd2l0aCAiCi0JICAgICAgICIl PE1FUkdFQUJMRSU+IGNsYXVzZSIsICZvbXBfY2xhdXNlcy0+ZGV0YWNoLT53aGVyZSk7CisK KyAgaWYgKCFvcGVuYWNjICYmIG9tcF9jbGF1c2VzLT5kZXRhY2gpCisgICAgeworICAgICAg aWYgKCFnZmNfcmVzb2x2ZV9leHByIChvbXBfY2xhdXNlcy0+ZGV0YWNoKQorCSAgfHwgb21w X2NsYXVzZXMtPmRldGFjaC0+dHMudHlwZSAhPSBCVF9JTlRFR0VSCisJICB8fCBvbXBfY2xh dXNlcy0+ZGV0YWNoLT50cy5raW5kICE9IGdmY19jX2ludHB0cl9raW5kCisJICB8fCBvbXBf Y2xhdXNlcy0+ZGV0YWNoLT5yYW5rICE9IDApCisJZ2ZjX2Vycm9yICgiJXFzIGF0ICVMIHNo b3VsZCBiZSBhIHNjYWxhciBvZiB0eXBlICIKKwkJICAgImludGVnZXIoa2luZD1vbXBfZXZl bnRfaGFuZGxlX2tpbmQpIiwKKwkJICAgb21wX2NsYXVzZXMtPmRldGFjaC0+c3ltdHJlZS0+ bi5zeW0tPm5hbWUsCisJCSAgICZvbXBfY2xhdXNlcy0+ZGV0YWNoLT53aGVyZSk7CisgICAg ICBlbHNlIGlmIChvbXBfY2xhdXNlcy0+ZGV0YWNoLT5zeW10cmVlLT5uLnN5bS0+YXR0ci5k aW1lbnNpb24gPiAwKQorCWdmY19lcnJvciAoIlRoZSBldmVudCBoYW5kbGUgYXQgJUwgbXVz dCBub3QgYmUgYW4gYXJyYXkgZWxlbWVudCIsCisJCSAgICZvbXBfY2xhdXNlcy0+ZGV0YWNo LT53aGVyZSk7CisgICAgICBlbHNlIGlmIChvbXBfY2xhdXNlcy0+ZGV0YWNoLT5zeW10cmVl LT5uLnN5bS0+dHMudHlwZSA9PSBCVF9ERVJJVkVECisJICAgICAgIHx8IG9tcF9jbGF1c2Vz LT5kZXRhY2gtPnN5bXRyZWUtPm4uc3ltLT50cy50eXBlID09IEJUX0NMQVNTKQorCWdmY19l cnJvciAoIlRoZSBldmVudCBoYW5kbGUgYXQgJUwgbXVzdCBub3QgYmUgcGFydCBvZiAiCisJ CSAgICJhIGRlcml2ZWQgdHlwZSBvciBjbGFzcyIsICZvbXBfY2xhdXNlcy0+ZGV0YWNoLT53 aGVyZSk7CisKKyAgICAgIGlmIChvbXBfY2xhdXNlcy0+bWVyZ2VhYmxlKQorCWdmY19lcnJv ciAoIiU8REVUQUNIJT4gY2xhdXNlIGF0ICVMIG11c3Qgbm90IGJlIHVzZWQgdG9nZXRoZXIg d2l0aCAiCisJCSAgICIlPE1FUkdFQUJMRSU+IGNsYXVzZSIsICZvbXBfY2xhdXNlcy0+ZGV0 YWNoLT53aGVyZSk7CisgICAgfQogfQogCiAKZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUv Z2ZvcnRyYW4uZGcvZ29tcC9wcjEwNDEzMS5mOTAgYi9nY2MvdGVzdHN1aXRlL2dmb3J0cmFu LmRnL2dvbXAvcHIxMDQxMzEuZjkwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw MDAwMDAwLi40NzJkMTlkZDc1MwotLS0gL2Rldi9udWxsCisrKyBiL2djYy90ZXN0c3VpdGUv Z2ZvcnRyYW4uZGcvZ29tcC9wcjEwNDEzMS5mOTAKQEAgLTAsMCArMSwyNiBAQAorISB7IGRn LWRvIGNvbXBpbGUgfQorISB7IGRnLW9wdGlvbnMgIi1mb3Blbm1wIiB9CisKK3Byb2dyYW0g cAorICB1c2UgaXNvX2NfYmluZGluZywgb25seTogY19pbnRwdHJfdAorICBpbXBsaWNpdCBu b25lCisgIGludGVnZXIsIHBhcmFtZXRlciA6OiBvbXBfZXZlbnRfaGFuZGxlX2tpbmQgPSBj X2ludHB0cl90CisKKyAgdHlwZSBkdAorICAgIGludGVnZXIob21wX2V2ZW50X2hhbmRsZV9r aW5kKSA6OiBmCisgIGVuZCB0eXBlCisgIGludGVnZXIob21wX2V2ZW50X2hhbmRsZV9raW5k KSA6OiB4KDEpCisgIHR5cGUoZHQpIDo6IHkKKworICAhJG9tcCB0YXNrIGRldGFjaCh4KSAh IHsgZGctZXJyb3IgIid4JyBhdCBcXFwoMVxcXCkgc2hvdWxkIGJlIGEgc2NhbGFyIG9mIHR5 cGUgaW50ZWdlclxcXChraW5kPW9tcF9ldmVudF9oYW5kbGVfa2luZFxcXCkiIH0KKyAgISRv bXAgZW5kIHRhc2sKKworICAhJG9tcCB0YXNrIGRldGFjaCh4KDEpKSAhIHsgZGctZXJyb3Ig IlRoZSBldmVudCBoYW5kbGUgYXQgXFxcKDFcXFwpIG11c3Qgbm90IGJlIGFuIGFycmF5IGVs ZW1lbnQiIH0KKyAgISRvbXAgZW5kIHRhc2sKKworICAhJG9tcCB0YXNrIGRldGFjaCh5KSAh IHsgZGctZXJyb3IgIid5JyBhdCBcXFwoMVxcXCkgc2hvdWxkIGJlIGEgc2NhbGFyIG9mIHR5 cGUgaW50ZWdlclxcXChraW5kPW9tcF9ldmVudF9oYW5kbGVfa2luZFxcXCkiIH0KKyAgISRv bXAgZW5kIHRhc2sKKworICAhJG9tcCB0YXNrIGRldGFjaCh5JWYpICEgeyBkZy1lcnJvciAi VGhlIGV2ZW50IGhhbmRsZSBhdCBcXFwoMVxcXCkgbXVzdCBub3QgYmUgcGFydCBvZiBhIGRl cml2ZWQgdHlwZSBvciBjbGFzcyIgfQorICAhJG9tcCBlbmQgdGFzaworZW5kIHByb2dyYW0K ZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2ZvcnRyYW4uZGcvZ29tcC90YXNrLWRldGFj aC0xLmY5MCBiL2djYy90ZXN0c3VpdGUvZ2ZvcnRyYW4uZGcvZ29tcC90YXNrLWRldGFjaC0x LmY5MAppbmRleCAwMjBiZTEzYThiNi4uMmU3N2FlYTA1NDkgMTAwNjQ0Ci0tLSBhL2djYy90 ZXN0c3VpdGUvZ2ZvcnRyYW4uZGcvZ29tcC90YXNrLWRldGFjaC0xLmY5MAorKysgYi9nY2Mv dGVzdHN1aXRlL2dmb3J0cmFuLmRnL2dvbXAvdGFzay1kZXRhY2gtMS5mOTAKQEAgLTE4LDgg KzE4LDggQEAgcHJvZ3JhbSB0YXNrX2RldGFjaF8xCiAgICEkb21wIHRhc2sgZGV0YWNoKHgp IG1lcmdlYWJsZSAhIHsgZGctZXJyb3IgIidERVRBQ0gnIGNsYXVzZSBhdCBcXFwoMVxcXCkg bXVzdCBub3QgYmUgdXNlZCB0b2dldGhlciB3aXRoICdNRVJHRUFCTEUnIGNsYXVzZSIgfQog ICAhJG9tcCBlbmQgdGFzawogCi0gICEkb21wIHRhc2sgZGV0YWNoKHopICEgeyBkZy1lcnJv ciAiJ3onIGF0IFxcXCgxXFxcKSBzaG91bGQgYmUgb2YgdHlwZSBpbnRlZ2VyXFxcKGtpbmQ9 b21wX2V2ZW50X2hhbmRsZV9raW5kXFxcKSIgfQotICAhJG9tcCBlbmQgdGFzayAhIHsgZGct ZXJyb3IgIlVuZXhwZWN0ZWQgIVxcXCRPTVAgRU5EIFRBU0sgc3RhdGVtZW50IGF0IFxcXCgx XFxcKSIgfQorICAhJG9tcCB0YXNrIGRldGFjaCh6KSAhIHsgZGctZXJyb3IgIid6JyBhdCBc XFwoMVxcXCkgc2hvdWxkIGJlIGEgc2NhbGFyIG9mIHR5cGUgaW50ZWdlclxcXChraW5kPW9t cF9ldmVudF9oYW5kbGVfa2luZFxcXCkiIH0KKyAgISRvbXAgZW5kIHRhc2sKICAgCiAgICEk b21wIHRhc2sgZGV0YWNoICh4KSBmaXJzdHByaXZhdGUgKHgpICEgeyBkZy1lcnJvciAiREVU QUNIIGV2ZW50IGhhbmRsZSAneCcgaW4gRklSU1RQUklWQVRFIGNsYXVzZSBhdCBcXFwoMVxc XCkiIH0KICAgISRvbXAgZW5kIHRhc2sKLS0gCjIuMjUuMQoK --------------SaJWUd0DB91zYBR1bBd81NB6--