! OpenMP offloading test that checks we do not cause a segfault when mapping ! optional function arguments (present or otherwise). No results requiring ! checking other than that the program compiles and runs to completion with no ! error. ! REQUIRES: flang, amdgpu ! RUN: %libomptarget-compile-fortran-run-and-check-generic module foo implicit none contains subroutine test(I,A) implicit none real(4), optional, intent(inout) :: A(:) integer(kind=4), intent(in) :: I !$omp target data map(to: A) if (I>0) !$omp end target data !$omp target enter data map(to:A) if (I>0) !$omp target exit data map(from:A) if (I>0) end subroutine test end module foo program main use foo implicit none real :: array(10) call test(0) call test(1) call test(0, array) call test(1, array) print *, "PASSED" end program main ! CHECK: PASSED