diff options
author | Janne Blomqvist <jb@gcc.gnu.org> | 2011-07-13 21:46:44 +0300 |
---|---|---|
committer | Janne Blomqvist <jb@gcc.gnu.org> | 2011-07-13 21:46:44 +0300 |
commit | 5f54710465b16155cffaa7934e29533cd2d21292 (patch) | |
tree | e79f00855ec05f85b621ccd763a2676cc70806e1 /libgfortran | |
parent | 9e34e53f8e2c0379411d643790e0587038d922cf (diff) | |
download | gcc-5f54710465b16155cffaa7934e29533cd2d21292.zip gcc-5f54710465b16155cffaa7934e29533cd2d21292.tar.gz gcc-5f54710465b16155cffaa7934e29533cd2d21292.tar.bz2 |
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
Diffstat (limited to 'libgfortran')
-rw-r--r-- | libgfortran/ChangeLog | 7 | ||||
-rw-r--r-- | libgfortran/io/list_read.c | 12 |
2 files changed, 13 insertions, 6 deletions
diff --git a/libgfortran/ChangeLog b/libgfortran/ChangeLog index 0bf20db..b66f300 100644 --- a/libgfortran/ChangeLog +++ b/libgfortran/ChangeLog @@ -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 diff --git a/libgfortran/io/list_read.c b/libgfortran/io/list_read.c index baf2f54..c88f232 100644 --- a/libgfortran/io/list_read.c +++ b/libgfortran/io/list_read.c @@ -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: |