blob: cadd9a06cfec21b44cbd5b66e89e3fd315aa4052 [file] [log] [blame]
! { dg-do compile }
module mymod
implicit none (type, external)
integer, target :: var(0:5) = [0,1,2,3,4,5]
contains
function foo (i)
integer :: i
integer, pointer :: foo
foo => var(mod(i, 6))
end
end module mymod
program main
use mymod
implicit none
type t
integer :: x(0:64)
integer :: y
end type t
type(t) :: dep2(0:64)
integer :: dep1(0:64)
integer arr(0:63)
!$omp parallel
!$omp master
block
integer :: i
do i = 0, 63
! NB: Revoking foo (pointer returning function) as in 'foo(i)' is a variable in the Fortran sense
!$omp task depend (iterator (j=i:i+1) , out : foo (j)) ! { dg-error "is not a variable" }
arr(i) = i
!!$omp end task
!$omp task depend(iterator(i=1:5), source ) ! { dg-error "ITERATOR may not be combined with SOURCE" }
!!$omp end task
!$omp task affinity (iterator(i=1:5): a) depend(iterator(i=1:5), sink : x) ! { dg-error "SINK at .1. not permitted as dependence-type for this directive" }
!!$omp end task
end do
end block
!$omp end master
!$omp end parallel
end