PR 49296 List read, EOF without preceding separator
2011-07-13 Janne Blomqvist <jb@gcc.gnu.org> PR libfortran/49296 * io/list_read.c (read_logical): Don't error out if a valid value is followed by EOF instead of a normal separator. (read_integer): Likewise. testsuite: 2011-07-13 Janne Blomqvist <jb@gcc.gnu.org> PR libfortran/49296 * gfortran.dg/read_list_eof_1.f90: Add tests for integer, real, and logical reads. From-SVN: r176245
This commit is contained in:
parent
9e34e53f8e
commit
5f54710465
@ -1,3 +1,9 @@
|
||||
2011-07-13 Janne Blomqvist <jb@gcc.gnu.org>
|
||||
|
||||
PR libfortran/49296
|
||||
* gfortran.dg/read_list_eof_1.f90: Add tests for integer, real,
|
||||
and logical reads.
|
||||
|
||||
2011-07-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
|
||||
|
||||
* gcc.c-torture/execute/990127-2.x: Use -mpc64 on i?86-*-darwin*,
|
||||
|
@ -3,7 +3,11 @@
|
||||
program read_list_eof_1
|
||||
implicit none
|
||||
character(len=100) :: s
|
||||
call genfil ()
|
||||
integer :: ii
|
||||
real :: rr
|
||||
logical :: ll
|
||||
|
||||
call genfil ('a')
|
||||
open (unit=20, file='read.dat', form='FORMATTED', action='READ', &
|
||||
status='OLD')
|
||||
read (20, fmt=*) s
|
||||
@ -12,11 +16,39 @@ program read_list_eof_1
|
||||
call abort ()
|
||||
end if
|
||||
|
||||
call genfil ('1')
|
||||
open (unit=20, file='read.dat', form='FORMATTED', action='READ', &
|
||||
status='OLD')
|
||||
read (20, fmt=*) ii
|
||||
close (20, status='delete')
|
||||
if (ii /= 1) then
|
||||
call abort ()
|
||||
end if
|
||||
|
||||
call genfil ('1.5')
|
||||
open (unit=20, file='read.dat', form='FORMATTED', action='READ', &
|
||||
status='OLD')
|
||||
read (20, fmt=*) rr
|
||||
close (20, status='delete')
|
||||
if (rr /= 1.5) then
|
||||
call abort ()
|
||||
end if
|
||||
|
||||
call genfil ('T')
|
||||
open (unit=20, file='read.dat', form='FORMATTED', action='READ', &
|
||||
status='OLD')
|
||||
read (20, fmt=*) ll
|
||||
close (20, status='delete')
|
||||
if (.not. ll) then
|
||||
call abort ()
|
||||
end if
|
||||
|
||||
contains
|
||||
subroutine genfil
|
||||
subroutine genfil(str)
|
||||
character(len=*), intent(in) :: str
|
||||
open(10, file='read.dat', form='unformatted', action='write', &
|
||||
status='replace', access='stream')
|
||||
write(10) 'a'
|
||||
write(10) str
|
||||
close(10)
|
||||
end subroutine genfil
|
||||
end program read_list_eof_1
|
||||
|
@ -1,3 +1,10 @@
|
||||
2011-07-13 Janne Blomqvist <jb@gcc.gnu.org>
|
||||
|
||||
PR libfortran/49296
|
||||
* io/list_read.c (read_logical): Don't error out if a valid value
|
||||
is followed by EOF instead of a normal separator.
|
||||
(read_integer): Likewise.
|
||||
|
||||
2011-07-09 Tobias Burnus <burnus@net-b.de>
|
||||
|
||||
* runtime/error.c (sys_abort): Change argument list
|
||||
|
@ -657,22 +657,20 @@ read_logical (st_parameter_dt *dtp, int length)
|
||||
{
|
||||
case 't':
|
||||
v = 1;
|
||||
if ((c = next_char (dtp)) == EOF)
|
||||
goto bad_logical;
|
||||
c = next_char (dtp);
|
||||
l_push_char (dtp, c);
|
||||
|
||||
if (!is_separator(c))
|
||||
if (!is_separator(c) && c != EOF)
|
||||
goto possible_name;
|
||||
|
||||
unget_char (dtp, c);
|
||||
break;
|
||||
case 'f':
|
||||
v = 0;
|
||||
if ((c = next_char (dtp)) == EOF)
|
||||
goto bad_logical;
|
||||
c = next_char (dtp);
|
||||
l_push_char (dtp, c);
|
||||
|
||||
if (!is_separator(c))
|
||||
if (!is_separator(c) && c != EOF)
|
||||
goto possible_name;
|
||||
|
||||
unget_char (dtp, c);
|
||||
@ -837,6 +835,7 @@ read_integer (st_parameter_dt *dtp, int length)
|
||||
goto repeat;
|
||||
|
||||
CASE_SEPARATORS: /* Not a repeat count. */
|
||||
case EOF:
|
||||
goto done;
|
||||
|
||||
default:
|
||||
@ -886,6 +885,7 @@ read_integer (st_parameter_dt *dtp, int length)
|
||||
break;
|
||||
|
||||
CASE_SEPARATORS:
|
||||
case EOF:
|
||||
goto done;
|
||||
|
||||
default:
|
||||
|
Loading…
Reference in New Issue
Block a user