| ! 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 1 | |
| 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 |