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