aboutsummaryrefslogtreecommitdiff
path: root/gcc/fortran/decl.c
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/fortran/decl.c')
-rw-r--r--gcc/fortran/decl.c20
1 files changed, 6 insertions, 14 deletions
diff --git a/gcc/fortran/decl.c b/gcc/fortran/decl.c
index a04f5a6..5ca664e 100644
--- a/gcc/fortran/decl.c
+++ b/gcc/fortran/decl.c
@@ -7570,23 +7570,15 @@ access_attr_decl (gfc_statement st)
case INTERFACE_GENERIC:
case INTERFACE_DTIO:
- if (type == INTERFACE_DTIO
- && gfc_current_ns->proc_name
- && gfc_current_ns->proc_name->attr.flavor == FL_MODULE)
- {
- gfc_find_symbol (name, gfc_current_ns, 0, &sym);
- if (sym == NULL)
- {
- gfc_error ("The GENERIC DTIO INTERFACE at %C is not "
- "present in the MODULE %qs",
- gfc_current_ns->proc_name->name);
- return MATCH_ERROR;
- }
- }
-
if (gfc_get_symbol (name, NULL, &sym))
goto done;
+ if (type == INTERFACE_DTIO
+ && gfc_current_ns->proc_name
+ && gfc_current_ns->proc_name->attr.flavor == FL_MODULE
+ && sym->attr.flavor == FL_UNKNOWN)
+ sym->attr.flavor = FL_PROCEDURE;
+
if (!gfc_add_access (&sym->attr,
(st == ST_PUBLIC)
? ACCESS_PUBLIC : ACCESS_PRIVATE,