2020-05-29 21:36:27 +02:00
|
|
|
! { dg-do run }
|
|
|
|
! { dg-skip-if "" { *-*-* } { "*" } { "-DACC_MEM_SHARED=0" } }
|
|
|
|
|
|
|
|
! Adapted from 'libgomp.oacc-fortran/deep-copy-6.f90'.
|
|
|
|
|
|
|
|
program main
|
|
|
|
use openacc
|
|
|
|
implicit none
|
|
|
|
integer, parameter :: n = 512
|
|
|
|
type mytype
|
|
|
|
integer, allocatable :: a(:)
|
|
|
|
end type mytype
|
|
|
|
type(mytype) :: var
|
|
|
|
|
|
|
|
allocate(var%a(1:n))
|
|
|
|
|
|
|
|
!$acc data create(var)
|
|
|
|
|
|
|
|
!$acc enter data create(var%a)
|
|
|
|
|
|
|
|
if (.not. acc_is_present(var%a)) stop 1
|
|
|
|
if (.not. acc_is_present(var)) stop 2
|
|
|
|
|
2020-05-29 15:22:42 +02:00
|
|
|
!$acc exit data delete(var%a) finalize
|
|
|
|
if (acc_is_present(var%a)) stop 3
|
|
|
|
if (.not. acc_is_present(var)) stop 4
|
2020-05-29 21:36:27 +02:00
|
|
|
|
|
|
|
!$acc end data
|
|
|
|
if (acc_is_present(var%a)) stop 5
|
|
|
|
if (acc_is_present(var)) stop 6
|
|
|
|
|
|
|
|
deallocate(var%a)
|
|
|
|
|
|
|
|
end program main
|