1! { dg-do compile } 2! { dg-options "-fopenmp -fdump-tree-original" } 3 4! PR fortran/78260 5 6integer function f1() 7 implicit none 8 9 f1 = 0 10 11 !$omp task depend(inout:f1) 12 !$omp end task 13 14 !$omp task depend(inout:f1) 15 !$omp end task 16end function f1 17 18integer function f2() 19 implicit none 20 dimension :: f2(1) 21 22 f2(1) = 0 23 24 !$omp task depend(inout:f2) 25 !$omp end task 26 27 !$omp task depend(inout:f2) 28 !$omp end task 29end function f2 30 31integer function f3() result(res) 32 implicit none 33 dimension :: res(1) 34 35 res(1) = 0 36 37 !$omp task depend(inout:res) 38 !$omp end task 39 40 !$omp task depend(inout:res) 41 !$omp end task 42end function f3 43 44integer function f4() result(res) 45 implicit none 46 allocatable :: res 47 dimension :: res(:) 48 49 res = [0] 50 51 !$omp task depend(inout:res) 52 !$omp end task 53 54 !$omp task depend(inout:res) 55 !$omp end task 56end function f4 57 58subroutine sub() 59 implicit none 60 integer, allocatable :: arr(:) 61 62 arr = [3] 63 64 !$omp task depend(inout:arr) 65 !$omp end task 66 67 !$omp task depend(inout:arr) 68 !$omp end task 69end subroutine sub 70 71! { dg-final { scan-tree-dump-times "#pragma omp task depend\\(inout:__result_f1\\)" 2 "original" } } 72! { dg-final { scan-tree-dump-times "#pragma omp task depend\\(inout:\\*__result.0\\)" 4 "original" } } 73! { dg-final { scan-tree-dump-times "#pragma omp task depend\\(inout:\\*\\(c_char \\*\\) __result->data\\)" 2 "original" } } 74! { dg-final { scan-tree-dump-times "#pragma omp task depend\\(inout:\\*\\(c_char \\*\\) arr.data\\)" 2 "original" } } 75