1! { dg-do compile }
2!
3! PR 64508: [F03] interface check missing for procedure pointer component as actual argument
4!
5! Contributed by Janus Weil <janus@gcc.gnu.org>
6
7  TYPE :: parent
8  END TYPE
9
10  TYPE, EXTENDS(parent) :: extension
11    procedure(extension_proc), pointer :: ppc
12  END TYPE
13
14  CLASS(extension), ALLOCATABLE :: x
15  CALL some_proc(x%ppc)               !  { dg-error "Interface mismatch in dummy procedure" }
16
17contains
18
19  SUBROUTINE parent_proc(arg)
20    CLASS(parent), INTENT(IN) :: arg
21  END SUBROUTINE
22
23  SUBROUTINE extension_proc(arg)
24    CLASS(extension), INTENT(IN) :: arg
25  END SUBROUTINE
26
27
28  SUBROUTINE some_proc(proc)
29    PROCEDURE(parent_proc) :: proc
30    TYPE(Parent) :: a
31    CALL proc(a)
32  END SUBROUTINE
33
34end
35