summaryrefslogtreecommitdiff
path: root/libgfortran
diff options
context:
space:
mode:
authorJerry DeLisle <jvdelisle@gcc.gnu.org>2007-03-28 00:19:39 +0000
committerJerry DeLisle <jvdelisle@gcc.gnu.org>2007-03-28 00:19:39 +0000
commitf70ddc12ecc259e863ca60ce364528fa387da531 (patch)
tree6762f8894a56210b2bb142d53212bf7317d2be4c /libgfortran
parent9f363d2ac246d19590a65900ae9747df48719384 (diff)
downloadgcc-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/ChangeLog12
-rw-r--r--libgfortran/io/transfer.c3
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);
}