aboutsummaryrefslogtreecommitdiff
path: root/libgfortran/io
diff options
context:
space:
mode:
authorJerry DeLisle <jvdelisle@gcc.gnu.org>2006-11-09 03:03:40 +0000
committerJerry DeLisle <jvdelisle@gcc.gnu.org>2006-11-09 03:03:40 +0000
commit54938c11278c0d43cef4f4e1ff30be1091b96933 (patch)
tree868ed8120265ac3970f16270d0a7f143c43b80a6 /libgfortran/io
parent6e410d2e6d3649cb2330ff54e95b05ef7422b557 (diff)
downloadgcc-54938c11278c0d43cef4f4e1ff30be1091b96933.zip
gcc-54938c11278c0d43cef4f4e1ff30be1091b96933.tar.gz
gcc-54938c11278c0d43cef4f4e1ff30be1091b96933.tar.bz2
re PR fortran/29752 (write(*,*,advance='NO'), READ(): Data not flushed)
2006-11-08 Jerry DeLisle <jvdelisle@gcc.gnu.org> PR libgfortran/29752 * io/transfer.c (finalize_transfer): Flush on ADVANCE_NO. From-SVN: r118611
Diffstat (limited to 'libgfortran/io')
-rw-r--r--libgfortran/io/transfer.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/libgfortran/io/transfer.c b/libgfortran/io/transfer.c
index 4711be5..c8fd557 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);
}