public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
From: "harper at msor dot vuw.ac.nz" <gcc-bugzilla@gcc.gnu.org>
To: gcc-bugs@gcc.gnu.org
Subject: [Bug fortran/105473] semicolon allowed when list-directed read integer with decimal='point'
Date: Thu, 19 May 2022 00:10:44 +0000 [thread overview]
Message-ID: <bug-105473-4-nuW0RBQWmv@http.gcc.gnu.org/bugzilla/> (raw)
In-Reply-To: <bug-105473-4@http.gcc.gnu.org/bugzilla/>
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105473
--- Comment #19 from harper at msor dot vuw.ac.nz ---
Thank you. To make the outputs from my test program testdecimal.f90 easier
to compare when using different compilers, and to clarify where a reading
error happened, I have revised the program to make its results clearer.
Below is the new version of the program. I see no point in sending its
output with my gfortran, which does not have Jerry's latest corrections,
but I do provide its output with ifort, which it is not your job to debug!
john@johns-laptop:~/Jfh$ cat testdecimal.f90
! Test list-directed reading with decimal='point' and 'comma' by
! printing one line for each of 32 cases, reading input(1:16) with each
! of 'point' or 'comma', using s(ios) to give ERR, OK or end according
! to the iostat=ios value from reading. Before reading, x=[666,999].
implicit none
real x(2)
integer ios,i,j
character(*),parameter:: punc=",; .",fmt='(1X,A,I2,1X,5A,2F7.1,1X,A)'
integer,parameter:: lpunc =len(punc)
character:: dec(2)*5=['point','comma'], input(lpunc**2)*4 = &
[(("2"//punc(i:i)//"5"//punc(j:j),i=1,lpunc),j=1,lpunc)]
do i = 1,size(input)
do j = 1,2
x = [666, 999]
read(input(i),*,decimal=dec(j),iostat=ios) x
print fmt,'i=',i,' input="',input(i),'" with ',dec(j),&
' x =',x,s(ios)
end do
end do
contains
character(3) function s(ios) ! ERR, OK ,end if ios>0, ==0, <0
integer,intent(in):: ios
s = merge('ERR',merge(' OK','end',ios==0),ios>0)
end function s
end program
john@johns-laptop:~/Jfh$ ifort testdecimal.f90; ./a.out
Compiling "ifort testdecimal.f90"
i= 1 input="2,5," with point x = 2.0 5.0 OK
i= 1 input="2,5," with comma x = 666.0 999.0 ERR
i= 2 input="2;5," with point x = 666.0 999.0 ERR
i= 2 input="2;5," with comma x = 2.0 5.0 OK
i= 3 input="2 5," with point x = 2.0 5.0 OK
i= 3 input="2 5," with comma x = 2.0 5.0 OK
i= 4 input="2.5," with point x = 2.5 999.0 end
i= 4 input="2.5," with comma x = 666.0 999.0 ERR
i= 5 input="2,5;" with point x = 2.0 999.0 ERR
i= 5 input="2,5;" with comma x = 2.5 999.0 end
i= 6 input="2;5;" with point x = 666.0 999.0 ERR
i= 6 input="2;5;" with comma x = 2.0 5.0 OK
i= 7 input="2 5;" with point x = 2.0 999.0 ERR
i= 7 input="2 5;" with comma x = 2.0 5.0 OK
i= 8 input="2.5;" with point x = 666.0 999.0 ERR
i= 8 input="2.5;" with comma x = 666.0 999.0 ERR
i= 9 input="2,5 " with point x = 2.0 5.0 OK
i= 9 input="2,5 " with comma x = 2.5 999.0 end
i=10 input="2;5 " with point x = 666.0 999.0 ERR
i=10 input="2;5 " with comma x = 2.0 5.0 OK
i=11 input="2 5 " with point x = 2.0 5.0 OK
i=11 input="2 5 " with comma x = 2.0 5.0 OK
i=12 input="2.5 " with point x = 2.5 999.0 end
i=12 input="2.5 " with comma x = 666.0 999.0 ERR
i=13 input="2,5." with point x = 2.0 5.0 OK
i=13 input="2,5." with comma x = 666.0 999.0 ERR
i=14 input="2;5." with point x = 666.0 999.0 ERR
i=14 input="2;5." with comma x = 2.0 999.0 ERR
i=15 input="2 5." with point x = 2.0 5.0 OK
i=15 input="2 5." with comma x = 2.0 999.0 ERR
i=16 input="2.5." with point x = 666.0 999.0 ERR
i=16 input="2.5." with comma x = 666.0 999.0 ERR
john@johns-laptop:~/Jfh$
On Wed, 18 May 2022, jvdelisle at gcc dot gnu.org wrote:
> Date: Wed, 18 May 2022 02:52:26 +0000
> From: jvdelisle at gcc dot gnu.org <gcc-bugzilla@gcc.gnu.org>
> To: John Harper <john.harper@vuw.ac.nz>
> Subject: [Bug fortran/105473] semicolon allowed when list-directed read
> integer with decimal='point'
> Resent-Date: Wed, 18 May 2022 14:52:38 +1200 (NZST)
> Resent-From: <john.harper@vuw.ac.nz>
>
> https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105473
>
> --- Comment #18 from Jerry DeLisle <jvdelisle at gcc dot gnu.org> ---
> (In reply to harper from comment #17)
>> On comparing that with ifort's result I think that the only remaining bug
>> is that if decimal='comma' then '.' is neither a decimal symbol nor a
>> separator (see f2018 13.6).
>
> Making this easier for others to see.
>
> With gfortran I see with the 8th sub-case:
>
> i= 8 input(i) = "2.5;"
> with decimal=point x(:) =2.5 666.0 ios=5010
> with decimal=comma x(:) =2.5 666.0 ios=-1
>
> i= 12 input(i) = "2.5 "
> with decimal=point x(:) =2.5 666.0 ios=-1
> with decimal=comma x(:) =2.5 666.0 ios=-1
>
> In these cases the decimal=comma should have never seen 2.5
>
> With ifort:
>
> i= 8 input(i) = "2.5;"
> with decimal=point x(:) = 2.50000000 5.00000000 ios= 5010
> with decimal=comma x(:) = 2.50000000 666.000000 ios= -1
>
> I don't think ifort has the decimal=point part right, as if it backed up and
> read the digit 5 a second time.
>
> Regardless, getting closer here. I will work on the gfortran comma issue.
>
> --
> You are receiving this mail because:
> You reported the bug.
>
-- John Harper, School of Mathematics and Statistics
Victoria Univ. of Wellington, PO Box 600, Wellington 6140, New Zealand.
e-mail john.harper@vuw.ac.nz phone +64(0) 4 463 5276
next prev parent reply other threads:[~2022-05-19 0:10 UTC|newest]
Thread overview: 41+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-05-04 8:38 [Bug fortran/105473] New: " john.harper at vuw dot ac.nz
2022-05-05 2:14 ` [Bug fortran/105473] " jvdelisle2 at gmail dot com
2022-05-05 2:21 ` jvdelisle2 at gmail dot com
2022-05-05 2:50 ` harper at msor dot vuw.ac.nz
2022-05-06 1:26 ` jvdelisle2 at gmail dot com
2022-05-06 20:39 ` anlauf at gcc dot gnu.org
2022-05-08 14:54 ` jvdelisle at gcc dot gnu.org
2022-05-14 22:00 ` jvdelisle at gcc dot gnu.org
2022-05-15 8:59 ` harper at msor dot vuw.ac.nz
2022-05-15 14:37 ` jvdelisle at gcc dot gnu.org
2022-05-15 15:56 ` jvdelisle at gcc dot gnu.org
2022-05-16 0:10 ` harper at msor dot vuw.ac.nz
2022-05-16 0:42 ` jvdelisle at gcc dot gnu.org
2022-05-16 0:49 ` jvdelisle at gcc dot gnu.org
2022-05-16 0:55 ` jvdelisle at gcc dot gnu.org
2022-05-16 1:44 ` harper at msor dot vuw.ac.nz
2022-05-16 4:12 ` harper at msor dot vuw.ac.nz
2022-05-16 21:13 ` harper at msor dot vuw.ac.nz
2022-05-18 2:52 ` jvdelisle at gcc dot gnu.org
2022-05-19 0:10 ` harper at msor dot vuw.ac.nz [this message]
2022-06-03 4:33 ` jvdelisle at gcc dot gnu.org
2022-06-03 9:11 ` harper at msor dot vuw.ac.nz
2022-06-03 21:04 ` jvdelisle at gcc dot gnu.org
2022-06-04 3:47 ` harper at msor dot vuw.ac.nz
2022-07-02 17:14 ` jvdelisle at gcc dot gnu.org
2022-07-03 3:52 ` harper at msor dot vuw.ac.nz
2022-07-04 3:48 ` jvdelisle at gcc dot gnu.org
2024-02-17 18:04 ` cvs-commit at gcc dot gnu.org
2024-03-08 0:29 ` cvs-commit at gcc dot gnu.org
2024-03-08 0:30 ` jvdelisle at gcc dot gnu.org
2024-03-08 7:21 ` john.harper at vuw dot ac.nz
2024-03-09 19:12 ` jvdelisle at gcc dot gnu.org
2024-03-11 12:48 ` burnus at gcc dot gnu.org
2024-03-11 22:48 ` jvdelisle at gcc dot gnu.org
2024-03-14 8:40 ` burnus at gcc dot gnu.org
2024-03-14 9:16 ` burnus at gcc dot gnu.org
2024-04-03 3:36 ` jvdelisle at gcc dot gnu.org
2024-04-03 3:50 ` jvdelisle at gcc dot gnu.org
2024-04-06 13:56 ` cvs-commit at gcc dot gnu.org
2024-04-22 4:23 ` cvs-commit at gcc dot gnu.org
2024-04-22 4:25 ` jvdelisle at gcc dot gnu.org
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=bug-105473-4-nuW0RBQWmv@http.gcc.gnu.org/bugzilla/ \
--to=gcc-bugzilla@gcc.gnu.org \
--cc=gcc-bugs@gcc.gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).