blob: 36a2ed5ef11c09f0e24a1b486523cfb8cce6ec41 (
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
34
35
36
37
38
39
40
41
|
! { dg-additional-options "-DMEM_SHARED" { target offload_device_shared_as } }
! { dg-do run }
!
! PR middle-end/94635
implicit none
integer, parameter :: N = 20
integer, allocatable, dimension(:) :: my1DPtr
integer, dimension(N) :: my1DArr
integer :: i
allocate(my1DPtr(N))
my1DPtr = 43
!$omp target enter data map(alloc: my1DPtr)
!$omp target
my1DPtr = [(i , i = 1, N)]
!$omp end target
!$omp target map(from: my1DArr)
my1DArr = my1DPtr
!$omp end target
!$omp target exit data map(delete: my1DPtr)
if (any (my1DArr /= [(i, i = 1, N)])) stop 1
#if MEM_SHARED
if (any (my1DArr /= my1DPtr)) stop 2
#else
if (any (43 /= my1DPtr)) stop 3
#endif
my1DPtr = [(2*N-i, i = 1, N)]
my1DArr = 42
!$omp target map(tofrom: my1DArr) map(tofrom: my1DPtr(:))
my1DArr = my1DPtr
my1DPtr = 20
!$omp end target
if (any (my1DArr /= [(2*N-i, i = 1, N)])) stop 4
if (any (20 /= my1DPtr)) stop 6
end
|