! { 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