diff options
author | jvdelisle <jvdelisle@138bc75d-0d04-0410-961f-82ee72b054a4> | 2017-03-11 14:49:57 +0000 |
---|---|---|
committer | jvdelisle <jvdelisle@138bc75d-0d04-0410-961f-82ee72b054a4> | 2017-03-11 14:49:57 +0000 |
commit | efa19753c835e45f1ce30435f376075fffb3340b (patch) | |
tree | 0c0816499c2d1669fe279e6c7c3afde3190d275d /libgfortran/io/write.c | |
parent | 726add0be4214431cb92474140abf74a3033d7b7 (diff) |
2017-03-11 Jerry DeLisle <jvdelisle@gcc.gnu.org>
PR libgfortran/78854
* io/list_read.c (nml_get_obj_data): Stash internal unit for
later use by child procedures.
* io/write.c (nml_write_obj): Likewise.
* io/tranfer.c (data_transfer_init): Minor whitespace.
* io/unit.c (set_internal_uit): Look for the stashed internal
unit and use it if found.
* gfortran.dg/dtio_25.f90: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@246070 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libgfortran/io/write.c')
-rw-r--r-- | libgfortran/io/write.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/libgfortran/io/write.c b/libgfortran/io/write.c index 47970d42de19..f03929e49f80 100644 --- a/libgfortran/io/write.c +++ b/libgfortran/io/write.c @@ -2253,6 +2253,12 @@ nml_write_obj (st_parameter_dt *dtp, namelist_info * obj, index_type offset, child_iomsg_len = IOMSG_LEN; } namelist_write_newline (dtp); + + /* If writing to an internal unit, stash it to allow + the child procedure to access it. */ + if (is_internal_unit (dtp)) + stash_internal_unit (dtp); + /* Call the user defined formatted WRITE procedure. */ dtp->u.p.current_unit->child_dtio++; dtio_ptr ((void *)&list_obj, &unit, iotype, &vlist, |