aboutsummaryrefslogtreecommitdiff
path: root/gcc/fortran/module.c
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/fortran/module.c')
-rw-r--r--gcc/fortran/module.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/gcc/fortran/module.c b/gcc/fortran/module.c
index 05056a5..1613a74 100644
--- a/gcc/fortran/module.c
+++ b/gcc/fortran/module.c
@@ -3097,9 +3097,11 @@ load_generic_interfaces (void)
gfc_symtree *st;
p = p ? p : name;
st = gfc_find_symtree (gfc_current_ns->sym_root, p);
- st->ambiguous = sym->attr.generic ? 0 : 1;
+ if (!sym->attr.generic
+ && sym->module != NULL
+ && strcmp(module, sym->module) != 0)
+ st->ambiguous = 1;
}
-
if (i == 1)
{
mio_interface_rest (&sym->generic);
@@ -3748,6 +3750,9 @@ write_generic (gfc_symbol * sym)
|| !gfc_check_access (sym->attr.access, sym->ns->default_access))
return;
+ if (sym->module == NULL)
+ sym->module = gfc_get_string (module_name);
+
mio_symbol_interface (&sym->name, &sym->module, &sym->generic);
}