diff options
author | Paul Brook <paul@codesourcery.com> | 2004-08-10 00:57:22 +0000 |
---|---|---|
committer | Paul Brook <pbrook@gcc.gnu.org> | 2004-08-10 00:57:22 +0000 |
commit | 2bf26ede97bce405deca3f65b92683205a8e4bd5 (patch) | |
tree | f19703e42d0769a2d553e9584816567c1aa04422 /gcc/fortran/trans-io.c | |
parent | 19bb9ed6f53804940137c705c8ae613757024609 (diff) | |
download | gcc-2bf26ede97bce405deca3f65b92683205a8e4bd5.zip gcc-2bf26ede97bce405deca3f65b92683205a8e4bd5.tar.gz gcc-2bf26ede97bce405deca3f65b92683205a8e4bd5.tar.bz2 |
trans-io.c (transfer_expr): Handle pointters.
* trans-io.c (transfer_expr): Handle pointters.
testsuite/
* gfortran.dg/der_io_1.f90: New test.
From-SVN: r85738
Diffstat (limited to 'gcc/fortran/trans-io.c')
-rw-r--r-- | gcc/fortran/trans-io.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/gcc/fortran/trans-io.c b/gcc/fortran/trans-io.c index 9c4acc5..b01b8f6 100644 --- a/gcc/fortran/trans-io.c +++ b/gcc/fortran/trans-io.c @@ -1138,7 +1138,11 @@ transfer_expr (gfc_se * se, gfc_typespec * ts, tree addr_expr) se->string_length = TYPE_MAX_VALUE (TYPE_DOMAIN (TREE_TYPE (tmp))); } - transfer_expr (se, &c->ts, gfc_build_addr_expr (NULL, tmp)); + if (c->dimension) + gfc_todo_error ("IO of arrays in derived types"); + if (!c->pointer) + tmp = gfc_build_addr_expr (NULL, tmp); + transfer_expr (se, &c->ts, tmp); } return; |