| ! Offloading test that tests that if(present(a)) compiles and executes without | |
| ! causing any compilation errors, primarily a regression test that does not | |
| ! yield interesting results. | |
| ! REQUIRES: flang, amdgpu | |
| ! RUN: %libomptarget-compile-fortran-run-and-check-generic | |
| module mod | |
| implicit none | |
| contains | |
| subroutine routine(a) | |
| implicit none | |
| real, dimension(:), optional :: a | |
| integer :: i | |
| !$omp target data if(present(a)) map(alloc:a) | |
| do i = 1, 10 | |
| a(i) = i | |
| end do | |
| !$omp end target data | |
| end subroutine routine | |
| end module mod | |
| program main | |
| use mod | |
| real :: a(10) | |
| call routine(a) | |
| print *, a | |
| end program main | |
| ! CHECK: 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. |