diff options
author | Paul Thomas <pault@gcc.gnu.org> | 2006-09-11 05:02:58 +0000 |
---|---|---|
committer | Paul Thomas <pault@gcc.gnu.org> | 2006-09-11 05:02:58 +0000 |
commit | 7f39b34c7e9dfb658cad14ba0f2e2837cda695cb (patch) | |
tree | 35baec3c4421884fed9311bf88cfb8e1f452b755 /gcc/fortran/resolve.c | |
parent | bc70af526c6b2243c68242d0aa6a48da9da4003d (diff) | |
download | gcc-7f39b34c7e9dfb658cad14ba0f2e2837cda695cb.zip gcc-7f39b34c7e9dfb658cad14ba0f2e2837cda695cb.tar.gz gcc-7f39b34c7e9dfb658cad14ba0f2e2837cda695cb.tar.bz2 |
re PR fortran/28890 (ICE on write)
2006-09-11 Paul Thomas <pault@gcc.gnu.org>
PR fortran/28890
trans-expr.c (gfc_conv_function_call): Obtain the string length
of a dummy character(*) function from the symbol if it is not
already translated. For a call to a character(*) function, use
the passed, hidden string length argument, which is available
from the backend_decl of the formal argument.
resolve.c (resolve_function): It is an error if a function call
to a character(*) function is other than a dummy procedure or
an intrinsic.
2006-09-11 Paul Thomas <pault@gcc.gnu.org>
PR libfortran/28890
gfortran.dg/assumed_charlen_function_5.f90: New test.
From-SVN: r116839
Diffstat (limited to 'gcc/fortran/resolve.c')
-rw-r--r-- | gcc/fortran/resolve.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/gcc/fortran/resolve.c b/gcc/fortran/resolve.c index b62a041..c9475cc 100644 --- a/gcc/fortran/resolve.c +++ b/gcc/fortran/resolve.c @@ -1413,6 +1413,7 @@ resolve_function (gfc_expr * expr) && sym->ts.cl && sym->ts.cl->length == NULL && !sym->attr.dummy + && expr->value.function.esym == NULL && !sym->attr.contained) { /* Internal procedures are taken care of in resolve_contained_fntype. */ |