gcc/libgomp/testsuite/libgomp.fortran/depend-2.f90

35 lines
808 B
Fortran

! { dg-do run }
integer :: x(3:6, 7:12), y
y = 1
!$omp parallel shared (x, y)
!$omp single
!$omp taskgroup
!$omp task depend(in: x(:, :))
if (y.ne.1) call abort
!$omp end task
!$omp task depend(out: x(:, :))
y = 2
!$omp end task
!$omp end taskgroup
!$omp taskgroup
!$omp task depend(in: x(4, 7))
if (y.ne.2) call abort
!$omp end task
!$omp task depend(out: x(4:4, 7:7))
y = 3
!$omp end task
!$omp end taskgroup
!$omp taskgroup
!$omp task depend(in: x(4:, 8:))
if (y.ne.3) call abort
!$omp end task
!$omp task depend(out: x(4:6, 8:12))
y = 4
!$omp end task
!$omp end taskgroup
!$omp end single
!$omp end parallel
if (y.ne.4) call abort
end