As polymorphic entities are not implemented in gfortran, the handling of passed-object dummy arguments allows (or requires) them to be declared non-polymorphic (TYPE(t)) while they should in fact be CLASS(t):
MODULE m TYPE :: t CONTAINS PROCEDURE :: proc END TYPE t CONTAINS SUBROUTINE proc (me) TYPE(t) :: me ! should be CLASS(t) :: me END SUBROUTINE proc END MODULE m -- Summary: Passed-object dummy argument should be polymorphic Product: gcc Version: unknown Status: UNCONFIRMED Severity: minor Priority: P3 Component: fortran AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: domob at gcc dot gnu dot org http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37427