xref: /llvm-project/flang/test/Semantics/OpenMP/scan2.f90 (revision e67e09a77ea1e4802c0f6bc0409c9f5e9d1fae9a)
1! RUN: %flang_fc1 -fopenmp -fdebug-dump-symbols -o - %s 2>&1 | FileCheck %s
2! Check scan reduction
3
4! CHECK: MainProgram scope: omp_reduction
5program omp_reduction
6  ! CHECK: i size=4 offset=0: ObjectEntity type: INTEGER(4)
7  integer i
8  ! CHECK: k size=4 offset=4: ObjectEntity type: INTEGER(4) init:10_4
9  integer :: k = 10
10  ! CHECK: m size=4 offset=8: ObjectEntity type: INTEGER(4) init:12_4
11  integer :: m = 12
12
13  ! CHECK: OtherConstruct scope
14  ! CHECK: i (OmpPrivate, OmpPreDetermined): HostAssoc
15  ! CHECK: k (OmpReduction, OmpInclusiveScan, OmpInScanReduction): HostAssoc
16  !$omp parallel do  reduction(inscan, +:k)
17  do i=1,10
18   !$omp scan inclusive(k)
19  end do
20  !$omp end parallel do
21  ! CHECK: m (OmpReduction, OmpExclusiveScan, OmpInScanReduction): HostAssoc
22  !$omp parallel do  reduction(inscan, +:m)
23  do i=1,10
24   !$omp scan exclusive(m)
25  end do
26  !$omp end parallel do
27end program omp_reduction
28