1subroutine foo (a)
2  implicit none (external, type)
3  integer, contiguous :: a(0:)
4  integer :: i, r, s
5  r = 0; s = 0
6
7  ! In 'parallel masked taskloop', in_reduction is not permitted.
8
9  !$omp taskgroup task_reduction(+:r)
10    !$omp parallel masked taskloop in_reduction(+:r)  ! { dg-error "36: Failed to match clause" }
11      do i = 0, 63
12        r = r + a(i)
13      end do
14    !!$omp end parallel masked taskloop
15  !$omp end taskgroup
16
17  !$omp taskgroup task_reduction(+:s)
18    !$omp parallel masked taskloop simd in_reduction(+:s)  ! { dg-error "41: Failed to match clause" }
19      do i = 0, 63
20        s = s + a(i)
21      end do
22    !!$omp end parallel masked taskloop simd
23  !$omp end taskgroup
24end
25