From: Jerry DeLisle Date: Thu, 9 Nov 2006 03:03:40 +0000 (+0000) Subject: re PR fortran/29752 (write(*,*,advance='NO'), READ(): Data not flushed) X-Git-Tag: releases/gcc-4.3.0~8575 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=54938c11278c0d43cef4f4e1ff30be1091b96933;p=thirdparty%2Fgcc.git re PR fortran/29752 (write(*,*,advance='NO'), READ(): Data not flushed) 2006-11-08 Jerry DeLisle PR libgfortran/29752 * io/transfer.c (finalize_transfer): Flush on ADVANCE_NO. From-SVN: r118611 --- diff --git a/libgfortran/ChangeLog b/libgfortran/ChangeLog index 3ca21723ac07..f8a16721ff80 100644 --- a/libgfortran/ChangeLog +++ b/libgfortran/ChangeLog @@ -1,3 +1,8 @@ +2006-11-08 Jerry DeLisle + + PR libgfortran/29752 + * io/transfer.c (finalize_transfer): Flush on ADVANCE_NO. + 2006-11-05 Jerry DeLisle * io/transfer.c (next_record_w): Fix indentation. diff --git a/libgfortran/io/transfer.c b/libgfortran/io/transfer.c index 4711be55b0ff..c8fd5571e5ff 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); }