! { dg-do run } ! { dg-xfail-run-if TODO { offload_device_any_intel_mic } } program main use omp_lib implicit none integer :: device_num, host_device_num, i logical :: initial_device host_device_num = omp_get_device_num () if (host_device_num .ne. omp_get_initial_device ()) stop 1 do i = 0, omp_get_num_devices () !$omp target map(from: device_num, initial_device) device(i) initial_device = omp_is_initial_device () device_num = omp_get_device_num () !$omp end target if (i /= device_num) stop 2 if (initial_device .and. (host_device_num .ne. device_num)) stop 3 if ((.not. initial_device) .and. (host_device_num .eq. device_num)) stop 4 end do end program main