111
|
1 ! { dg-do compile }
|
|
2 !
|
|
3 ! PR fortran/38536
|
|
4 ! Accept as argument to C_LOC a subcomponent accessed through a pointer.
|
|
5
|
|
6 USE ISO_C_BINDING
|
|
7
|
|
8 IMPLICIT NONE
|
|
9 TYPE test3
|
|
10 INTEGER, DIMENSION(5) :: b
|
|
11 END TYPE test3
|
|
12
|
|
13 TYPE test2
|
|
14 TYPE(test3), DIMENSION(:), POINTER :: a
|
|
15 END TYPE test2
|
|
16
|
|
17 TYPE test
|
|
18 TYPE(test2), DIMENSION(2) :: c
|
|
19 END TYPE test
|
|
20
|
|
21 TYPE(test) :: chrScalar
|
|
22 TYPE(C_PTR) :: f_ptr
|
|
23 TYPE(test3), TARGET :: d(3)
|
|
24
|
|
25
|
|
26 chrScalar%c(1)%a => d
|
|
27 f_ptr = C_LOC(chrScalar%c(1)%a(1)%b(1))
|
|
28 end
|
|
29
|