35 lines
775 B
Fortran
35 lines
775 B
Fortran
! { dg-do run }
|
|
! PR71764
|
|
program p
|
|
use iso_c_binding, only: c_ptr, c_null_ptr, c_ptr, c_associated, c_loc
|
|
logical, target :: rls
|
|
real, target :: t = 3.14
|
|
type(c_ptr) :: nullptr,c
|
|
real, pointer :: k
|
|
nullptr = c_null_ptr
|
|
c = nullptr
|
|
rls = c_associated(c)
|
|
if (rls) STOP 1
|
|
if (c_associated(c)) STOP 2
|
|
c = c_loc(rls)
|
|
if (.not. c_associated(c)) STOP 3
|
|
c = nullptr
|
|
if (c_associated(c)) STOP 4
|
|
c = c_loc(t)
|
|
k => t
|
|
call association_test(k, c)
|
|
contains
|
|
subroutine association_test(a,b)
|
|
use iso_c_binding, only: c_associated, c_loc, c_ptr
|
|
implicit none
|
|
real, pointer :: a
|
|
type(c_ptr) :: b
|
|
if(c_associated(b, c_loc(a))) then
|
|
return
|
|
else
|
|
STOP 5
|
|
end if
|
|
end subroutine association_test
|
|
end
|
|
|