This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug fortran/78351] comma not terminating READ of formatted input field - ok in 4.1.7, not 4.4.7- maybe related to 25419?
- From: "sgk at troutmask dot apl.washington.edu" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Thu, 17 Nov 2016 02:19:47 +0000
- Subject: [Bug fortran/78351] comma not terminating READ of formatted input field - ok in 4.1.7, not 4.4.7- maybe related to 25419?
- Auto-submitted: auto-generated
- References: <bug-78351-4@http.gcc.gnu.org/bugzilla/>
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78351
--- Comment #20 from Steve Kargl <sgk at troutmask dot apl.washington.edu> ---
On Thu, Nov 17, 2016 at 01:44:45AM +0000, sgk at troutmask dot
apl.washington.edu wrote:
>
> In the above, you are hitting an end-of-record. I would need
> to go read the Standard to see what happens in this situation.
> I suspect that this may be Standard conforming, but the variables
> i and j are undefined and technically cannot be referenced until
> the variables become defined.
The acceptance of comma is a pox upon the world.
The following should simply exit upon execution,
instead prints ' 1 2'
program foo
open(unit=10, file='zxc')
read(10, '(2I10)', eor=3, advance='no') i,j
print *, i, j
stop
3 continue
end program foo
where the file 'zxc' contains the line
1,2,3,,,,
gfortran is definitely doing the right thing with your
original code. Using Fortran ability to report errors
shows
program foo
integer k
character(len=80) s, t
s = '1,2,3,,,,'
read(s, '(2I10)', err=3, iostat=k, iomsg=t) i,j
print *, i, j
stop
3 continue
print *, k, trim(t)
end program foo
% gfc7 -o z c.f90
% ./z
5010 Bad value during integer read