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 } }