From: Jerry DeLisle Date: Sun, 24 Nov 2019 22:14:59 +0000 (+0000) Subject: re PR libfortran/92100 (Formatted stream IO irreproducible read with binary data... X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=73af0c7b3ac036802db97377422e8a8a750a56cc;p=gcc.git re PR libfortran/92100 (Formatted stream IO irreproducible read with binary data in file) 2019-11-24 Jerry DeLisle PR fortran/92100 io/transfer.c (data_transfer_init_worker): Use fbuf_reset instead of fbuf_flush before the seek. Note that fbuf_reset calls fbuf_flush and adjusts fbuf pointers. From-SVN: r278660 --- diff --git a/libgfortran/ChangeLog b/libgfortran/ChangeLog index 46b96f25f16..91768c0a00f 100644 --- a/libgfortran/ChangeLog +++ b/libgfortran/ChangeLog @@ -1,3 +1,10 @@ +2019-11-24 Jerry DeLisle + + PR fortran/92100 + io/transfer.c (data_transfer_init_worker): Use fbuf_reset + instead of fbuf_flush before the seek. Note that fbuf_reset + calls fbuf_flush and adjusts fbuf pointers. + 2019-11-23 Thomas Koenig Harald Anlauf diff --git a/libgfortran/io/transfer.c b/libgfortran/io/transfer.c index 89f0abe9938..43b22bf5f8d 100644 --- a/libgfortran/io/transfer.c +++ b/libgfortran/io/transfer.c @@ -3309,8 +3309,9 @@ data_transfer_init_worker (st_parameter_dt *dtp, int read_flag) if (dtp->pos != dtp->u.p.current_unit->strm_pos) { - fbuf_flush (dtp->u.p.current_unit, dtp->u.p.mode); - if (sseek (dtp->u.p.current_unit->s, dtp->pos - 1, SEEK_SET) < 0) + fbuf_reset (dtp->u.p.current_unit); + if (sseek (dtp->u.p.current_unit->s, dtp->pos - 1, + SEEK_SET) < 0) { generate_error (&dtp->common, LIBERROR_OS, NULL); return;