summaryrefslogtreecommitdiff
path: root/libgfortran
diff options
context:
space:
mode:
authorjvdelisle <jvdelisle@138bc75d-0d04-0410-961f-82ee72b054a4>2006-11-09 03:03:40 +0000
committerjvdelisle <jvdelisle@138bc75d-0d04-0410-961f-82ee72b054a4>2006-11-09 03:03:40 +0000
commit74d61f290d37a821511ba57151a784fee3951de9 (patch)
tree868ed8120265ac3970f16270d0a7f143c43b80a6 /libgfortran
parent0d470a4444ee34ef44e5f2dacad9303a58b86f81 (diff)
downloadgcc-74d61f290d37a821511ba57151a784fee3951de9.tar.gz
2006-11-08 Jerry DeLisle <jvdelisle@gcc.gnu.org>
PR libgfortran/29752 * io/transfer.c (finalize_transfer): Flush on ADVANCE_NO. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118611 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libgfortran')
-rw-r--r--libgfortran/ChangeLog5
-rw-r--r--libgfortran/io/transfer.c9
2 files changed, 11 insertions, 3 deletions
diff --git a/libgfortran/ChangeLog b/libgfortran/ChangeLog
index 3ca21723ac0..f8a16721ff8 100644
--- a/libgfortran/ChangeLog
+++ b/libgfortran/ChangeLog
@@ -1,3 +1,8 @@
+2006-11-08 Jerry DeLisle <jvdelisle@gcc.gnu.org>
+
+ PR libgfortran/29752
+ * io/transfer.c (finalize_transfer): Flush on ADVANCE_NO.
+
2006-11-05 Jerry DeLisle <jvdelisle@gcc.gnu.org>
* io/transfer.c (next_record_w): Fix indentation.
diff --git a/libgfortran/io/transfer.c b/libgfortran/io/transfer.c
index 4711be55b0f..c8fd5571e5f 100644
--- a/libgfortran/io/transfer.c
+++ b/libgfortran/io/transfer.c
@@ -2359,9 +2359,6 @@ finalize_transfer (st_parameter_dt *dtp)
dtp->u.p.current_unit->current_record = 0;
- if (dtp->u.p.advance_status == ADVANCE_NO)
- return;
-
if (!is_internal_unit (dtp) && dtp->u.p.seen_dollar)
{
dtp->u.p.seen_dollar = 0;
@@ -2369,6 +2366,12 @@ finalize_transfer (st_parameter_dt *dtp)
return;
}
+ if (dtp->u.p.advance_status == ADVANCE_NO)
+ {
+ flush (dtp->u.p.current_unit->s);
+ return;
+ }
+
next_record (dtp, 1);
sfree (dtp->u.p.current_unit->s);
}