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