xref: /llvm-project/flang/test/Parser/OpenMP/reduction-modifier.f90 (revision 58f9c4fc0055821d88869aafd49e0424b1070a79)
1! RUN: %flang_fc1 -fdebug-unparse-no-sema -fopenmp %s | FileCheck --ignore-case %s
2! RUN: %flang_fc1 -fdebug-dump-parse-tree-no-sema -fopenmp %s | FileCheck --check-prefix="PARSE-TREE" %s
3
4subroutine foo()
5  integer :: i, j
6  j = 0
7! CHECK: !$OMP DO  REDUCTION(TASK, *: j)
8! PARSE-TREE: | | ExecutionPartConstruct -> ExecutableConstruct -> OpenMPConstruct -> OpenMPLoopConstruct
9! PARSE-TREE: | | | OmpBeginLoopDirective
10! PARSE-TREE: | | | | OmpLoopDirective -> llvm::omp::Directive = do
11! PARSE-TREE: | | | | OmpClauseList -> OmpClause -> Reduction -> OmpReductionClause
12! PARSE-TREE: | | | | | Modifier -> OmpReductionModifier -> Value = Task
13! PARSE-TREE: | | | | | Modifier -> OmpReductionIdentifier -> DefinedOperator -> IntrinsicOperator = Multiply
14! PARSE-TREE: | | | | | OmpObjectList -> OmpObject -> Designator -> DataRef -> Name = 'j
15  !$omp do reduction (task, *: j)
16  do i = 1, 10
17    j = j + 1
18  end do
19  !$omp end do
20end
21