gcc/libgomp/testsuite/libgomp.oacc-fortran/attach-descriptor-1.f90
Martin Liska 2aea19bdb1 nvptx: update fix for -Wformat-diag
gcc/ChangeLog:

	* config/nvptx/nvptx.cc (nvptx_goacc_validate_dims_1): Update
	warning messages.

libgomp/ChangeLog:

	* testsuite/libgomp.oacc-c++/privatized-ref-2.C: Update scanning
	patterns.
	* testsuite/libgomp.oacc-c++/privatized-ref-3.C: Likewise.
	* testsuite/libgomp.oacc-c-c++-common/acc_prof-kernels-1.c:
	Likewise.
	* testsuite/libgomp.oacc-c-c++-common/kernels-loop-2.c: Likewise.
	* testsuite/libgomp.oacc-c-c++-common/parallel-dims.c: Likewise.
	* testsuite/libgomp.oacc-c-c++-common/pr85486.c: Likewise.
	* testsuite/libgomp.oacc-c-c++-common/pr95270-1.c: Likewise.
	* testsuite/libgomp.oacc-c-c++-common/routine-nohost-2.c:
	Likewise.
	* testsuite/libgomp.oacc-c-c++-common/struct-copyout-1.c:
	Likewise.
	* testsuite/libgomp.oacc-c-c++-common/struct-copyout-2.c:
	Likewise.
	* testsuite/libgomp.oacc-c-c++-common/vector-length-64-1.c:
	Likewise.
	* testsuite/libgomp.oacc-fortran/attach-descriptor-1.f90:
	Likewise.
	* testsuite/libgomp.oacc-fortran/derivedtypes-arrays-1.f90:
	Likewise.
	* testsuite/libgomp.oacc-fortran/kernels-loop-2.f95: Likewise.
	* testsuite/libgomp.oacc-fortran/parallel-dims.f90: Likewise.
	* testsuite/libgomp.oacc-fortran/privatized-ref-1.f95: Likewise.

Co-authored-by: Thomas Schwinge <thomas@codesourcery.com>
2022-01-19 08:27:00 +01:00

123 lines
3 KiB
Fortran

! { dg-do run }
! { dg-skip-if "" { *-*-* } { "*" } { "-DACC_MEM_SHARED=0" } }
subroutine test(variant)
use openacc
implicit none
integer :: variant
type t
integer :: arr1(10)
integer, allocatable :: arr2(:)
end type t
integer :: i
type(t) :: myvar
integer, target :: tarr(10)
integer, pointer :: myptr(:)
allocate(myvar%arr2(10))
do i=1,10
myvar%arr1(i) = 0
myvar%arr2(i) = 0
tarr(i) = 0
end do
call acc_copyin(myvar)
call acc_copyin(myvar%arr2)
call acc_copyin(tarr)
myptr => tarr
if (variant == 0 &
.or. variant == 3 &
.or. variant == 5) then
!$acc enter data attach(myvar%arr2, myptr)
else if (variant == 1 &
.or. variant == 2 &
.or. variant == 4) then
!$acc enter data attach(myvar%arr2, myptr)
!$acc enter data attach(myvar%arr2, myptr)
else
! Internal error.
stop 1
end if
!$acc serial present(myvar%arr2)
! { dg-warning "using .vector_length \\(32\\)., ignoring 1" "" { target openacc_nvidia_accel_selected } .-1 }
do i=1,10
myvar%arr1(i) = i + variant
myvar%arr2(i) = i - variant
end do
myptr(3) = 99 - variant
!$acc end serial
if (variant == 0) then
!$acc exit data detach(myvar%arr2, myptr)
else if (variant == 1) then
!$acc exit data detach(myvar%arr2, myptr)
!$acc exit data detach(myvar%arr2, myptr)
else if (variant == 2) then
!$acc exit data detach(myvar%arr2, myptr)
!$acc exit data detach(myvar%arr2, myptr) finalize
else if (variant == 3 &
.or. variant == 4) then
!$acc exit data detach(myvar%arr2, myptr) finalize
else if (variant == 5) then
! Do not detach.
else
! Internal error.
stop 2
end if
if (.not. acc_is_present(myvar%arr2)) stop 10
if (.not. acc_is_present(myvar)) stop 11
if (.not. acc_is_present(tarr)) stop 12
call acc_copyout(myvar%arr2)
if (acc_is_present(myvar%arr2)) stop 20
if (.not. acc_is_present(myvar)) stop 21
if (.not. acc_is_present(tarr)) stop 22
call acc_copyout(myvar)
if (acc_is_present(myvar%arr2)) stop 30
if (acc_is_present(myvar)) stop 31
if (.not. acc_is_present(tarr)) stop 32
call acc_copyout(tarr)
if (acc_is_present(myvar%arr2)) stop 40
if (acc_is_present(myvar)) stop 41
if (acc_is_present(tarr)) stop 42
do i=1,10
if (myvar%arr1(i) .ne. i + variant) stop 50
if (variant == 5) then
! We have not detached, so have copyied out a device pointer, so cannot
! access 'myvar%arr2' on the host.
else
if (myvar%arr2(i) .ne. i - variant) stop 51
end if
end do
if (tarr(3) .ne. 99 - variant) stop 52
if (variant == 5) then
! If not explicitly stopping here, we'd in the following try to deallocate
! the device pointer on the host, SIGSEGV.
stop
end if
end subroutine test
program att
implicit none
call test(0)
call test(1)
call test(2)
call test(3)
call test(4)
call test(5)
! Make sure that 'test(5)' has stopped the program.
stop 60
end program att