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
After Janus' recent check-in of CLASS parsing, this behaviour is fixed (though CLASS is not really polymorphic). I'm not sure if we should close this or keep open until CLASS is fully implemented. Janus, feel free to close it if you think that's ok.
At least now this can be considered fully implemented, I think.