! { dg-do compile } ! { dg-additional-options "-fdump-tree-original" } integer function foo(a,b, n) result(r) implicit none integer :: a(n), b(n), n, i r = 0 !$omp parallel do reduction (inscan, +:r) default(none) firstprivate (a, b) do i = 1, n r = r + a(i) !$omp scan inclusive (r) b(i) = r end do end ! { dg-final { scan-tree-dump-times "#pragma omp parallel firstprivate\\(a\\) firstprivate\\(b\\) shared\\(r\\) default\\(none\\)" 1 "original" } } ! { dg-final { scan-tree-dump-times "#pragma omp for reduction\\(inscan,\\\+:r\\) nowait" 1 "original" } } ! { dg-final { scan-tree-dump-times "#pragma omp scan inclusive\\(r\\)" 1 "original" } }