http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60232

--- Comment #3 from janus at gcc dot gnu.org ---
I think this patch is even better:

Index: gcc/fortran/expr.c
===================================================================
--- gcc/fortran/expr.c    (revision 207846)
+++ gcc/fortran/expr.c    (working copy)
@@ -3962,9 +3962,10 @@ gfc_get_variable_expr (gfc_symtree *var)
   e->symtree = var;
   e->ts = var->n.sym->ts;

-  if ((var->n.sym->as != NULL && var->n.sym->ts.type != BT_CLASS)
-      || (var->n.sym->ts.type == BT_CLASS && CLASS_DATA (var->n.sym)
-      && CLASS_DATA (var->n.sym)->as))
+  if (var->n.sym->attr.flavor != FL_PROCEDURE
+      && ((var->n.sym->as != NULL && var->n.sym->ts.type != BT_CLASS)
+       || (var->n.sym->ts.type == BT_CLASS && CLASS_DATA (var->n.sym)
+           && CLASS_DATA (var->n.sym)->as)))
     {
       e->rank = var->n.sym->ts.type == BT_CLASS
         ? CLASS_DATA (var->n.sym)->as->rank : var->n.sym->as->rank;

Reply via email to