summaryrefslogtreecommitdiffstats
path: root/gcc/fortran/io.c
diff options
context:
space:
mode:
authorpbrook <pbrook@138bc75d-0d04-0410-961f-82ee72b054a4>2004-06-22 00:43:55 +0000
committerpbrook <pbrook@138bc75d-0d04-0410-961f-82ee72b054a4>2004-06-22 00:43:55 +0000
commit6799e2f82d0b258f03b184224558ef22e73a0b6f (patch)
treeceecaee98023a95b8e6865056ce0fa2cc4afb927 /gcc/fortran/io.c
parentd4e6d8361ae1fe9af98e8defb7c1be78d8d50e35 (diff)
downloadppe42-gcc-6799e2f82d0b258f03b184224558ef22e73a0b6f.tar.gz
ppe42-gcc-6799e2f82d0b258f03b184224558ef22e73a0b6f.zip
PR fortran/15750
* io.c (gfc_match_inquire): Bugfix for iolength related stuff. (gfc_resolve_inquire): Resolve the iolength tag. Return SUCCESS at end of function if no failure has occured. * resolve.c (resolve_code): Resolve if iolength is encountered. * trans-io.c: (ioparm_iolength, iocall_iolength, iocall_iolength_done): New variables. (last_dt): Add IOLENGTH. (gfc_build_io_library_fndecls ): Set iolength related variables. (gfc_trans_iolength): Implement. (gfc_trans_dt_end): Treat iolength as a third form of data transfer. libgfortran/ PR fortran/15750 * inquire.c (st_inquire): Add comment * io.h (st_parameter): Add iolength. (st_iolength, st_iolength_done): Declare. * transfer.c (iolength_transfer, iolength_transfer_init, st_iolength, st_iolength_done): New functions. testsuite/ * gfortran.fortran-torture/execute/iolength_1.f90: New test. * gfortran.fortran-torture/execute/iolength_3.f90: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@83472 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/fortran/io.c')
-rw-r--r--gcc/fortran/io.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/gcc/fortran/io.c b/gcc/fortran/io.c
index 56cbe870517..ee52c693245 100644
--- a/gcc/fortran/io.c
+++ b/gcc/fortran/io.c
@@ -2353,7 +2353,7 @@ gfc_match_inquire (void)
new_st.op = EXEC_IOLENGTH;
new_st.expr = inquire->iolength;
- gfc_free (inquire);
+ new_st.ext.inquire = inquire;
if (gfc_pure (NULL))
{
@@ -2439,9 +2439,10 @@ gfc_resolve_inquire (gfc_inquire * inquire)
RESOLVE_TAG (&tag_readwrite, inquire->readwrite);
RESOLVE_TAG (&tag_s_delim, inquire->delim);
RESOLVE_TAG (&tag_s_pad, inquire->pad);
+ RESOLVE_TAG (&tag_iolength, inquire->iolength);
if (gfc_reference_st_label (inquire->err, ST_LABEL_TARGET) == FAILURE)
return FAILURE;
- return FAILURE;
+ return SUCCESS;
}
OpenPOWER on IntegriCloud