File: depend-iterator-2.f90

package info (click to toggle)
gcc-arm-none-eabi 15%3A14.2.rel1-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 1,099,328 kB
  • sloc: cpp: 3,627,108; ansic: 2,571,498; ada: 834,230; f90: 235,082; makefile: 79,231; asm: 74,984; xml: 51,692; exp: 39,736; sh: 33,298; objc: 15,629; python: 15,069; fortran: 14,429; pascal: 7,003; awk: 5,070; perl: 3,106; ml: 285; lisp: 253; lex: 204; haskell: 135
file content (44 lines) | stat: -rw-r--r-- 1,093 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
! { 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