! { dg-do compile } ! { dg-additional-options "-fmax-errors=100" } module test implicit none contains subroutine foo (vi, asa) integer, value :: vi integer :: i, ia(10) complex :: c, ca(10) real, target:: r real :: ra(10) real, pointer :: rp real, dimension(:), allocatable :: aa real, dimension(:) :: asa type t integer :: i end type type(t) :: ti type(t), allocatable :: tia type(t), target :: tit type(t), pointer :: tip rp => r tip => tit !$acc parallel deviceptr (rp) ! { dg-error "POINTER" } !$acc end parallel !$acc parallel deviceptr (vi) ! { dg-error "VALUE" } !$acc end parallel !$acc parallel deviceptr (aa) ! { dg-error "ALLOCATABLE" } !$acc end parallel !$acc parallel deviceptr (i, c, r, ia, ca, ra, asa, ti) !$acc end parallel !$acc kernels deviceptr (i, c, r, ia, ca, ra, asa, ti) !$acc end kernels !$acc data deviceptr (i, c, r, ia, ca, ra, asa, ti) !$acc end data !$acc parallel copy (tip) ! { dg-error "POINTER" } !$acc end parallel !$acc parallel copy (tia) ! { dg-error "ALLOCATABLE" } !$acc end parallel !$acc parallel deviceptr (i) copy (i) ! { dg-error "multiple clauses" } !$acc end parallel !$acc parallel copy (i, c, r, ia, ca, ra, asa, rp, ti, vi, aa) !$acc end parallel !$acc kernels copy (i, c, r, ia, ca, ra, asa, rp, ti, vi, aa) !$acc end kernels !$acc data copy (i, c, r, ia, ca, ra, asa, rp, ti, vi, aa) !$acc end data !$acc parallel copyin (tip) ! { dg-error "POINTER" } !$acc end parallel !$acc parallel copyin (tia) ! { dg-error "ALLOCATABLE" } !$acc end parallel !$acc parallel deviceptr (i) copyin (i) ! { dg-error "multiple clauses" } !$acc end parallel !$acc parallel copy (i) copyin (i) ! { dg-error "multiple clauses" } !$acc end parallel !$acc parallel copyin (i, c, r, ia, ca, ra, asa, rp, ti, vi, aa) !$acc end parallel !$acc kernels copyin (i, c, r, ia, ca, ra, asa, rp, ti, vi, aa) !$acc end kernels !$acc data copyin (i, c, r, ia, ca, ra, asa, rp, ti, vi, aa) !$acc end data !$acc parallel copyout (tip) ! { dg-error "POINTER" } !$acc end parallel !$acc parallel copyout (tia) ! { dg-error "ALLOCATABLE" } !$acc end parallel !$acc parallel deviceptr (i) copyout (i) ! { dg-error "multiple clauses" } !$acc end parallel !$acc parallel copy (i) copyout (i) ! { dg-error "multiple clauses" } !$acc end parallel !$acc parallel copyin (i) copyout (i) ! { dg-error "multiple clauses" } !$acc end parallel !$acc parallel copyout (i, c, r, ia, ca, ra, asa, rp, ti, vi, aa) !$acc end parallel !$acc kernels copyout (i, c, r, ia, ca, ra, asa, rp, ti, vi, aa) !$acc end kernels !$acc data copyout (i, c, r, ia, ca, ra, asa, rp, ti, vi, aa) !$acc end data !$acc parallel create (tip) ! { dg-error "POINTER" } !$acc end parallel !$acc parallel create (tia) ! { dg-error "ALLOCATABLE" } !$acc end parallel !$acc parallel deviceptr (i) create (i) ! { dg-error "multiple clauses" } !$acc end parallel !$acc parallel copy (i) create (i) ! { dg-error "multiple clauses" } !$acc end parallel !$acc parallel copyin (i) create (i) ! { dg-error "multiple clauses" } !$acc end parallel !$acc parallel copyout (i) create (i) ! { dg-error "multiple clauses" } !$acc end parallel !$acc parallel create (i, c, r, ia, ca, ra, asa, rp, ti, vi, aa) !$acc end parallel !$acc kernels create (i, c, r, ia, ca, ra, asa, rp, ti, vi, aa) !$acc end kernels !$acc data create (i, c, r, ia, ca, ra, asa, rp, ti, vi, aa) !$acc end data !$acc parallel present (tip) ! { dg-error "POINTER" } !$acc end parallel !$acc parallel present (tia) ! { dg-error "ALLOCATABLE" } !$acc end parallel !$acc parallel deviceptr (i) present (i) ! { dg-error "multiple clauses" } !$acc end parallel !$acc parallel copy (i) present (i) ! { dg-error "multiple clauses" } !$acc end parallel !$acc parallel copyin (i) present (i) ! { dg-error "multiple clauses" } !$acc end parallel !$acc parallel copyout (i) present (i) ! { dg-error "multiple clauses" } !$acc end parallel !$acc parallel create (i) present (i) ! { dg-error "multiple clauses" } !$acc end parallel !$acc parallel present (i, c, r, ia, ca, ra, asa, rp, ti, vi, aa) !$acc end parallel !$acc kernels present (i, c, r, ia, ca, ra, asa, rp, ti, vi, aa) !$acc end kernels !$acc data present (i, c, r, ia, ca, ra, asa, rp, ti, vi, aa) !$acc end data !$acc parallel pcopy (i, c, r, ia, ca, ra, asa, rp, ti, vi, aa) !$acc end parallel !$acc parallel pcopyin (i, c, r, ia, ca, ra, asa, rp, ti, vi, aa) !$acc end parallel !$acc parallel pcopyout (i, c, r, ia, ca, ra, asa, rp, ti, vi, aa) !$acc end parallel !$acc parallel pcreate (i, c, r, ia, ca, ra, asa, rp, ti, vi, aa) !$acc end parallel !$acc parallel present_or_copy (tip) ! { dg-error "POINTER" } !$acc end parallel !$acc parallel present_or_copy (tia) ! { dg-error "ALLOCATABLE" } !$acc end parallel !$acc parallel deviceptr (i) present_or_copy (i) ! { dg-error "multiple clauses" } !$acc end parallel !$acc parallel copy (i) present_or_copy (i) ! { dg-error "multiple clauses" } !$acc end parallel !$acc parallel copyin (i) present_or_copy (i) ! { dg-error "multiple clauses" } !$acc end parallel !$acc parallel copyout (i) present_or_copy (i) ! { dg-error "multiple clauses" } !$acc end parallel !$acc parallel create (i) present_or_copy (i) ! { dg-error "multiple clauses" } !$acc end parallel !$acc parallel present (i) present_or_copy (i) ! { dg-error "multiple clauses" } !$acc end parallel !$acc parallel present_or_copy (i, c, r, ia, ca, ra, asa, rp, ti, vi, aa) !$acc end parallel !$acc kernels present_or_copy (i, c, r, ia, ca, ra, asa, rp, ti, vi, aa) !$acc end kernels !$acc data present_or_copy (i, c, r, ia, ca, ra, asa, rp, ti, vi, aa) !$acc end data !$acc parallel present_or_copyin (tip) ! { dg-error "POINTER" } !$acc end parallel !$acc parallel present_or_copyin (tia) ! { dg-error "ALLOCATABLE" } !$acc end parallel !$acc parallel deviceptr (i) present_or_copyin (i) ! { dg-error "multiple clauses" } !$acc end parallel !$acc parallel copy (i) present_or_copyin (i) ! { dg-error "multiple clauses" } !$acc end parallel !$acc parallel copyin (i) present_or_copyin (i) ! { dg-error "multiple clauses" } !$acc end parallel !$acc parallel copyout (i) present_or_copyin (i) ! { dg-error "multiple clauses" } !$acc end parallel !$acc parallel create (i) present_or_copyin (i) ! { dg-error "multiple clauses" } !$acc end parallel !$acc parallel present (i) present_or_copyin (i) ! { dg-error "multiple clauses" } !$acc end parallel !$acc parallel present_or_copy (i) present_or_copyin (i) ! { dg-error "multiple clauses" } !$acc end parallel !$acc parallel present_or_copyin (i, c, r, ia, ca, ra, asa, rp, ti, vi, aa) !$acc end parallel !$acc kernels present_or_copyin (i, c, r, ia, ca, ra, asa, rp, ti, vi, aa) !$acc end kernels !$acc data present_or_copyin (i, c, r, ia, ca, ra, asa, rp, ti, vi, aa) !$acc end data !$acc parallel present_or_copyout (tip) ! { dg-error "POINTER" } !$acc end parallel !$acc parallel present_or_copyout (tia) ! { dg-error "ALLOCATABLE" } !$acc end parallel !$acc parallel deviceptr (i) present_or_copyout (i) ! { dg-error "multiple clauses" } !$acc end parallel !$acc parallel copy (i) present_or_copyout (i) ! { dg-error "multiple clauses" } !$acc end parallel !$acc parallel copyin (i) present_or_copyout (i) ! { dg-error "multiple clauses" } !$acc end parallel !$acc parallel copyout (i) present_or_copyout (i) ! { dg-error "multiple clauses" } !$acc end parallel !$acc parallel create (i) present_or_copyout (i) ! { dg-error "multiple clauses" } !$acc end parallel !$acc parallel present (i) present_or_copyout (i) ! { dg-error "multiple clauses" } !$acc end parallel !$acc parallel present_or_copy (i) present_or_copyout (i) ! { dg-error "multiple clauses" } !$acc end parallel !$acc parallel present_or_copyin (i) present_or_copyout (i) ! { dg-error "multiple clauses" } !$acc end parallel !$acc parallel present_or_copyout (i, c, r, ia, ca, ra, asa, rp, ti, vi, aa) !$acc end parallel !$acc kernels present_or_copyout (i, c, r, ia, ca, ra, asa, rp, ti, vi, aa) !$acc end kernels !$acc data present_or_copyout (i, c, r, ia, ca, ra, asa, rp, ti, vi, aa) !$acc end data !$acc parallel present_or_create (tip) ! { dg-error "POINTER" } !$acc end parallel !$acc parallel present_or_create (tia) ! { dg-error "ALLOCATABLE" } !$acc end parallel !$acc parallel deviceptr (i) present_or_create (i) ! { dg-error "multiple clauses" } !$acc end parallel !$acc parallel copy (i) present_or_create (i) ! { dg-error "multiple clauses" } !$acc end parallel !$acc parallel copyin (i) present_or_create (i) ! { dg-error "multiple clauses" } !$acc end parallel !$acc parallel copyout (i) present_or_create (i) ! { dg-error "multiple clauses" } !$acc end parallel !$acc parallel create (i) present_or_create (i) ! { dg-error "multiple clauses" } !$acc end parallel !$acc parallel present (i) present_or_create (i) ! { dg-error "multiple clauses" } !$acc end parallel !$acc parallel present_or_copy (i) present_or_create (i) ! { dg-error "multiple clauses" } !$acc end parallel !$acc parallel present_or_copyin (i) present_or_create (i) ! { dg-error "multiple clauses" } !$acc end parallel !$acc parallel present_or_copyout (i) present_or_create (i) ! { dg-error "multiple clauses" } !$acc end parallel !$acc parallel present_or_create (i, c, r, ia, ca, ra, asa, rp, ti, vi, aa) !$acc end parallel !$acc kernels present_or_create (i, c, r, ia, ca, ra, asa, rp, ti, vi, aa) !$acc end kernels !$acc data present_or_create (i, c, r, ia, ca, ra, asa, rp, ti, vi, aa) !$acc end data end subroutine foo end module test