Found by Damian - and ask at http://groups.google.com/group/comp.lang.fortran/browse_thread/thread/f5ec99089ea72b79#
gfortran rejects call type%abstract_parent%tbp() with Error: Base object for type-bound procedure call at (1) is of ABSTRACT type 'abstract_parent' As long as "abstract_parent%tbp" is not deferred, I believe the call is valid and (if not overridden) identically to "type%tpb()", which is accepted. The check has to be modified to only reject DEFERRED procedures. Regarding the standard, deferred procedures are invalid as outlined in Note 4.50. I think it is buried in C427 (R429) If the type definition contains or inherits (4.5.6.1) a deferred binding (4.5.4), ABSTRACT shall appear. However, as any dynamic object is not abstract, one cannot invoke a deferred procedure. -- Summary: [OOP] Calling type-bound procedure of abstract type wrongly rejected Product: gcc Version: 4.5.0 Status: UNCONFIRMED Keywords: rejects-valid 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=43193