! Test OpenACC data regions with optional arguments passed by value. | |
! { dg-do run } | |
program test | |
implicit none | |
integer :: res | |
if (foo(27) .ne. 27) stop 1 | |
if (foo(16, 18) .ne. 288) stop 2 | |
contains | |
function foo(x, y) | |
integer, value :: x | |
integer, value, optional :: y | |
integer :: res, foo | |
!$acc data copyin(x, y) copyout(res) | |
!$acc parallel | |
res = x | |
if (present(y)) then | |
res = res * y | |
end if | |
!$acc end parallel | |
!$acc end data | |
foo = res | |
end function foo | |
end program test |