]> git.ipfire.org Git - thirdparty/gcc.git/commit
re PR fortran/78881 ([F03] reading from string with DTIO procedure does not work...
authorJerry DeLisle <jvdelisle@gcc.gnu.org>
Sat, 25 Mar 2017 18:48:01 +0000 (18:48 +0000)
committerJerry DeLisle <jvdelisle@gcc.gnu.org>
Sat, 25 Mar 2017 18:48:01 +0000 (18:48 +0000)
commit1f10d710e321ad92322adf90342cf99fa3f9d356
tree90a8308501114af4ae633be668c2d78a40fdebef
parent410366864025c2aa6ce1928d1737bc9cc4f752e6
re PR fortran/78881 ([F03] reading from string with DTIO procedure does not work properly)

2017-03-25  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

PR libgfortran/78881
* io/io.h (st_parameter_dt): Rename unused component last_char to
child_saved_iostat. Move comment to gfc_unit.
* io/list_read.c (list_formatted_read_scalar): After call to
child READ procedure, save the returned iostat value for later
check. (finish_list_read): Only finish READ if child_saved_iostat
was OK.
* io/transfer.c (read_sf_internal): If there is a saved character
in last character, seek back one. Add a new check for EOR
condition. (read_sf): If there is a saved character
in last character, seek back one. (formatted_transfer_scalar_read):
Initialize last character before invoking child procedure.
(data_transfer_init): If child dtio, set advance
status to nonadvancing. Move update of size and check for EOR
condition to before child dtio return.

* gfortran.dg/dtio_26.f90: New test.

From-SVN: r246478
gcc/testsuite/ChangeLog
gcc/testsuite/gfortran.dg/dtio_26.f03 [new file with mode: 0644]
libgfortran/ChangeLog
libgfortran/io/io.h
libgfortran/io/list_read.c
libgfortran/io/transfer.c