diff options
author | Jerry DeLisle <jvdelisle@gcc.gnu.org> | 2007-03-28 00:19:39 +0000 |
---|---|---|
committer | Jerry DeLisle <jvdelisle@gcc.gnu.org> | 2007-03-28 00:19:39 +0000 |
commit | f70ddc12ecc259e863ca60ce364528fa387da531 (patch) | |
tree | 6762f8894a56210b2bb142d53212bf7317d2be4c /libgfortran | |
parent | 9f363d2ac246d19590a65900ae9747df48719384 (diff) | |
download | gcc-f70ddc12ecc259e863ca60ce364528fa387da531.tar.gz |
re PR libfortran/31052 ([4.2 only] Bad IOSTAT values when readings NAMELISTs past EOF)
2007-03-27 Jerry DeLisle <jvdelisle@gcc.gnu.org>
PR libgfortran/31052
* io/transfer.c (next_record_r): Do not call test_endfile if in namelist
mode.
From-SVN: r123284
Diffstat (limited to 'libgfortran')
-rw-r--r-- | libgfortran/ChangeLog | 12 | ||||
-rw-r--r-- | libgfortran/io/transfer.c | 3 |
2 files changed, 11 insertions, 4 deletions
diff --git a/libgfortran/ChangeLog b/libgfortran/ChangeLog index c3425893e00..4dbc337a2d3 100644 --- a/libgfortran/ChangeLog +++ b/libgfortran/ChangeLog @@ -1,9 +1,15 @@ +2007-03-27 Jerry DeLisle <jvdelisle@gcc.gnu.org> + + PR libgfortran/31052 + * io/transfer.c (next_record_r): Do not call test_endfile if in namelist + mode. + 2007-03-25 Jerry DeLisle <jvdelisle@gcc.gnu.org> PR libgfortran/31199 - *io/io.h: Add saved_pos to gfc_unit structure. - *io/open.c (new_unit): Initialize saved_pos. - *io/transfer.c (data_transfer_init): Set max_pos to value in saved_pos. + * io/io.h: Add saved_pos to gfc_unit structure. + * io/open.c (new_unit): Initialize saved_pos. + * io/transfer.c (data_transfer_init): Set max_pos to value in saved_pos. (next_record_w): Fix whitespace. (finalze_transfer): Calculate max_pos for ADVANCE="no" and save it for later use. If not ADVANCE="no" set saved_pos to zero. diff --git a/libgfortran/io/transfer.c b/libgfortran/io/transfer.c index 94bda09587b..2555898e112 100644 --- a/libgfortran/io/transfer.c +++ b/libgfortran/io/transfer.c @@ -2228,7 +2228,8 @@ next_record_r (st_parameter_dt *dtp) break; } - if (dtp->u.p.current_unit->flags.access == ACCESS_SEQUENTIAL) + if (dtp->u.p.current_unit->flags.access == ACCESS_SEQUENTIAL + && !dtp->u.p.namelist_mode) test_endfile (dtp->u.p.current_unit); } |