------- Comment #5 from kargl at gcc dot gnu dot org 2009-08-28 21:21 ------- The committed to fix the bug is too aggressive. An interface block with a module procedure statement can appear in a PROGRAM unit and any subprogram. I have a patch the relaxes the check and allows the newly attached program to compile and run.
Index: gcc/fortran/decl.c =================================================================== --- gcc/fortran/decl.c (revision 151144) +++ gcc/fortran/decl.c (working copy) @@ -6481,7 +6481,10 @@ gfc_match_modproc (void) module_ns = gfc_current_ns->parent; for (; module_ns; module_ns = module_ns->parent) - if (module_ns->proc_name->attr.flavor == FL_MODULE) + if (module_ns->proc_name->attr.flavor == FL_MODULE + || module_ns->proc_name->attr.flavor == FL_PROGRAM + || (module_ns->proc_name->attr.flavor == FL_PROCEDURE + && !module_ns->proc_name->attr.contained)) break; if (module_ns == NULL) -- kargl at gcc dot gnu dot org changed: What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |REOPENED Resolution|FIXED | http://gcc.gnu.org/bugzilla/show_bug.cgi?id=31292