1! { dg-do compile }
2
3! Type-bound procedures
4! Test that legal usage of DEFERRED is accepted.
5
6MODULE testmod
7  IMPLICIT NONE
8
9  ABSTRACT INTERFACE
10    SUBROUTINE intf ()
11    END SUBROUTINE intf
12  END INTERFACE
13
14  TYPE, ABSTRACT :: abstract_type
15  CONTAINS
16    PROCEDURE(intf), DEFERRED, NOPASS :: p1
17    PROCEDURE(realproc), DEFERRED, NOPASS :: p2
18  END TYPE abstract_type
19
20  TYPE, EXTENDS(abstract_type) :: sub_type
21  CONTAINS
22    PROCEDURE, NOPASS :: p1 => realproc
23    PROCEDURE, NOPASS :: p2 => realproc
24  END TYPE sub_type
25
26CONTAINS
27
28  SUBROUTINE realproc ()
29  END SUBROUTINE realproc
30
31END MODULE testmod
32