3 ! Type-bound procedures
4 ! Test for resolution errors with DEFERRED, namely checks about invalid
5 ! overriding and taking into account inherited DEFERRED bindings.
6 ! Also check that DEFERRED attribute is saved to module correctly.
16 TYPE, ABSTRACT :: abstract_type
18 PROCEDURE(intf), DEFERRED, NOPASS :: def
19 PROCEDURE, NOPASS :: nodef => realproc
20 END TYPE abstract_type
24 SUBROUTINE realproc ()
25 END SUBROUTINE realproc
33 TYPE, ABSTRACT, EXTENDS(abstract_type) :: sub_type1
35 PROCEDURE(intf), DEFERRED, NOPASS :: nodef ! { dg-error "must not be DEFERRED" }
38 TYPE, EXTENDS(abstract_type) :: sub_type2 ! { dg-error "must be ABSTRACT" }