From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mout.gmx.net (mout.gmx.net [212.227.15.19]) by sourceware.org (Postfix) with ESMTPS id D41A7385800C; Sun, 19 Nov 2023 20:46:54 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org D41A7385800C Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=gmx.de Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=gmx.de ARC-Filter: OpenARC Filter v1.0.0 sourceware.org D41A7385800C Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=212.227.15.19 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1700426817; cv=none; b=lPtVh1qe6IXJM14se2kY8pWYoAM0kGjvy4MiNv57O7leK+oZdFTSPgYGsuaagnmw16hYs5kYfXQWw5x0sDpYEq61OD+/ANLGeBO0Dd4GytzdG02VP8P7bMFg6evabQeQg3v6NXA8e3vhvCGswcvrKjzVcpcMClvsHFInei3I4Xw= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1700426817; c=relaxed/simple; bh=vwdgA+o+BcjAlonEQRHEJI2bxILpvKJvmJlUr9HpGdo=; h=DKIM-Signature:Message-ID:Date:MIME-Version:Subject:To:From; b=wUSmRmF3dqS1ZhJa2YI3QDbwNqsPcKVSiUqOey+TcJfsa9pktcUafKwzuTOacNhQnacLf/QDCYImPARPBB3fvbKFKOZQkQaNs3EfRb4RVQqqJ8m9lkrF2bzQ5NvU3Fikk/fPHynGrabtsSClIjtDtP+A7RrEzdD6y3HY/pcrDuU= ARC-Authentication-Results: i=1; server2.sourceware.org DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.de; s=s31663417; t=1700426808; x=1701031608; i=anlauf@gmx.de; bh=vwdgA+o+BcjAlonEQRHEJI2bxILpvKJvmJlUr9HpGdo=; h=X-UI-Sender-Class:Date:Subject:To:Cc:References:From: In-Reply-To; b=qdMQQjdXNQKqNbKs3zHgPVjSETszxek0sdlpEhuVdWWAYdi3DthR5Qsl5PXXtcMn ULZMYxXdFcZpyn05N4KhYn+TtfeJLWYs62z/jNpPHImQLGZCzRUi05fFkZRnu6Fyv UQCRlqvTSgc3j9SWT7FsBE8AhPKFWRiB6GpJKODSaAWaJQONS/UMwHPYqOcoCcF9v RciDfW+aIL58W6wbVgPNGaTaAJwVwBDYO2JVc4dPVDx4Y2xkokYefpW7yeMMwd/Rt NtCcedNNaXRThcZ8xwhMV3Du6yshgnzA/ZYOUc4XYXB9p8sbIrMLXKulR1IXTS3HQ 8hyESTR8FzzysTy77w== X-UI-Sender-Class: 724b4f7f-cbec-4199-ad4e-598c01a50d3a Received: from [192.168.178.29] ([79.232.156.163]) by mail.gmx.net (mrgmx005 [212.227.17.190]) with ESMTPSA (Nemesis) id 1N49h5-1rVWfp2Uxl-0103cs; Sun, 19 Nov 2023 21:46:48 +0100 Content-Type: multipart/mixed; boundary="------------wSFJw5FSREeSZdeAV6F10EgR" Message-ID: <2898e351-eee8-45dd-a05d-0280378ba872@gmx.de> Date: Sun, 19 Nov 2023 21:46:46 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: [PATCH, v2] Fortran: restrictions on integer arguments to SYSTEM_CLOCK [PR112609] To: sgk@troutmask.apl.washington.edu Cc: fortran , gcc-patches Newsgroups: gmane.comp.gcc.patches,gmane.comp.gcc.fortran References: Content-Language: en-US From: Harald Anlauf In-Reply-To: X-Provags-ID: V03:K1:p0iIk+S1OGrApPzQqt36MsKi4jZhaeMSyfQv6ENXDf4ZlCVPP6B Iixt/vFBTx3I+fueamyQh3zx35z+CdZBxGXcrYBdvOg6USijaqp/U5dK4lVG2foKq2SUcKa fA5+G4THPPoLPRKnV/C5JpSIvNpyS0Ont+4cq62JtV6U5ahV/J5p+W0B8Ugp54sB+7rQCuH ddxBb7leaRZBeR/qbfQqw== UI-OutboundReport: notjunk:1;M01:P0:oY6uE4R6npU=;PwHAiL4FoAgeMI0UVVnbvvrNf7b 8ZdZKyu4pnLiwDDC3ERVrbsMXfWscn+YbL8h+5gxBp68NVRTklGO6SeeojBCJrCAbWL/Vdyig VT19pQdt8/Qg9XcxLBZquBmH1R0xWoQ1k4niAPGqOdFEHG7D9cbTxMTutyPr4wt2VlP/CgOCf +7H1rYdmUpDwShCvbtYT8QnN6JsXX1VV23WwSau9nf3RzmSUZ/8hO0r6b9l48B+mu9nCDeHO0 Rpw/4j6JvzuAyNDqaty/hDMCwa2q7Km5zG42ul6kYrK9egzeZSwtiGGajFk8oXfzCuB3FVhXX bkB86Rt8jWa7OD2TNX+uQ4FM8Y78ezbgb/n203CnCm5vuESy8+ieIL3ILecDxejBv6GpyS3Nz A10OnmzseAdi6id2Uy3yV+j3+FmrZyz7rxJDG6LM7tVL8n/pLY0AuTdWo1P7xSTB7b83ryR2M Bj0N/tm3HfMLMGIpZ+dyL7JRlWkvBX1ibVZoMbCjK3V7D4L30kvxeKR+trsX4l6DTVd+RAw5c JCN1uzBlI1TgOjT0rlzrST/nchCXBlMWd6m2HG+1tK/kd94dMhXUXOAP5V9NjsEQdXztyOmuL hV0M2TuEe6hrdRSka+ycQh2lH3rIo8O2UkkjqAVAOa9wQT1M1c3qF4AV3qyNY++CAfH5ey/oh 8Os2CzQ9uc3LSKYPYdgJ9LzF1X4TTXPeoGguP7HJ4VCxhVfmznOVirun0ef2UPhKe3zsgPIoF BxbmyBDEaGM0iGCBnlrogo0Oq6mXKw8DgTwbq//Feln9ccJcqq51YgEYrTT741GDrXfg/4Nb9 0wpYBQ4aYlWs7AUTzsdRyM2ZzmtfY34DgQ/kHov+Ndqf05W63bEznqlOVsikQFkRj8nQowoTJ FV+rG1+LPPhxfwuhLtUdXI+cyODtth1lGij5jT41dBN1e48ZZQCA35UO//fguyPP/41kRISoz szOjM1AHt1B6Q2C3YIG7deJKwlc= X-Spam-Status: No, score=-10.5 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM,GIT_PATCH_0,RCVD_IN_BARRACUDACENTRAL,RCVD_IN_DNSWL_LOW,RCVD_IN_MSPIKE_H3,RCVD_IN_MSPIKE_WL,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: This is a multi-part message in MIME format. --------------wSFJw5FSREeSZdeAV6F10EgR Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: quoted-printable 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 =3D -1; >> + bool f2023 =3D ((gfc_option.allow_std & GFC_STD_F2023) !=3D 0 >> + && (gfc_option.allow_std & GFC_STD_GNU) =3D=3D 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=3Dgnu shall include everything allowed by -std=3Df2023. Here we have the problem that the testcase is valid F2018 and is silently accepted by gfortran-13 for -std=3Dgnu and -std=3Df2018. I prefer to keep it that way also for gfortran-14, and apply the new restrictions only for -std=3Df2023. Do we agree on this? Now that should happen for -std=3Dgnu -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=3Df2023. 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_C= LOCK " > "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 =3D std & ~gfc_option.allow_std; /* Standard to error about. */ error =3D (estd !=3D 0); if (error) msg =3D notify_std_msg (estd); ... So for -std=3Df2023 we get estd=3D0, error=3Dfalse, and *NO* error. For -std=3Df2018 we get error=3Dtrue 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-- 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--