type t | |
integer, pointer :: p2(:) | |
end type t | |
integer, target :: A(5) | |
integer, pointer :: p(:), p2(:) | |
type(t) :: var | |
allocate(p2(1:20)) | |
p => A | |
var%p2 => p2 | |
A = 0 | |
p2 = 0 | |
! These arrays "share original storage", so are unsupported. This will | |
! (correctly) fail with a non-shared address space. | |
!$omp target map(A(3:4), p2(4:8), p, var%p2) | |
A(3) = A(3) + 1 | |
p2(4) = p2(4) + 2 | |
!$omp end target | |
if (A(3).ne.1) stop 1 | |
if (p2(4).ne.2) stop 2 | |
end program | |
! { dg-shouldfail "" { offload_device_nonshared_as } } |