| ! Test that parent components are made explicit in reference to |
| ! procedure pointer from parent type. |
| ! RUN: bbc -emit-hlfir -o - %s | FileCheck %s |
| |
| module type_defs |
| interface |
| subroutine s1 |
| end subroutine |
| real function s2() |
| end function |
| end interface |
| type :: t |
| procedure(s1), pointer, nopass :: p1 |
| procedure(s2), pointer, nopass :: p2 |
| end type |
| type, extends(t) :: t2 |
| end type |
| end module |
| |
| ! CHECK-LABEL: func.func @_QPtest( |
| subroutine test (x) |
| use type_defs, only : t2 |
| type(t2) :: x |
| call x%p1() |
| ! CHECK: %[[T_REF1:.*]] = hlfir.designate %{{.*}}{"t"} |
| ! CHECK: hlfir.designate %[[T_REF1]]{"p1"} |
| print *, x%p2() |
| ! CHECK: %[[T_REF2:.*]] = hlfir.designate %{{.*}}{"t"} |
| ! CHECK: hlfir.designate %[[T_REF2]]{"p2"} |
| end subroutine |