! { dg-do compile } ! { dg-options "-fopenmp -fdump-tree-original" } ! PR fortran/78260 integer function f1() implicit none f1 = 0 !$omp task depend(inout:f1) !$omp end task !$omp task depend(inout:f1) !$omp end task end function f1 integer function f2() implicit none dimension :: f2(1) f2(1) = 0 !$omp task depend(inout:f2) !$omp end task !$omp task depend(inout:f2) !$omp end task end function f2 integer function f3() result(res) implicit none dimension :: res(1) res(1) = 0 !$omp task depend(inout:res) !$omp end task !$omp task depend(inout:res) !$omp end task end function f3 integer function f4() result(res) implicit none allocatable :: res dimension :: res(:) res = [0] !$omp task depend(inout:res) !$omp end task !$omp task depend(inout:res) !$omp end task end function f4 subroutine sub() implicit none integer, allocatable :: arr(:) arr = [3] !$omp task depend(inout:arr) !$omp end task !$omp task depend(inout:arr) !$omp end task end subroutine sub ! { dg-final { scan-tree-dump-times "#pragma omp task depend\\(inout:__result_f1\\)" 2 "original" } } ! { dg-final { scan-tree-dump-times "#pragma omp task depend\\(inout:\\*__result.0\\)" 4 "original" } } ! { dg-final { scan-tree-dump-times "#pragma omp task depend\\(inout:\\*\\(integer\\(kind=4\\)\\\[0:\\\] \\* restrict\\) __result->data\\)" 2 "original" } } ! { dg-final { scan-tree-dump-times "#pragma omp task depend\\(inout:\\*\\(integer\\(kind=4\\)\\\[0:\\\] \\* restrict\\) arr.data\\)" 2 "original" } }