aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite/gfortran.dg/gomp/depobj-1.f90
blob: 73734bbb07ea7a84b8f7689332ca24a20d5c2dfc (plain)
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
! { dg-do compile { target { fortran_integer_16 || ilp32 } } }
! omp_depend_kind = 2*intptr_t --> 16 (128 bit) on 64bit-pointer systems
!                              --> 8  (128 bit) on 32bit-pointer systems
subroutine f1
  !use omp_lib   ! N/A in gcc/testsuite
  use iso_c_binding, only: c_intptr_t
  implicit none
  integer, parameter :: omp_depend_kind = 2*c_intptr_t
  integer :: a
  integer(kind=omp_depend_kind) :: depobj1, depobj2, depobj3, depobj4, depobj5
  !$omp depobj(depobj1) depend (in : a)
  !$omp depobj(depobj2) depend (out : a)
  !$omp depobj(depobj3) depend( inout : a)
  !$omp depobj(depobj4) depend(mutexinoutset: a)
  !$omp depobj(depobj1) update(out)
  !$omp depobj(depobj2) update(mutexinoutset)
  !$omp depobj(depobj3) update(in)
  !$omp depobj(depobj4) update(inout)
  !$omp task depend (depobj: depobj1, depobj2, depobj3)
  !$omp end task

  !$omp task depend(mutexinoutset: a)
  !$omp end task
  !$omp depobj(depobj2) destroy
  !$omp depobj(depobj1) depend(inoutset: a)
  !$omp depobj(depobj1) update(mutexinoutset)
  !$omp depobj(depobj1) update(inoutset)
end subroutine f1