1! { dg-do compile }
2! { dg-additional-options "-fdump-tree-original" }
3
4integer function foo(a,b, n) result(r)
5  implicit none
6  integer :: a(n), b(n), n, i
7  r = 0
8  !$omp parallel do reduction (inscan, +:r) default(none) firstprivate (a, b)
9  do i = 1, n
10    r = r + a(i)
11    !$omp scan inclusive (r)
12    b(i) = r
13  end do
14end
15
16! { dg-final { scan-tree-dump-times "#pragma omp parallel firstprivate\\(a\\) firstprivate\\(b\\) default\\(none\\)" 1 "original" } }
17! { dg-final { scan-tree-dump-times "#pragma omp for reduction\\(inscan,\\\+:r\\) nowait" 1 "original" } }
18! { dg-final { scan-tree-dump-times "#pragma omp scan inclusive\\(r\\)" 1 "original" } }
19