1! { dg-do compile { target { fortran_integer_16 || ilp32 } } }
2! omp_depend_kind = 2*intptr_t --> 16 (128 bit) on 64bit-pointer systems
3!                              --> 8  (128 bit) on 32bit-pointer systems
4subroutine f1
5  !use omp_lib   ! N/A in gcc/testsuite
6  use iso_c_binding, only: c_intptr_t
7  implicit none
8  integer, parameter :: omp_depend_kind = 2*c_intptr_t
9  integer :: a
10  integer(kind=omp_depend_kind) :: depobj1, depobj2, depobj3, depobj4, depobj5
11  !$omp depobj(depobj1) depend (in : a)
12  !$omp depobj(depobj2) depend (out : a)
13  !$omp depobj(depobj3) depend( inout : a)
14  !$omp depobj(depobj4) depend(mutexinoutset: a)
15  !$omp depobj(depobj1) update(out)
16  !$omp depobj(depobj2) update(mutexinoutset)
17  !$omp depobj(depobj3) update(in)
18  !$omp depobj(depobj4) update(inout)
19  !$omp task depend (depobj: depobj1, depobj2, depobj3)
20  !$omp end task
21
22  !$omp task depend(mutexinoutset: a)
23  !$omp end task
24  !$omp depobj(depobj2) destroy
25end subroutine f1
26