]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
re PR libfortran/46373 (fflush called when reading from a string)
authorJerry DeLisle <jvdelisle@gcc.gnu.org>
Thu, 11 Nov 2010 03:24:26 +0000 (03:24 +0000)
committerJerry DeLisle <jvdelisle@gcc.gnu.org>
Thu, 11 Nov 2010 03:24:26 +0000 (03:24 +0000)
2010-11-10  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

PR libgfortran/46373
Backport from mainline:
* io/transfer.c (data_transfer_init): Do not call flush_if_preconnected
if this is an internal unit.

From-SVN: r166589

libgfortran/ChangeLog
libgfortran/io/transfer.c

index 78fef049284a8f3aa4eb91ea9dafc7c1116adddc..8a0ed507496e28c4f7cb640b7f6c1500f19972b9 100644 (file)
@@ -1,3 +1,10 @@
+2010-11-10  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
+
+       PR libgfortran/46373
+       Backport from mainline:
+       * io/transfer.c (data_transfer_init): Do not call flush_if_preconnected
+       if this is an internal unit.
+
 2010-11-03  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
 
        PR libgfortran/46010
index f647941f1aa9fa82914bb1bb9d9830690fc34e8c..96a44f524e34a908de75fb9e77ca2eb3fe9d3d60 100644 (file)
@@ -2450,7 +2450,8 @@ data_transfer_init (st_parameter_dt *dtp, int read_flag)
     }
 
   /* Bugware for badly written mixed C-Fortran I/O.  */
-  flush_if_preconnected(dtp->u.p.current_unit->s);
+  if (!is_internal_unit (dtp))
+    flush_if_preconnected(dtp->u.p.current_unit->s);
 
   dtp->u.p.current_unit->mode = dtp->u.p.mode;