aboutsummaryrefslogtreecommitdiff
path: root/libgomp/testsuite/libgomp.fortran/map-subarray.f90
blob: 85f5af3a2a6ca1533e56fdcddf6e22a72ce3e4c2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
! { dg-do run }

program myprog
type u
  integer, dimension (:), pointer :: tarr
end type u

type(u) :: myu
integer, dimension (12), target :: myarray

myu%tarr => myarray

myu%tarr = 0

!$omp target map(to:myu%tarr) map(tofrom:myu%tarr(:))
myu%tarr(1) = myu%tarr(1) + 1
!$omp end target

!$omp target map(to:myu%tarr) map(tofrom:myu%tarr(1:2))
myu%tarr(1) = myu%tarr(1) + 1
!$omp end target

!$omp target map(to:myu%tarr) map(tofrom:myu%tarr(1))
myu%tarr(1) = myu%tarr(1) + 1
!$omp end target

!$omp target map(tofrom:myu%tarr)
myu%tarr(1) = myu%tarr(1) + 1
!$omp end target

if (myu%tarr(1).ne.4) stop 1

end program myprog