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