61 lines · plain
1!RUN: %flang_fc1 -fdebug-unparse -fopenmp -fopenmp-version=60 %s | FileCheck --ignore-case --check-prefix="UNPARSE" %s2!RUN: %flang_fc1 -fdebug-dump-parse-tree -fopenmp -fopenmp-version=60 %s | FileCheck --check-prefix="PARSE-TREE" %s3 4subroutine f005 !$omp task replayable6 block7 end block8end9 10!UNPARSE: SUBROUTINE f0011!UNPARSE: !$OMP TASK REPLAYABLE12!UNPARSE: BLOCK13!UNPARSE: END BLOCK14!UNPARSE: END SUBROUTINE15 16!PARSE-TREE: ExecutionPartConstruct -> ExecutableConstruct -> OpenMPConstruct -> OmpBlockConstruct17!PARSE-TREE: | OmpBeginDirective18!PARSE-TREE: | | OmpDirectiveName -> llvm::omp::Directive = task19!PARSE-TREE: | | OmpClauseList -> OmpClause -> Replayable ->20!PARSE-TREE: | | Flags = {}21!PARSE-TREE: | Block22 23 24subroutine f01(x)25 implicit none26 integer :: x27 !$omp target_update to(x) replayable(.true.)28end29 30!UNPARSE: SUBROUTINE f01 (x)31!UNPARSE: IMPLICIT NONE32!UNPARSE: INTEGER x33!UNPARSE: !$OMP TARGET_UPDATE TO(x) REPLAYABLE(.true._4)34!UNPARSE: END SUBROUTINE35 36!PARSE-TREE: ExecutionPartConstruct -> ExecutableConstruct -> OpenMPConstruct -> OpenMPStandaloneConstruct -> OpenMPSimpleStandaloneConstruct -> OmpDirectiveSpecification37!PARSE-TREE: | OmpDirectiveName -> llvm::omp::Directive = target update38!PARSE-TREE: | OmpClauseList -> OmpClause -> To -> OmpToClause39!PARSE-TREE: | | OmpObjectList -> OmpObject -> Designator -> DataRef -> Name = 'x'40!PARSE-TREE: | | bool = 'true'41!PARSE-TREE: | OmpClause -> Replayable -> OmpReplayableClause -> Scalar -> Logical -> Constant -> Expr = '.true._4'42!PARSE-TREE: | | LiteralConstant -> LogicalLiteralConstant43!PARSE-TREE: | | | bool = 'true'44!PARSE-TREE: | Flags = {}45 46 47subroutine f0248 !$omp taskwait replayable(.false.)49end50 51!UNPARSE: SUBROUTINE f0252!UNPARSE: !$OMP TASKWAIT REPLAYABLE(.false._4)53!UNPARSE: END SUBROUTINE54 55!PARSE-TREE: ExecutionPartConstruct -> ExecutableConstruct -> OpenMPConstruct -> OpenMPStandaloneConstruct -> OpenMPSimpleStandaloneConstruct -> OmpDirectiveSpecification56!PARSE-TREE: | OmpDirectiveName -> llvm::omp::Directive = taskwait57!PARSE-TREE: | OmpClauseList -> OmpClause -> Replayable -> OmpReplayableClause -> Scalar -> Logical -> Constant -> Expr = '.false._4'58!PARSE-TREE: | | LiteralConstant -> LogicalLiteralConstant59!PARSE-TREE: | | | bool = 'false'60!PARSE-TREE: | Flags = {}61