blob: f1cb0c87e12621e8560314c3d3b1b04d76905164 [file] [log] [blame] [edit]
! RUN: %flang_fc1 -fopenmp-version=51 -fopenmp -fdebug-unparse-no-sema %s 2>&1 | FileCheck %s
! RUN: %flang_fc1 -fopenmp-version=51 -fopenmp -fdebug-dump-parse-tree-no-sema %s 2>&1 | FileCheck %s --check-prefix="PARSE-TREE"
subroutine sub1
integer :: r
!CHECK: !$OMP ASSUME NO_OPENMP
!PARSE-TREE: ExecutionPartConstruct -> ExecutableConstruct -> OpenMPConstruct -> OpenMPAssumeConstruct
!PARSE-TREE: Verbatim
!PARSE-TREE: OmpClauseList -> OmpClause -> NoOpenmp
!$omp assume no_openmp
!CHECK: !$OMP ASSUME NO_PARALLELISM
!PARSE-TREE: ExecutionPartConstruct -> ExecutableConstruct -> OpenMPConstruct -> OpenMPAssumeConstruct
!PARSE-TREE: Verbatim
!PARSE-TREE: OmpClauseList -> OmpClause -> NoParallelism
!$omp assume no_parallelism
!CHECK: !$OMP ASSUME NO_OPENMP_ROUTINES
!PARSE-TREE: ExecutionPartConstruct -> ExecutableConstruct -> OpenMPConstruct -> OpenMPAssumeConstruct
!PARSE-TREE: Verbatim
!PARSE-TREE: OmpClauseList -> OmpClause -> NoOpenmpRoutines
!$omp assume no_openmp_routines
!CHECK: !$OMP ASSUME ABSENT(ALLOCATE), CONTAINS(WORKSHARE,TASK)
!PARSE-TREE: ExecutionPartConstruct -> ExecutableConstruct -> OpenMPConstruct -> OpenMPAssumeConstruct
!PARSE-TREE: Verbatim
!PARSE-TREE: OmpClauseList -> OmpClause -> Absent -> OmpAbsentClause -> llvm::omp::Directive = allocate
!PARSE-TREE: OmpClause -> Contains -> OmpContainsClause -> llvm::omp::Directive = workshare
!PARSE-TREE: llvm::omp::Directive = task
!$omp assume absent(allocate), contains(workshare, task)
!CHECK: !$OMP ASSUME HOLDS(1==1)
!$omp assume holds(1.eq.1)
print *, r
end subroutine sub1
subroutine sub2
integer :: r
integer :: v
!CHECK !$OMP ASSUME NO_OPENMP
!PARSE-TREE: ExecutionPartConstruct -> ExecutableConstruct -> OpenMPConstruct -> OpenMPAssumeConstruct
!PARSE-TREE: OmpAssumeDirective
!PARSE-TREE: Verbatim
!PARSE-TREE: OmpClauseList -> OmpClause -> NoOpenmp
!PARSE-TREE: Block
!PARSE-TREE: ExecutionPartConstruct -> ExecutableConstruct -> ActionStmt -> AssignmentStmt
!PARSE-TREE: Expr -> Add
!PARSE-TREE: OmpEndAssumeDirective
v = 87
!$omp assume no_openmp
r = r + 1
!CHECK !$OMP END ASSUME
!$omp end assume
end subroutine sub2
program p
!CHECK !$OMP ASSUMES NO_OPENMP
!PARSE-TREE: SpecificationPart
!PARSE-TREE: OpenMPDeclarativeConstruct -> OpenMPDeclarativeAssumes
!PARSE-TREE: Verbatim
!PARSE-TREE: OmpClauseList -> OmpClause -> NoOpenmp
!$omp assumes no_openmp
end program p