! 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