aboutsummaryrefslogtreecommitdiff
path: root/libgomp/testsuite/libgomp.fortran/reverse-offload-6.f90
blob: ddb7008cb1ad3f07a4b0ca2024209adc232d093e (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
!
! Ensure that a mapping with no argument works
!

! { dg-additional-options -foffload-options=nvptx-none=-misa=sm_35 { target offload_target_nvptx } }

module m
  implicit none (type, external)
  integer :: x = 32
  integer :: dev_num2 = -1
contains
subroutine  foo()
  use omp_lib, only: omp_get_device_num
  x = x + 10
  dev_num2 = omp_get_device_num()
end
end module m

use m
use omp_lib
!$omp requires reverse_offload
implicit none (type, external)
integer :: dev_num = -1
!$omp target map(from:dev_num)
  dev_num = omp_get_device_num()
  ! This calls GOMP_target_ext with number of maps = 0
  !$omp target device(ancestor:1)
    call foo
  !$omp end target
!$omp end target

if (omp_get_num_devices() > 0 .and.  dev_num2 == dev_num) stop 1
if (x /= 42) stop 2
end