diff options
author | Paul Thomas <pault@gcc.gnu.org> | 2007-11-13 20:33:21 +0000 |
---|---|---|
committer | Paul Thomas <pault@gcc.gnu.org> | 2007-11-13 20:33:21 +0000 |
commit | e73d166e6ffcd501327cb286a66a47546d785e81 (patch) | |
tree | ec13cfec6e36e0e9324e4e72cc7f26597991afb5 /gcc/fortran/iresolve.c | |
parent | 66beb09b045130f9516b110d5cf41c81f8396be6 (diff) | |
download | gcc-e73d166e6ffcd501327cb286a66a47546d785e81.zip gcc-e73d166e6ffcd501327cb286a66a47546d785e81.tar.gz gcc-e73d166e6ffcd501327cb286a66a47546d785e81.tar.bz2 |
re PR fortran/34080 (Transfer was working, now broken)
2007-11-13 Paul Thomas <pault@gcc.gnu.org>
PR fortran/34080
* iresolve.c (gfc_resolve_transfer): Do not try to convert
to a constant MOLD expression, if it is an assumed size
dummy.
2007-11-13 Paul Thomas <pault@gcc.gnu.org>
PR fortran/34080
* gfortran.dg/transfer_assumed_size_1.f90: New test.
From-SVN: r130158
Diffstat (limited to 'gcc/fortran/iresolve.c')
-rw-r--r-- | gcc/fortran/iresolve.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/gcc/fortran/iresolve.c b/gcc/fortran/iresolve.c index 6de83ee..4a54963 100644 --- a/gcc/fortran/iresolve.c +++ b/gcc/fortran/iresolve.c @@ -2283,7 +2283,8 @@ gfc_resolve_transfer (gfc_expr *f, gfc_expr *source ATTRIBUTE_UNUSED, /* TODO: Make this do something meaningful. */ static char transfer0[] = "__transfer0", transfer1[] = "__transfer1"; - if (mold->ts.type == BT_CHARACTER && !mold->ts.cl->length) + if (mold->ts.type == BT_CHARACTER && !mold->ts.cl->length + && !(mold->expr_type == EXPR_VARIABLE && mold->symtree->n.sym->attr.dummy)) mold->ts.cl->length = gfc_int_expr (mold->value.character.length); f->ts = mold->ts; |