http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56261
--- Comment #12 from janus at gcc dot gnu.org 2013-02-09 18:25:33 UTC --- I just noticed that there is already related diagnostics in resolve.c (resolve_global_procedure): /* F2003, 12.3.1.1 (2d); F2008, 12.4.2.2 (2e) */ else if (arg->sym->ts.type == BT_CLASS) { gfc_error ("Procedure '%s' at %L with polymorphic dummy " "argument '%s' must have an explicit interface", sym->name, &sym->declared_at, arg->sym->name); break; } As a consequnce, whole_file_20.f03 now fails (due to a double error message). Further, abstract_type_6.f03 fails, which is fixed by this: Index: abstract_type_6.f03 =================================================================== --- abstract_type_6.f03 (revision 195915) +++ abstract_type_6.f03 (working copy) @@ -46,7 +46,7 @@ SUBROUTINE bottom_c(obj) CLASS(Bottom) :: obj - CALL top_c(obj) + CALL top_c(obj) ! { dg-error "requires an explicit interface" } ! other stuff END SUBROUTINE bottom_c end module