------- Comment #10 from burnus at gcc dot gnu dot org  2009-03-31 20:02 -------
(In reply to comment #9)
> I guess it is the gfc_add_flavor call removal from gfc_add_in_common that
> causes this, attr->flavor in this case is FL_UNKNOWN.

Good guess: The problem is a check in gfc_create_module_variable.

I tried the following patch, but it still fails - FL_VARIABLE is properly set
but
  if (sym->attr.use_assoc || sym->attr.in_common)
    return;
comes just before the
  /* We always want module variables to be created.  */
  sym->attr.referenced = 1;


Index: resolve.c
===================================================================
--- resolve.c   (revision 145366)
+++ resolve.c   (working copy)
@@ -719,6 +719,9 @@ resolve_common_vars (gfc_symbol *sym, bo
        gfc_error_now ("Derived type variable '%s' in COMMON at %L "
                       "may not have default initializer", csym->name,
                       &csym->declared_at);
+
+      if (csym->attr.flavor == FL_UNKNOWN && !csym->attr.proc_pointer)
+       gfc_add_flavor (&csym->attr, FL_VARIABLE, csym->name,
&csym->declared_at);
     }
 }


-- 


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

Reply via email to