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)

Reply via email to