------- Comment #1 from burnus at gcc dot gnu dot org 2006-11-08 19:20 ------- CC: to [EMAIL PROTECTED], who is our libgfortran/io/ specialist. Confirm bug.
I think the change is in transfer.c's finalize_transfer(): Change between 4.1 and 4.2/4.3 (incomplete diff, I might messed it up): - if (dtp->u.p.advance_status == ADVANCE_NO || dtp->u.p.seen_dollar) - { - /* Most systems buffer lines, so force the partial record - to be written out. */ - if (!is_internal_unit (dtp)) - flush (dtp->u.p.current_unit->s); - dtp->u.p.seen_dollar = 0; - return; - } + + if (dtp->u.p.advance_status == ADVANCE_NO) + return; + Here, a flush could be added, but I think having a flush before a read makes more sense (cf. commercial compilers). (Do it in any read()? How expensive is a flush of file where nothing is to be flushed?) -- burnus at gcc dot gnu dot org changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |jvdelisle at gcc dot gnu dot | |org Status|UNCONFIRMED |NEW Ever Confirmed|0 |1 Last reconfirmed|0000-00-00 00:00:00 |2006-11-08 19:20:11 date| | http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29752