From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from ciao.gmane.io (ciao.gmane.io [116.202.254.214]) by sourceware.org (Postfix) with ESMTPS id 3E3433857C67 for ; Sun, 19 Nov 2023 20:46:56 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 3E3433857C67 Authentication-Results: sourceware.org; dmarc=fail (p=none dis=none) header.from=gmx.de Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=m.gmane-mx.org ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 3E3433857C67 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=116.202.254.214 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1700426819; cv=none; b=qTBFPaESdcanxpCwZ0s9O9nZJLY3PrzVrZUikobcBJuQywrcF1B6jH/vKeHP47zn4iN4bckjUV1cmJ6OetIOhs+rpeXR9QT0EXWZA8lBzgjolyDquzo7q/q01HGM4Ba0W0RucE9y20iOV5wh3Vx4GgEM/nkmAFEY/uXxaE8j/BI= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1700426819; c=relaxed/simple; bh=QSXi/T/XhxT7wwtyUDfnbZOVBNdO4rjneGy1196rIeQ=; h=To:From:Subject:Date:Message-ID:Mime-Version; b=gq2Wv+4NeKltdOJDBckesG673w5DoWe1/4+rqM2cVcpPlU1mEwSDAUCH788fb2yJv3D/DNhR08XslOvt8AXWa31tJeKxWByH0TqnxFpaJqTLfhg7BzZpaPRlk2nkUDvjkaEskQOVIeFpHTNkFlvP4+SpNs2S+lU/yYnNool2dYE= ARC-Authentication-Results: i=1; server2.sourceware.org Received: from list by ciao.gmane.io with local (Exim 4.92) (envelope-from ) id 1r4ogv-000A4H-LT for gcc-patches@gcc.gnu.org; Sun, 19 Nov 2023 21:46:53 +0100 X-Injected-Via-Gmane: http://gmane.org/ To: gcc-patches@gcc.gnu.org From: Harald Anlauf Subject: [PATCH, v2] Fortran: restrictions on integer arguments to SYSTEM_CLOCK [PR112609] Date: Sun, 19 Nov 2023 21:46:46 +0100 Message-ID: <2898e351-eee8-45dd-a05d-0280378ba872@gmx.de> References: Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="------------wSFJw5FSREeSZdeAV6F10EgR" User-Agent: Mozilla Thunderbird Content-Language: en-US In-Reply-To: Cc: fortran@gcc.gnu.org X-Spam-Status: No, score=-9.0 required=5.0 tests=BAYES_00,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM,GIT_PATCH_0,HEADER_FROM_DIFFERENT_DOMAINS,KAM_DMARC_STATUS,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: Message-ID: <20231119204646.OX1TXfuRvIuPov_DXojX3g3qOSxj4o0hi0rBOvVsgTg@z> This is a multi-part message in MIME format. --------------wSFJw5FSREeSZdeAV6F10EgR Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Hi Steve, On 11/19/23 01:04, Steve Kargl wrote: > On Sat, Nov 18, 2023 at 11:12:55PM +0100, Harald Anlauf wrote: >> Regtested on x86_64-pc-linux-gnu. OK for mainline? >> > > Not in its current form. > >> { >> + int first_int_kind = -1; >> + bool f2023 = ((gfc_option.allow_std & GFC_STD_F2023) != 0 >> + && (gfc_option.allow_std & GFC_STD_GNU) == 0); >> + > > If you use the gfc_notify_std(), then you should not need the > above check on GFC_STD_GNU as it should include GFC_STD_F2023. this is actually the question (and problem). For all new features, -std=gnu shall include everything allowed by -std=f2023. Here we have the problem that the testcase is valid F2018 and is silently accepted by gfortran-13 for -std=gnu and -std=f2018. I prefer to keep it that way also for gfortran-14, and apply the new restrictions only for -std=f2023. Do we agree on this? Now that should happen for -std=gnu -pedantic (-w)? I have thought some more and came up with the revised attached patch, which still has the above condition. It now marks the diagnostics as GNU extensions beyond F2023 for -std=f2023. The mask f2023 in the above form suppresses new warnings even for -pedantic; one would normally use -w to suppress them. Now if you remove the second part of the condition, we will regress on testcases system_clock_1.f90 and system_clock_3.f90 because they would emit GNU extension warnings because the testsuite runs with -pedantic. The options I see: - use patch-V1 (although diagnostics are better in V2), - use patch-V2, - use patch-V2, but enable -pedantic warnings for previously valid code, and adjust the failing testcases - ??? > Elsewhere in the FE, gfortran uses gfc_notify_std() to enforce > requirements of a Fortran standard. The above would be > > if (count->ts.kind < gfc_default_integer_kind > && gfc_notify_std (GFC_STD_F2023, "COUNT argument to SYSTEM_CLOCK " > "at %L must have kind of at least default integer", > &count->where)) I tried this first, and it did not do the job. The logic in gfc_notify_std is: estd = std & ~gfc_option.allow_std; /* Standard to error about. */ error = (estd != 0); if (error) msg = notify_std_msg (estd); ... So for -std=f2023 we get estd=0, error=false, and *NO* error. For -std=f2018 we get error=true and an error message. This is the opposite of what is needed. Can you please try yourself? > Note, gfc_notify_std() should add the 'Fortran 2023: ' string, > if not, that should be fixed. This I did fix. > Of course, I seldom provide patches if others don't have a comment > then do as you like. Thanks for your feedback! Harald --------------wSFJw5FSREeSZdeAV6F10EgR Content-Type: text/x-patch; charset=UTF-8; name="pr112609-v2.diff" Content-Disposition: attachment; filename="pr112609-v2.diff" Content-Transfer-Encoding: base64 RnJvbSAyYTg1ZGM0Njk2OTZjODU1MjQ0NTkzODBjZTExZmFhMjBlNTU4NjgwIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBIYXJhbGQgQW5sYXVmIDxhbmxhdWZAZ214LmRlPgpE YXRlOiBTdW4sIDE5IE5vdiAyMDIzIDIxOjE0OjM3ICswMTAwClN1YmplY3Q6IFtQQVRDSF0g Rm9ydHJhbjogcmVzdHJpY3Rpb25zIG9uIGludGVnZXIgYXJndW1lbnRzIHRvIFNZU1RFTV9D TE9DSwogW1BSMTEyNjA5XQoKRm9ydHJhbiAyMDIzIGFkZGVkIHJlc3RyaWN0aW9ucyBvbiBp bnRlZ2VyIGFyZ3VtZW50cyB0byBTWVNURU1fQ0xPQ0sgdG8KaGF2ZSBhIGRlY2ltYWwgZXhw b25lbnQgcmFuZ2UgYXQgbGVhc3QgYXMgbGFyZ2UgYXMgYSBkZWZhdWx0IGludGVnZXIsCmFu ZCB0aGF0IGFsbCBpbnRlZ2VyIGFyZ3VtZW50cyBoYXZlIHRoZSBzYW1lIGtpbmQgdHlwZSBw YXJhbWV0ZXIuCgpnY2MvZm9ydHJhbi9DaGFuZ2VMb2c6CgoJUFIgZm9ydHJhbi8xMTI2MDkK CSogY2hlY2suY2MgKGdmY19jaGVja19zeXN0ZW1fY2xvY2spOiBBZGQgY2hlY2tzIG9uIGlu dGVnZXIgYXJndW1lbnRzCgl0byBTWVNURU1fQ0xPQ0sgc3BlY2lmaWMgdG8gRjIwMjMuCgkq IGVycm9yLmNjIChub3RpZnlfc3RkX21zZyk6IEFkanVzdCB0byBoYW5kbGUgbmV3IGZlYXR1 cmVzIGFkZGVkCglpbiBGMjAyMy4KCmdjYy90ZXN0c3VpdGUvQ2hhbmdlTG9nOgoKCVBSIGZv cnRyYW4vMTEyNjA5CgkqIGdmb3J0cmFuLmRnL3N5c3RlbV9jbG9ja180LmY5MDogTmV3IHRl c3QuCi0tLQogZ2NjL2ZvcnRyYW4vY2hlY2suY2MgICAgICAgICAgICAgICAgICAgICAgICAg fCA1MiArKysrKysrKysrKysrKysrKysrKwogZ2NjL2ZvcnRyYW4vZXJyb3IuY2MgICAgICAg ICAgICAgICAgICAgICAgICAgfCAgNCArLQogZ2NjL3Rlc3RzdWl0ZS9nZm9ydHJhbi5kZy9z eXN0ZW1fY2xvY2tfNC5mOTAgfCAyNCArKysrKysrKysKIDMgZmlsZXMgY2hhbmdlZCwgNzkg aW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IGdjYy90 ZXN0c3VpdGUvZ2ZvcnRyYW4uZGcvc3lzdGVtX2Nsb2NrXzQuZjkwCgpkaWZmIC0tZ2l0IGEv Z2NjL2ZvcnRyYW4vY2hlY2suY2MgYi9nY2MvZm9ydHJhbi9jaGVjay5jYwppbmRleCA2YzQ1 ZTY1NDJmMC4uZmFhZWE4NTNiYzQgMTAwNjQ0Ci0tLSBhL2djYy9mb3J0cmFuL2NoZWNrLmNj CisrKyBiL2djYy9mb3J0cmFuL2NoZWNrLmNjCkBAIC02Nzc0LDYgKzY3NzQsMTAgQEAgYm9v bAogZ2ZjX2NoZWNrX3N5c3RlbV9jbG9jayAoZ2ZjX2V4cHIgKmNvdW50LCBnZmNfZXhwciAq Y291bnRfcmF0ZSwKIAkJCWdmY19leHByICpjb3VudF9tYXgpCiB7CisgIGludCBmaXJzdF9p bnRfa2luZCA9IC0xOworICBib29sIGYyMDIzID0gKChnZmNfb3B0aW9uLmFsbG93X3N0ZCAm IEdGQ19TVERfRjIwMjMpICE9IDAKKwkJJiYgKGdmY19vcHRpb24uYWxsb3dfc3RkICYgR0ZD X1NURF9HTlUpID09IDApOworCiAgIGlmIChjb3VudCAhPSBOVUxMKQogICAgIHsKICAgICAg IGlmICghc2NhbGFyX2NoZWNrIChjb3VudCwgMCkpCkBAIC02Nzg4LDggKzY3OTIsMTcgQEAg Z2ZjX2NoZWNrX3N5c3RlbV9jbG9jayAoZ2ZjX2V4cHIgKmNvdW50LCBnZmNfZXhwciAqY291 bnRfcmF0ZSwKIAkJCSAgICAgICZjb3VudC0+d2hlcmUpKQogCXJldHVybiBmYWxzZTsKIAor ICAgICAgaWYgKGYyMDIzICYmIGNvdW50LT50cy5raW5kIDwgZ2ZjX2RlZmF1bHRfaW50ZWdl cl9raW5kCisJICAmJiAhZ2ZjX25vdGlmeV9zdGQgKEdGQ19TVERfR05VLCAiRm9ydHJhbiAy MDIzIHJlcXVpcmVzICIKKwkJCSAgICAgICJDT1VOVCBhcmd1bWVudCB0byBTWVNURU1fQ0xP Q0sgYXQgJUwgIgorCQkJICAgICAgInRvIGhhdmUgYSBraW5kIG9mIGF0IGxlYXN0IGRlZmF1 bHQgaW50ZWdlciIsCisJCQkgICAgICAmY291bnQtPndoZXJlKSkKKwlyZXR1cm4gZmFsc2U7 CisKICAgICAgIGlmICghdmFyaWFibGVfY2hlY2sgKGNvdW50LCAwLCBmYWxzZSkpCiAJcmV0 dXJuIGZhbHNlOworCisgICAgICBmaXJzdF9pbnRfa2luZCA9IGNvdW50LT50cy5raW5kOwog ICAgIH0KIAogICBpZiAoY291bnRfcmF0ZSAhPSBOVUxMKQpAQCAtNjgxNiw2ICs2ODI5LDE2 IEBAIGdmY19jaGVja19zeXN0ZW1fY2xvY2sgKGdmY19leHByICpjb3VudCwgZ2ZjX2V4cHIg KmNvdW50X3JhdGUsCiAJCQkJICAiU1lTVEVNX0NMT0NLIGF0ICVMIGhhcyBub24tZGVmYXVs dCBraW5kIiwKIAkJCQkgICZjb3VudF9yYXRlLT53aGVyZSkpCiAJICAgIHJldHVybiBmYWxz ZTsKKworCSAgaWYgKGYyMDIzICYmIGNvdW50X3JhdGUtPnRzLmtpbmQgPCBnZmNfZGVmYXVs dF9pbnRlZ2VyX2tpbmQKKwkgICAgICAmJiAhZ2ZjX25vdGlmeV9zdGQgKEdGQ19TVERfR05V LCAiRm9ydHJhbiAyMDIzIHJlcXVpcmVzICIKKwkJCQkgICJDT1VOVF9SQVRFIGFyZ3VtZW50 IHRvIFNZU1RFTV9DTE9DSyBhdCAlTCAiCisJCQkJICAidG8gaGF2ZSBhIGtpbmQgb2YgYXQg bGVhc3QgZGVmYXVsdCBpbnRlZ2VyIiwKKwkJCQkgICZjb3VudF9yYXRlLT53aGVyZSkpCisJ ICAgIHJldHVybiBmYWxzZTsKKworCSAgaWYgKGZpcnN0X2ludF9raW5kIDwgMCkKKwkgICAg Zmlyc3RfaW50X2tpbmQgPSBjb3VudF9yYXRlLT50cy5raW5kOwogCX0KIAogICAgIH0KQEAg LTY4MzYsNiArNjg1OSwzNSBAQCBnZmNfY2hlY2tfc3lzdGVtX2Nsb2NrIChnZmNfZXhwciAq Y291bnQsIGdmY19leHByICpjb3VudF9yYXRlLAogCiAgICAgICBpZiAoIXZhcmlhYmxlX2No ZWNrIChjb3VudF9tYXgsIDIsIGZhbHNlKSkKIAlyZXR1cm4gZmFsc2U7CisKKyAgICAgIGlm IChmMjAyMyAmJiBjb3VudF9tYXgtPnRzLmtpbmQgPCBnZmNfZGVmYXVsdF9pbnRlZ2VyX2tp bmQKKwkgICYmICFnZmNfbm90aWZ5X3N0ZCAoR0ZDX1NURF9HTlUsICJGb3J0cmFuIDIwMjMg cmVxdWlyZXMgIgorCQkJICAgICAgIkNPVU5UX01BWCBhcmd1bWVudCB0byBTWVNURU1fQ0xP Q0sgYXQgJUwgIgorCQkJICAgICAgInRvIGhhdmUgYSBraW5kIG9mIGF0IGxlYXN0IGRlZmF1 bHQgaW50ZWdlciIsCisJCQkgICAgICAmY291bnRfbWF4LT53aGVyZSkpCisJICByZXR1cm4g ZmFsc2U7CisKKyAgICAgIGlmIChmaXJzdF9pbnRfa2luZCA8IDApCisJZmlyc3RfaW50X2tp bmQgPSBjb3VudF9tYXgtPnRzLmtpbmQ7CisgICAgfQorCisgIGlmIChmMjAyMyAmJiBmaXJz dF9pbnRfa2luZCA+IDApCisgICAgeworICAgICAgaWYgKGNvdW50X3JhdGUKKwkgICYmIGNv dW50X3JhdGUtPnRzLnR5cGUgPT0gQlRfSU5URUdFUgorCSAgJiYgY291bnRfcmF0ZS0+dHMu a2luZCAhPSBmaXJzdF9pbnRfa2luZAorCSAgJiYgIWdmY19ub3RpZnlfc3RkIChHRkNfU1RE X0dOVSwgIkZvcnRyYW4gMjAyMyByZXF1aXJlcyAiCisJCQkgICAgICAiYWxsIGludGVnZXIg YXJndW1lbnRzIHRvIFNZU1RFTV9DTE9DSyAiCisJCQkgICAgICAiYXQgJUwgdG8gaGF2ZSB0 aGUgc2FtZSBraW5kIiwKKwkJCSAgICAgICZjb3VudF9yYXRlLT53aGVyZSkpCisJcmV0dXJu IGZhbHNlOworCisgICAgICBpZiAoY291bnRfbWF4ICYmIGNvdW50X21heC0+dHMua2luZCAh PSBmaXJzdF9pbnRfa2luZAorCSAgJiYgIWdmY19ub3RpZnlfc3RkIChHRkNfU1REX0dOVSwg IkZvcnRyYW4gMjAyMyByZXF1aXJlcyAiCisJCQkgICAgICAiYWxsIGludGVnZXIgYXJndW1l bnRzIHRvIFNZU1RFTV9DTE9DSyAiCisJCQkgICAgICAiYXQgJUwgdG8gaGF2ZSB0aGUgc2Ft ZSBraW5kIiwKKwkJCSAgICAgICZjb3VudF9tYXgtPndoZXJlKSkKKwlyZXR1cm4gZmFsc2U7 CiAgICAgfQogCiAgIHJldHVybiB0cnVlOwpkaWZmIC0tZ2l0IGEvZ2NjL2ZvcnRyYW4vZXJy b3IuY2MgYi9nY2MvZm9ydHJhbi9lcnJvci5jYwppbmRleCAyYWM1MWU5NWU0ZC4uYjhiMzZj MGNkN2MgMTAwNjQ0Ci0tLSBhL2djYy9mb3J0cmFuL2Vycm9yLmNjCisrKyBiL2djYy9mb3J0 cmFuL2Vycm9yLmNjCkBAIC05ODAsNyArOTgwLDkgQEAgY2hhciBjb25zdCoKIG5vdGlmeV9z dGRfbXNnKGludCBzdGQpCiB7CiAKLSAgaWYgKHN0ZCAmIEdGQ19TVERfRjIwMThfREVMKQor ICBpZiAoc3RkICYgR0ZDX1NURF9GMjAyMykKKyAgICByZXR1cm4gXygiRm9ydHJhbiAyMDIz OiIpOworICBlbHNlIGlmIChzdGQgJiBHRkNfU1REX0YyMDE4X0RFTCkKICAgICByZXR1cm4g XygiRm9ydHJhbiAyMDE4IGRlbGV0ZWQgZmVhdHVyZToiKTsKICAgZWxzZSBpZiAoc3RkICYg R0ZDX1NURF9GMjAxOF9PQlMpCiAgICAgcmV0dXJuIF8oIkZvcnRyYW4gMjAxOCBvYnNvbGVz Y2VudCBmZWF0dXJlOiIpOwpkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nZm9ydHJhbi5k Zy9zeXN0ZW1fY2xvY2tfNC5mOTAgYi9nY2MvdGVzdHN1aXRlL2dmb3J0cmFuLmRnL3N5c3Rl bV9jbG9ja180LmY5MApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4u ZDQ0OTZlZmJlMmEKLS0tIC9kZXYvbnVsbAorKysgYi9nY2MvdGVzdHN1aXRlL2dmb3J0cmFu LmRnL3N5c3RlbV9jbG9ja180LmY5MApAQCAtMCwwICsxLDI0IEBACishIHsgZGctZG8gY29t cGlsZSB9CishIHsgZGctb3B0aW9ucyAiLXN0ZD1mMjAyMyIgfQorISBQUiBmb3J0cmFuLzEx MjYwOSAtIEYyMDIzIHJlc3RyaWN0aW9ucyBvbiBpbnRlZ2VyIGFyZ3VtZW50cyB0byBTWVNU RU1fQ0xPQ0sKKworcHJvZ3JhbSBwCisgIGltcGxpY2l0IG5vbmUKKyAgaW50ZWdlciAgICA6 OiBpLCAgaiwgIGsKKyAgaW50ZWdlcigyKSA6OiBpMiwgajIsIGsyCisgIGludGVnZXIoOCkg OjogaTgsIGo4LCBrOAorICByZWFsICAgICAgIDo6IHgKKworICBjYWxsIHN5c3RlbV9jbG9j ayhjb3VudD1pMikgICAgICAhIHsgZGctZXJyb3IgImF0IGxlYXN0IGRlZmF1bHQgaW50ZWdl ciIgfQorICBjYWxsIHN5c3RlbV9jbG9jayhjb3VudF9yYXRlPWoyKSAhIHsgZGctZXJyb3Ig ImF0IGxlYXN0IGRlZmF1bHQgaW50ZWdlciIgfQorICBjYWxsIHN5c3RlbV9jbG9jayhjb3Vu dF9tYXg9azIpICAhIHsgZGctZXJyb3IgImF0IGxlYXN0IGRlZmF1bHQgaW50ZWdlciIgfQor CisgIGNhbGwgc3lzdGVtX2Nsb2NrKGNvdW50PWk4LGNvdW50X3JhdGU9eCxjb3VudF9tYXg9 azgpCisgIGNhbGwgc3lzdGVtX2Nsb2NrKGNvdW50PWksIGNvdW50X3JhdGU9ajgpICAgICAh IHsgZGctZXJyb3IgImhhdmUgdGhlIHNhbWUga2luZCIgfQorICBjYWxsIHN5c3RlbV9jbG9j ayhjb3VudD1pOCxjb3VudF9yYXRlPWopICAgICAgISB7IGRnLWVycm9yICJoYXZlIHRoZSBz YW1lIGtpbmQiIH0KKyAgY2FsbCBzeXN0ZW1fY2xvY2soY291bnQ9aSwgY291bnRfbWF4PWs4 KSAgICAgICEgeyBkZy1lcnJvciAiaGF2ZSB0aGUgc2FtZSBraW5kIiB9CisgIGNhbGwgc3lz dGVtX2Nsb2NrKGNvdW50PWk4LGNvdW50X21heD1rKSAgICAgICAhIHsgZGctZXJyb3IgImhh dmUgdGhlIHNhbWUga2luZCIgfQorICBjYWxsIHN5c3RlbV9jbG9jayhjb3VudF9yYXRlPWos IGNvdW50X21heD1rOCkgISB7IGRnLWVycm9yICJoYXZlIHRoZSBzYW1lIGtpbmQiIH0KKyAg Y2FsbCBzeXN0ZW1fY2xvY2soY291bnRfcmF0ZT1qOCxjb3VudF9tYXg9aykgICEgeyBkZy1l cnJvciAiaGF2ZSB0aGUgc2FtZSBraW5kIiB9CisgIGNhbGwgc3lzdGVtX2Nsb2NrKGkseCxr OCkgICAgICAgICAgICAgICAgICAgICAhIHsgZGctZXJyb3IgImhhdmUgdGhlIHNhbWUga2lu ZCIgfQorZW5kCi0tIAoyLjM1LjMKCg== --------------wSFJw5FSREeSZdeAV6F10EgR--