! { 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