using GNU Fortran 95 (GCC) 4.1.0 20051126 (prerelease) with '-g -pedantic -std=f95', I get a bad / no diagnostic for the following invalid code:
SUBROUTINE s(n) CHARACTER(LEN=n), EXTERNAL :: a write(6,*) a(n) END SUBROUTINE s FUNCTION a(n) CHARACTER(LEN=n) :: a a="1111111" END FUNCTION a PROGRAM TEST CALL S(3) END PROGRAM TEST -- Summary: better diagnostic needed Product: gcc Version: 4.1.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: fortran AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: jv244 at cam dot ac dot uk http://gcc.gnu.org/bugzilla/show_bug.cgi?id=25087