From dd9123310d0f4e6d7815d5c44f9c8c0e59521a6f Mon Sep 17 00:00:00 2001 From: Tobias Burnus Date: Sat, 12 May 2012 11:53:53 +0200 Subject: re PR fortran/49110 (Deferred-length character result triggers (false positive) error for pure procedures) 2012-05-12 Tobias Burnus PR fortran/49110 PR fortran/52843 * resolve.c (resolve_fl_procedure): Don't regard character(len=:) as character(*) in the diagnostic. 2012-05-12 Tobias Burnus PR fortran/49110 PR fortran/52843 * gfortran.dg/deferred_type_param_5.f90: New. From-SVN: r187427 --- gcc/fortran/resolve.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'gcc/fortran/resolve.c') diff --git a/gcc/fortran/resolve.c b/gcc/fortran/resolve.c index b3a23ed..4a07230 100644 --- a/gcc/fortran/resolve.c +++ b/gcc/fortran/resolve.c @@ -10726,7 +10726,7 @@ resolve_fl_procedure (gfc_symbol *sym, int mp_flag) actual length; (ii) To declare a named constant; or (iii) External function - but length must be declared in calling scoping unit. */ if (sym->attr.function - && sym->ts.type == BT_CHARACTER + && sym->ts.type == BT_CHARACTER && !sym->ts.deferred && sym->ts.u.cl && sym->ts.u.cl->length == NULL) { if ((sym->as && sym->as->rank) || (sym->attr.pointer) -- cgit v1.1