gcc/libgomp/testsuite/libgomp.oacc-fortran/non-scalar-data.f90
Cesar Philippidis aadc043f3c non-scalar-data.f90: Don't pass parameter variables to subroutines.
libgomp/
	* testsuite/libgomp.oacc-fortran/non-scalar-data.f90: Don't
	pass parameter variables to subroutines.

From-SVN: r234992
2016-04-14 14:24:03 -07:00

53 lines
903 B
Fortran

! Ensure that a non-scalar dummy arguments which are implicitly used inside
! offloaded regions are properly mapped using present_or_copy.
! { dg-do run }
program main
implicit none
integer,parameter :: size = 100
integer :: array(size), i, n
n = size
!$acc data copy(array)
call kernels(array, n)
!$acc update host(array)
do i = 1, n
if (array(i) .ne. i) call abort
end do
call parallel(array, n)
!$acc end data
do i = 1, n
if (array(i) .ne. i+i) call abort
end do
end program main
subroutine kernels (array, n)
integer, dimension (n) :: array
integer :: n, i
!$acc kernels
do i = 1, n
array(i) = i
end do
!$acc end kernels
end subroutine kernels
subroutine parallel (array, n)
integer, dimension (n) :: array
integer :: n, i
!$acc parallel
do i = 1, n
array(i) = i+i
end do
!$acc end parallel
end subroutine parallel