1! { dg-do compile } 2 3module mymod 4 implicit none (type, external) 5 integer, target :: var(0:5) = [0,1,2,3,4,5] 6contains 7 function foo (i) 8 integer :: i 9 integer, pointer :: foo 10 foo => var(mod(i, 6)) 11 end 12end module mymod 13 14program main 15 use mymod 16 implicit none 17 18 type t 19 integer :: x(0:64) 20 integer :: y 21 end type t 22 type(t) :: dep2(0:64) 23 integer :: dep1(0:64) 24 25 integer arr(0:63) 26 !$omp parallel 27 !$omp master 28 block 29 integer :: i 30 do i = 0, 63 31 ! NB: Revoking foo (pointer returning function) as in 'foo(i)' is a variable in the Fortran sense 32 !$omp task depend (iterator (j=i:i+1) , out : foo (j)) ! { dg-error "is not a variable" } 33 arr(i) = i 34 !!$omp end task 35 !$omp task depend(iterator(i=1:5), source ) ! { dg-error "ITERATOR may not be combined with SOURCE" } 36 !!$omp end task 37 !$omp task affinity (iterator(i=1:5): a) depend(iterator(i=1:5), sink : x) ! { dg-error "ITERATOR may not be combined with SINK" } 38 !!$omp end task 39 40 end do 41 end block 42 !$omp end master 43 !$omp end parallel 44end 45