module m USE MOD, only: foo1 interface generic_intrf module procedure foo1 end interface
is accepted although "bar" is not a host-associated procedure, but a use-associated procedure. (Using "PROCEDURE foo1" instead of "MODULE PROCEDURE foo1" allows use-associated procedures.) NAG f95 correctly diagnoses: Error: a.f90, line 13: FOO1 is not a module procedure Full example, from: http://groups.google.com/group/comp.lang.fortran/browse_thread/thread/4d51d6ca89f7d4f8/ MODULE a USE iso_c_binding INTERFACE SUBROUTINE foo1(a) BIND(C,name="a_c_routine") IMPORT C_INT INTEGER(C_INT) ::a END SUBROUTINE END INTERFACE END MODULE MODULE b USE a,ONLY : foo1 INTERFACE foo MODULE procedure foo1,foo2,foo3 END INTERFACE CONTAINS SUBROUTINE foo2(a) DOUBLE PRECISION ::a END SUBROUTINE SUBROUTINE foo3(a) CHARACTER ::a END SUBROUTINE END MODULE -- Summary: Accepts use-associated functions in MODULE PROCEDURE Product: gcc Version: 4.3.0 Status: UNCONFIRMED Keywords: accepts-invalid Severity: normal Priority: P3 Component: fortran AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: burnus at gcc dot gnu dot org http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33228