http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49110
kargl at gcc dot gnu.org changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |kargl at gcc dot gnu.org
--- Comment #2 from kargl at gcc dot gnu.org 2011-05-22 16:32:51 UTC ---
This patch allows your code to compile, but I
don't know if it works correctly. Do you have
a complete self-contained small testcase?
Index: resolve.c
===================================================================
--- resolve.c (revision 173757)
+++ resolve.c (working copy)
@@ -10305,7 +10305,7 @@ resolve_fl_procedure (gfc_symbol *sym, i
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)