From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-ej1-x629.google.com (mail-ej1-x629.google.com [IPv6:2a00:1450:4864:20::629]) by sourceware.org (Postfix) with ESMTPS id E825C3858C52 for ; Thu, 4 Apr 2024 09:31:29 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org E825C3858C52 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=baylibre.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=baylibre.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org E825C3858C52 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=2a00:1450:4864:20::629 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1712223093; cv=none; b=HhhuU7T/KsEkzrzNrwYP9m/d7nrqCAXUyizvlgLMxVHkBpNKXzqWAl/LeT8P7kbDsRPQbKD3Jm1CaOzKyNlc1V/HzxoY0RoZv6PaSOpt2vxKnKkcR4Xt/XYUdfzVLO0yDEb8dS13JNxDxCvTIFlfUrXzyNqB9M+oYXIpTDNaPtc= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1712223093; c=relaxed/simple; bh=SxG1PspakLoBKnmeOgMq5eU0bvKulvvSXYFuvCcwsSQ=; h=DKIM-Signature:Message-ID:Date:MIME-Version:Subject:To:From; b=NOBZzF9QHMnaO7m+RzzqU0x2hG/usSfKDDL3CQjmQ/o8VMvVNVzNXtnrpvFNhHavtF3GefMvV1kBikO7Ub2LJltybiUy/12V+/Cv5MftH2MZQUzoNoAzXn3d3gnpc3yfUWoXWWiL1oQyCZscoSyRu8FMJi8xyAFqPjBwfEuvCGE= ARC-Authentication-Results: i=1; server2.sourceware.org Received: by mail-ej1-x629.google.com with SMTP id a640c23a62f3a-a44665605f3so82730766b.2 for ; Thu, 04 Apr 2024 02:31:29 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=baylibre-com.20230601.gappssmtp.com; s=20230601; t=1712223088; x=1712827888; darn=gcc.gnu.org; h=in-reply-to:from:content-language:references:cc:to:subject :user-agent:mime-version:date:message-id:from:to:cc:subject:date :message-id:reply-to; bh=W0nszXiippqSpr2FD8BO8QqHiz36O8nCWjru6tTQspE=; b=sMyQAH2gQ8/spMP+D5gqB5cfaoOEYjeRovItB9RoDgcwU02cY1zcdw3dDdP/u3YbZV DEDLJtPyA+GFzUWqRprbC1+JJz03au0bhsttpqQ1SHH2ARCkTpybmfGr8+wOO3Kk183D 1o3L12nn2R+1pJznweXngnuViw37SFleh0tMea3/43bhiJxWp9e2TLgZbYEskEOQZZVO s954kPEtBbcLltnTenC656z+m7jOshpttZzMfaQbTxFykVbE1btU1XZF7bSakfWgtAd8 cnAclDfbwtW3SpYldXVPD+IA2ZypOVXmvW0qvpfebbSvvjlxW5Q934vv/JjtxC2EOpdx PamQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712223088; x=1712827888; h=in-reply-to:from:content-language:references:cc:to:subject :user-agent:mime-version:date:message-id:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=W0nszXiippqSpr2FD8BO8QqHiz36O8nCWjru6tTQspE=; b=DDNuQHCsBfLGJd4E6AFhO4U3hhud0yvBz4mPMyRWyPJgVhMjD7sbB/lRQTZ0KlN7Vl GERFnmRkKTFeSyv0HZaEeANw8Pe7e6aPsE5E4kWc2KZBf27aJHQR4aGC1XPq83unxilY huHKtv3N09wfitasEmwhuXnUFYuIemXUYGRBD4aRnQgp+8VCyRVS1XRZHMokrlDTrJ2v ncbZ7wgetJzzveMxayN9f26pTMUZd6Vhacf46jFWU4ZMXQcfJMN3uKzkkZ4bow1GbyVd rBtTFMhACSUW62r4VnR5A2ln/5hMAA5A89DImNwnoQS+ZIMrG0YuXJ83OuihiN8lQGwM mNpg== X-Forwarded-Encrypted: i=1; AJvYcCV2pf8wUBfbgc6cS70+bjXkmT3hE/oaddQ2NJUWUNeOZ20uretAlAOI4+gxvHiZs99pOgBXUvCjIj7smd/Jji77f/zM X-Gm-Message-State: AOJu0YztyO+Z1YC0wPdmk4+IUGSo3HvVQeAn3jpG7DTYHh6D4o+l3jYj KGuv+pIxrQ5kUR004teGQpCjyXns5HK+kVLLePNIOanbjUmrvj+s+59Wa3BYn1E= X-Google-Smtp-Source: AGHT+IFitNmU2T95ObnIcMCwYUJ8i5xTthSu+xMPLZoFv5X4nAK6u9coxKtLELoPRrAb+nix6mkfqQ== X-Received: by 2002:a17:906:1c56:b0:a4e:5a23:24d with SMTP id l22-20020a1709061c5600b00a4e5a23024dmr1163267ejg.38.1712223088519; Thu, 04 Apr 2024 02:31:28 -0700 (PDT) Received: from ?IPV6:2001:16b8:2ae1:f200:2a4:4500:1274:6663? (200116b82ae1f20002a4450012746663.dip.versatel-1u1.de. [2001:16b8:2ae1:f200:2a4:4500:1274:6663]) by smtp.gmail.com with ESMTPSA id s12-20020a170906a18c00b00a4672fb2a03sm8874942ejy.10.2024.04.04.02.31.27 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Thu, 04 Apr 2024 02:31:27 -0700 (PDT) Content-Type: multipart/mixed; boundary="------------FpwcaV6zrrwZ860ZIbm0zKI1" Message-ID: Date: Thu, 4 Apr 2024 11:31:26 +0200 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: =?UTF-8?Q?Re=3A_=5Bpatch=2C_libgfortran=5D_PR114304_-_=5B13/14_Regr?= =?UTF-8?Q?ession=5D_libgfortran_I/O_=E2=80=93_bogus_=22Semicolon_not_allowe?= =?UTF-8?Q?d_as_separator_with_DECIMAL=3D=27point=27=22?= To: Jerry D , gfortran Cc: gcc-patches References: <9a848b89-ee95-44f7-8491-cbe22804edf4@gmail.com> Content-Language: en-US From: Tobias Burnus In-Reply-To: <9a848b89-ee95-44f7-8491-cbe22804edf4@gmail.com> X-Spam-Status: No, score=-5.0 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,KAM_SHORT,RCVD_IN_DNSWL_NONE,SPF_HELO_NONE,SPF_PASS,TXREP 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. --------------FpwcaV6zrrwZ860ZIbm0zKI1 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Hi Jerry, Jerry D wrote: > The attached log entry and patch (git show) fixes this issue by adding > logic to handle spaces in eat_separators. One or more spaces by > themselves are a valid separator. So in this case we look at the > character following the spaces to see if it is a comma or semicolon. > > If so, I change it to the valid separator for the given decimal mode, > point or comma. This allows the comma or semicolon to be interpreted as > a null read on the next effective item in the formatted read. > > I chose a permissive approach here that allows reads to proceed when the > input line is mal-formed with an incorrect separator as long as there is > at least one space in front of it. First: Consider also adding 'PR fortran/105473' to the commit log as the PRs are closely related, albeit this PR is different- The patch looks mostly like I would expect, except for decimal='point' and a ';' which is *not* preceded by a space. Thanks for working on it. Regarding the 'except' case: * * * If I try your patch with the testcase of at comment 19, https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114304#c19 → https://gcc.gnu.org/bugzilla/attachment.cgi?id=57695 , I do note that with 'decimal=point', a tailing semicolon is silently accepted – even if not proceeded by a space. I think such code is invalid – and you could consider to reject it. Otherwise, the handling all seems to be in line with the Fortran spec. i.e. for the following string, I had *expected an error*: point, isreal = F , testinput = ";"n= 42 ios= 0 point, isreal = F , testinput = "5;"n= 5 ios= 0 point, isreal = T , testinput = "8;"r= 8.00000000 ios= 0 point, isreal = T , testinput = "3.3;"r= 3.29999995 ios= 0 point, isreal = T , testinput = "3,3;"r= 3.00000000 ios= 0 while I think the following is OK (i.e. no error is what I expect) due to the the space before the ';'. point, isreal = F , testinput = "7 ;"n= 7 ios= 0 point, isreal = T , testinput = "9 ;"r= 9.00000000 ios= 0 point, isreal = T , testinput = "4.4 ;"r= 4.40000010 ios=0 point, isreal = T , testinput = "9 ;"r= 9.00000000 ios= 0 point, isreal = T , testinput = "4,4 ;"r= 4.00000000 ios= 0 * * * Looking at the other compilers, ifort, ifx and Flang do issue an error here. Likewise, g95 seems to yield an error in this case (see below). I do note that the Lapack testcase that triggered this PR did have such a code - but it was then changed because g95 did not like it: https://github.com/Reference-LAPACK/lapack/commit/64e8a7500d817869e5fcde35afd39af8bc7a8086 In terms of gfortran: until recently did accept it (all versions, including 13+14); it then rejected it due to the change in PR105473 (GCC 14/mainline, backported to 13)– but I now think it rightly did so. With the current patch, it is accepted again. * * * I have attached the modified testcase linked above; consider adding it as well. - Changes to the one of the attachment: - I added a few additional (albeit boring) tests - I added an expected output + error diagnostic. The testcase assumes an error for ';' as separator (with 'point'), unless there is a space before it. [If we want to not diagnose this as vendor extension, we really need to add a comment to that testcase besides changing valid = .false. to .true.] Tobias --------------FpwcaV6zrrwZ860ZIbm0zKI1 Content-Type: text/x-fortran; charset=UTF-8; name="pr114304.f90" Content-Disposition: attachment; filename="pr114304.f90" Content-Transfer-Encoding: base64 ISB7IGRnLWRvIHJ1biB9CiEKISBQUiBmb3J0cmFuLzExNDMwNAohCiEgU2VlIGFsc28gUFIg Zm9ydHJhbi8xMDU0NzMKIQohIFRlc3Rpbmc6IERvZXMgbGlzdC1kaXJlY3RlZCByZWFkaW5n IGFuIGludGVnZXIvcmVhbCBhbGxvd3Mgc29tZSBub24taW50ZWdlciBpbnB1dD8KIQohIE5v dGU6IEdDQyByZXN1bHQgY29tbWVudHMgYmVmb3JlIGZpeCBvZiB0aGlzIFBSLgoKICBpbXBs aWNpdCBub25lCiAgY2FsbCB0KC50cnVlLiwgICdjb21tYScsICc7JykgISBObyBlcnJvciBz aG93bgogIGNhbGwgdCguZmFsc2UuLCAncG9pbnQnLCAnOycpICEgLyFcIGdmb3J0cmFuOiBu byBlcnJvciwgb3RoZXJzOiBlcnJvcgogIGNhbGwgdCguZmFsc2UuLCAnY29tbWEnLCAnLCcp ICEgRXJyb3Igc2hvd24KICBjYWxsIHQoLnRydWUuLCAgJ3BvaW50JywgJywnKSAhIE5vIGVy cm9yIHNob3duCiAgY2FsbCB0KC5mYWxzZS4sICdjb21tYScsICcuJykgISBFcnJvciBzaG93 bgogIGNhbGwgdCguZmFsc2UuLCAncG9pbnQnLCAnLicpICEgRXJyb3Igc2hvd24KICBjYWxs IHQoLmZhbHNlLiwgJ2NvbW1hJywgJzUuJykgISBFcnJvciBzaG93bgogIGNhbGwgdCguZmFs c2UuLCAncG9pbnQnLCAnNS4nKSAhIGdmb3J0cmFuL2ZsYW5nOiBFcnJvciBzaG93biwgaWZv cnQ6IG5vIGVycm9yCiAgY2FsbCB0KC5mYWxzZS4sICdjb21tYScsICc1LCcpICEgZ2ZvcnRy YW46IGVycm9yOyBvdGhlcnM6IG5vIGVycm9yCiAgY2FsbCB0KC50cnVlLiwgICdwb2ludCcs ICc1LCcpICEgTm8gZXJyb3Igc2hvd24KICBjYWxsIHQoLnRydWUuLCAgJ2NvbW1hJywgJzU7 JykgISBObyBlcnJvciBzaG93bgogIGNhbGwgdCguZmFsc2UuLCAncG9pbnQnLCAnNTsnKSAh IC8hXCBnZm9ydHJhbjogbm8gZXJyb3Igc2hvd24sIG90aGVyczogZXJyb3IKICBjYWxsIHQo LnRydWUuLCAgJ2NvbW1hJywgJzcgLicpICEgTm8gZXJyb3Igc2hvd24KICBjYWxsIHQoLnRy dWUuLCAgJ3BvaW50JywgJzcgLicpICEgTm8gZXJyb3Igc2hvd24KICBjYWxsIHQoLnRydWUu LCAgJ2NvbW1hJywgJzcgLCcpICEgLyFcIGdmb3J0cmFuOiBlcnJvcjsgb3RoZXJzOiBubyBl cnJvcgogIGNhbGwgdCgudHJ1ZS4sICAncG9pbnQnLCAnNyAsJykgISBObyBlcnJvciBzaG93 bgogIGNhbGwgdCgudHJ1ZS4sICAnY29tbWEnLCAnNyA7JykgISBObyBlcnJvciBzaG93bgog IGNhbGwgdCgudHJ1ZS4sICAncG9pbnQnLCAnNyA7JykgISBObyBlcnJvciBzaG93bgoKISAg cHJpbnQgKiwgJy0tLS0tLS0tLS0tLS0tLScKCiAgY2FsbCB0KC5mYWxzZS4sICdjb21tYScs ICc4LicsIC50cnVlLikgISBFcnJvciBzaG93bgogIGNhbGwgdCgudHJ1ZS4sICAncG9pbnQn LCAnOC4nLCAudHJ1ZS4pICEgZ2ZvcnRyYW4vZmxhbmc6IEVycm9yIHNob3duLCBpZm9ydDog bm8gZXJyb3IKICBjYWxsIHQoLnRydWUuLCAgJ2NvbW1hJywgJzgsJywgLnRydWUuKSAhIGdm b3J0cmFuOiBlcnJvcjsgb3RoZXJzOiBubyBlcnJvcgogIGNhbGwgdCgudHJ1ZS4sICAncG9p bnQnLCAnOCwnLCAudHJ1ZS4pICEgTm8gZXJyb3Igc2hvd24KICBjYWxsIHQoLnRydWUuLCAg J2NvbW1hJywgJzg7JywgLnRydWUuKSAhIE5vIGVycm9yIHNob3duCiAgY2FsbCB0KC5mYWxz ZS4sICdwb2ludCcsICc4OycsIC50cnVlLikgISAvIVwgZ2ZvcnRyYW46IG5vIGVycm9yIHNo b3duLCBvdGhlcnM6IGVycm9yCiAgY2FsbCB0KC50cnVlLiwgICdjb21tYScsICc5IC4nLCAu dHJ1ZS4pICEgTm8gZXJyb3Igc2hvd24KICBjYWxsIHQoLnRydWUuLCAgJ3BvaW50JywgJzkg LicsIC50cnVlLikgISBObyBlcnJvciBzaG93bgogIGNhbGwgdCgudHJ1ZS4sICAnY29tbWEn LCAnOSAsJywgLnRydWUuKSAhIC8hXCBnZm9ydHJhbjogZXJyb3I7IG90aGVyczogbm8gZXJy b3IKICBjYWxsIHQoLnRydWUuLCAgJ3BvaW50JywgJzkgLCcsIC50cnVlLikgISBObyBlcnJv ciBzaG93bgogIGNhbGwgdCgudHJ1ZS4sICAnY29tbWEnLCAnOSA7JywgLnRydWUuKSAhIE5v IGVycm9yIHNob3duCiAgY2FsbCB0KC50cnVlLiwgICdwb2ludCcsICc5IDsnLCAudHJ1ZS4p ICEgTm8gZXJyb3Igc2hvd24KICBjYWxsIHQoLmZhbHNlLiwgJ2NvbW1hJywgJzMsMy4nLCAu dHJ1ZS4pICEgRXJyb3Igc2hvd24KICBjYWxsIHQoLmZhbHNlLiwgJ3BvaW50JywgJzMuMy4n LCAudHJ1ZS4pICEgRXJyb3Igc2hvd24KICBjYWxsIHQoLmZhbHNlLiwgJ2NvbW1hJywgJzMs MywnLCAudHJ1ZS4pICEgZ2ZvcnRyYW4vZmxhbmc6IG5vIGVycm9yOyBpZm9ydDogZXJyb3IK ICBjYWxsIHQoLnRydWUuLCAgJ2NvbW1hJywgJzMsMzsnLCAudHJ1ZS4pICEgTm8gZXJyb3Ig c2hvd24KICBjYWxsIHQoLmZhbHNlLiwgJ3BvaW50JywgJzMuMzsnLCAudHJ1ZS4pICEgZ2Zv cnRyYW4vZmxhbmc6IG5vIGVycm9yOyBpZm9ydDogZXJyb3IKICBjYWxsIHQoLnRydWUuLCAg J2NvbW1hJywgJzQsNCAuJywgLnRydWUuKSAhIE4gZXJyb3Igc2hvd24KICBjYWxsIHQoLnRy dWUuLCAgJ3BvaW50JywgJzQuNCAuJywgLnRydWUuKSAhIE5vIGVycm9yIHNob3duCiAgY2Fs bCB0KC50cnVlLiwgICdjb21tYScsICc0LDQgLCcsIC50cnVlLikgISAvIVwgZ2ZvcnRyYW46 IGVycm9yOyBvdGhlcnM6IG5vIGVycm9yCiAgY2FsbCB0KC50cnVlLiwgICdwb2ludCcsICc0 LjQgLCcsIC50cnVlLikgISBObyBlcnJvciBzaG93bgogIGNhbGwgdCgudHJ1ZS4sICAnY29t bWEnLCAnNCw0IDsnLCAudHJ1ZS4pICEgTm8gZXJyb3Igc2hvd24KICBjYWxsIHQoLnRydWUu LCAgJ3BvaW50JywgJzQuNCA7JywgLnRydWUuKSAhIE5vIGVycm9yIHNob3duCgohICBwcmlu dCAqLCAnLS0tLS0tLS0tLS0tLS0tJwoKICBjYWxsIHQoLnRydWUuLCAgJ2NvbW1hJywgJzgn LCAudHJ1ZS4pCiAgY2FsbCB0KC50cnVlLiwgICdwb2ludCcsICc4JywgLnRydWUuKQogIGNh bGwgdCgudHJ1ZS4sICAncG9pbnQnLCAnOSA7JywgLnRydWUuKQogIGNhbGwgdCgudHJ1ZS4s ICAnY29tbWEnLCAnMzszLicsIC50cnVlLikKICBjYWxsIHQoLnRydWUuLCAgJ3BvaW50Jywg JzMsMy4nLCAudHJ1ZS4pCiAgY2FsbCB0KC50cnVlLiwgICdjb21tYScsICczOzMsJywgLnRy dWUuKQogIGNhbGwgdCgudHJ1ZS4sICAnY29tbWEnLCAnMzszOycsIC50cnVlLikKICBjYWxs IHQoLnRydWUuLCAgJ3BvaW50JywgJzMsMzsnLCAudHJ1ZS4pCiAgY2FsbCB0KC50cnVlLiwg ICdjb21tYScsICc0OzQgLicsIC50cnVlLikKICBjYWxsIHQoLnRydWUuLCAgJ3BvaW50Jywg JzQsNCAuJywgLnRydWUuKQogIGNhbGwgdCgudHJ1ZS4sICAnY29tbWEnLCAnNDs0ICwnLCAu dHJ1ZS4pCiAgY2FsbCB0KC50cnVlLiwgICdwb2ludCcsICc0LDQgLCcsIC50cnVlLikKICBj YWxsIHQoLnRydWUuLCAgJ2NvbW1hJywgJzQ7NCA7JywgLnRydWUuKQogIGNhbGwgdCgudHJ1 ZS4sICAncG9pbnQnLCAnNCw0IDsnLCAudHJ1ZS4pCmNvbnRhaW5zCnN1YnJvdXRpbmUgdCh2 YWxpZCwgZGVjLCB0ZXN0aW5wdXQsIGlzcmVhbCkKICBsb2dpY2FsLCB2YWx1ZSA6OiB2YWxp ZAogIGNoYXJhY3RlcihsZW49KikgOjogZGVjLCB0ZXN0aW5wdXQKICBsb2dpY2FsLCBvcHRp b25hbCA6OiBpc3JlYWwKICBsb2dpY2FsIDo6IGlzcmVhbDIKICBpbnRlZ2VyIG4saW9zCiAg cmVhbCA6OiByCiAgciA9IDQyOyBuID0gNDIKICBpc3JlYWwyID0gLmZhbHNlLgogIGlmIChw cmVzZW50KGlzcmVhbCkpIGlzcmVhbDIgPSBpc3JlYWwKCiAgaWYgKGlzcmVhbDIpIHRoZW4K ICAgIHJlYWQodGVzdGlucHV0LCosZGVjaW1hbD1kZWMsaW9zdGF0PWlvcykgcgogICAgaWYg KCh2YWxpZCAuYW5kLiBpb3MgLz0gMCkgLm9yLiAoLm5vdC52YWxpZCAuYW5kLiBpb3MgPT0g MCkpIHRoZW4KICAgICAgcHJpbnQgJygqKGcwKSknLCB2YWxpZCwgJywgJywgZGVjLCcsIGlz cmVhbCA9ICcsaXNyZWFsMiwnLCB0ZXN0aW5wdXQgPSAiJyx0ZXN0aW5wdXQsJyInLCcsIHI9 JyxyLCcgaW9zPScsaW9zCiAgICAgIHByaW50ICosICdFUlJPUicKICAgICAgc3RvcCAxCiAg ICBlbmQgaWYKICBlbHNlCiAgICByZWFkKHRlc3RpbnB1dCwqLGRlY2ltYWw9ZGVjLGlvc3Rh dD1pb3MpIG4KICAgIGlmICgodmFsaWQgLmFuZC4gaW9zIC89IDApIC5vci4gKC5ub3QudmFs aWQgLmFuZC4gaW9zID09IDApKSB0aGVuCiAgICAgIHByaW50ICcoKihnMCkpJywgdmFsaWQs ICcsICcsIGRlYywnLCBpc3JlYWwgPSAnLGlzcmVhbDIsJywgdGVzdGlucHV0ID0gIicsdGVz dGlucHV0LCciJywnLCBuPScsbiwnIGlvcz0nLGlvcwogICAgICBwcmludCAqLCAnRVJST1In CiAgICAgIHN0b3AgMQogICAgZW5kIGlmCiAgZW5kIGlmCmVuZAplbmQgcHJvZ3JhbQo= --------------FpwcaV6zrrwZ860ZIbm0zKI1--