------- Comment #1 from pault at gcc dot gnu dot org 2007-07-05 15:24 -------
This fixes it but is, as yet, unregtested:
Index: gcc/fortran/module.c
===================================================================
*** gcc/fortran/module.c (revision 126317)
--- gcc/fortran/module.c (working copy)
*************** write_operator (gfc_user_op *uop)
*** 3943,3948 ****
--- 3943,3951 ----
static void
write_generic (gfc_symbol *sym)
{
+ const char *p;
+ int nuse, j;
+
if (sym->generic == NULL
|| !gfc_check_access (sym->attr.access, sym->ns->default_access))
return;
*************** write_generic (gfc_symbol *sym)
*** 3950,3956 ****
if (sym->module == NULL)
sym->module = gfc_get_string (module_name);
! mio_symbol_interface (&sym->name, &sym->module, &sym->generic);
}
--- 3953,3971 ----
if (sym->module == NULL)
sym->module = gfc_get_string (module_name);
! /* See how many use names there are. If none, go through the start
! of the loop at least once. */
! nuse = number_use_names (sym->name);
! if (nuse == 0)
! nuse = 1;
!
! for (j = 1; j <= nuse; j++)
! {
! /* Get the jth local name for this symbol. */
! p = find_use_name_n (sym->name, &j);
!
! mio_symbol_interface (&p, &sym->module, &sym->generic);
! }
}
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32634