blob: e0cdddb8e1bf71185b5adc518ab3173fc5b0d35f [file] [log] [blame] [edit]
! 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