aboutsummaryrefslogtreecommitdiff
path: root/gcc/fortran/trans-decl.c
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/fortran/trans-decl.c')
-rw-r--r--gcc/fortran/trans-decl.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/gcc/fortran/trans-decl.c b/gcc/fortran/trans-decl.c
index 4e7129e..4bd7dc4 100644
--- a/gcc/fortran/trans-decl.c
+++ b/gcc/fortran/trans-decl.c
@@ -2062,7 +2062,12 @@ build_function_decl (gfc_symbol * sym, bool global)
tree result_decl;
gfc_formal_arglist *f;
- gcc_assert (!sym->attr.external);
+ bool module_procedure = sym->attr.module_procedure
+ && sym->ns
+ && sym->ns->proc_name
+ && sym->ns->proc_name->attr.flavor == FL_MODULE;
+
+ gcc_assert (!sym->attr.external || module_procedure);
if (sym->backend_decl)
return;