The check should be done in resolve_global_procedure. NAG has:
Error: fjkff.f90: Inconsistent INTERFACE block for procedure FOO from $main$ Argument X (no. 1) should be an assumed-shape array g95 has: Error: Passing array at (1) to assumed-shape actual argument at (2) via an implicit interface Example: subroutine foo(x) integer :: x(:) end subroutine foo interface subroutine foo(x) integer :: x(1) end subroutine foo end interface call foo([1]) end -- Summary: For whole-file checking, also check whether an INTERFACE matches Product: gcc Version: 4.6.0 Status: UNCONFIRMED Keywords: diagnostic 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=45086