1 !RUN: %flang_fc1 -fdebug-unparse -fopenmp -fopenmp-version=51 %s | FileCheck --ignore-case --check-prefix="UNPARSE" %s
2 !RUN: %flang_fc1 -fdebug-dump-parse-tree -fopenmp -fopenmp-version=51 %s | FileCheck --check-prefix="PARSE-TREE" %s
8 !UNPARSE: SUBROUTINE f00
9 !UNPARSE: !$OMP NOTHING
10 !UNPARSE: END SUBROUTINE
12 !PARSE-TREE: ExecutionPart -> Block
13 !PARSE-TREE: | | ExecutionPartConstruct -> ExecutableConstruct -> OpenMPConstruct -> OpenMPUtilityConstruct -> OmpNothingDirective
19 !$omp nothing ! "nothing" in the execution part
24 !UNPARSE: SUBROUTINE f01
26 !UNPARSE: IMPORT, NONE
28 !UNPARSE: !$OMP NOTHING
31 !UNPARSE: END SUBROUTINE
33 !PARSE-TREE: BlockStmt ->
34 !PARSE-TREE: BlockSpecificationPart -> SpecificationPart
35 !PARSE-TREE: | ImportStmt
36 !PARSE-TREE: | ImplicitPart ->
37 !PARSE-TREE: | DeclarationConstruct -> SpecificationConstruct -> TypeDeclarationStmt
38 !PARSE-TREE: | | DeclarationTypeSpec -> IntrinsicTypeSpec -> IntegerTypeSpec ->
39 !PARSE-TREE: | | EntityDecl
40 !PARSE-TREE: | | | Name = 'x'
42 !PARSE-TREE: | ExecutionPartConstruct -> ExecutableConstruct -> OpenMPConstruct -> OpenMPUtilityConstruct -> OmpNothingDirective
43 !PARSE-TREE: | ExecutionPartConstruct -> ExecutableConstruct -> ActionStmt -> AssignmentStmt = 'x=x+1_4'
44 !PARSE-TREE: | | Variable = 'x'
45 !PARSE-TREE: | | | Designator -> DataRef -> Name = 'x'
46 !PARSE-TREE: | | Expr = 'x+1_4'
47 !PARSE-TREE: | | | Add
48 !PARSE-TREE: | | | | Expr = 'x'
49 !PARSE-TREE: | | | | | Designator -> DataRef -> Name = 'x'
50 !PARSE-TREE: | | | | Expr = '1_4'
51 !PARSE-TREE: | | | | | LiteralConstant -> IntLiteralConstant = '1'
52 !PARSE-TREE: EndBlockStmt ->
59 !UNPARSE: SUBROUTINE f02
61 !UNPARSE: !$OMP NOTHING
62 !UNPARSE: END SUBROUTINE
64 !PARSE-TREE: SpecificationPart
65 !PARSE-TREE: | ImplicitPart ->
66 !PARSE-TREE: | DeclarationConstruct -> SpecificationConstruct -> TypeDeclarationStmt
67 !PARSE-TREE: | | DeclarationTypeSpec -> IntrinsicTypeSpec -> IntegerTypeSpec ->
68 !PARSE-TREE: | | EntityDecl
69 !PARSE-TREE: | | | Name = 'x'
70 !PARSE-TREE: ExecutionPart -> Block
71 !PARSE-TREE: | ExecutionPartConstruct -> ExecutableConstruct -> OpenMPConstruct -> OpenMPUtilityConstruct -> OmpNothingDirective
75 !$omp nothing ! "nothing" in the specification part
82 !UNPARSE: SUBROUTINE f03
84 !UNPARSE: !$OMP NOTHING
85 !UNPARSE: IMPORT, NONE
89 !UNPARSE: END SUBROUTINE
91 !PARSE-TREE: ExecutionPart -> Block
92 !PARSE-TREE: | ExecutionPartConstruct -> ExecutableConstruct -> BlockConstruct
93 !PARSE-TREE: | | BlockStmt ->
94 !PARSE-TREE: | | BlockSpecificationPart -> SpecificationPart
95 !PARSE-TREE: | | | OpenMPDeclarativeConstruct -> OpenMPUtilityConstruct -> OmpNothingDirective
96 !PARSE-TREE: | | | ImportStmt
97 !PARSE-TREE: | | | ImplicitPart ->
98 !PARSE-TREE: | | | DeclarationConstruct -> SpecificationConstruct -> TypeDeclarationStmt
99 !PARSE-TREE: | | | | DeclarationTypeSpec -> IntrinsicTypeSpec -> IntegerTypeSpec ->
100 !PARSE-TREE: | | | | EntityDecl
101 !PARSE-TREE: | | | | | Name = 'x'
102 !PARSE-TREE: | | Block
103 !PARSE-TREE: | | | ExecutionPartConstruct -> ExecutableConstruct -> ActionStmt -> AssignmentStmt = 'x=x+1_4'
104 !PARSE-TREE: | | | | Variable = 'x'
105 !PARSE-TREE: | | | | | Designator -> DataRef -> Name = 'x'
106 !PARSE-TREE: | | | | Expr = 'x+1_4'
107 !PARSE-TREE: | | | | | Add
108 !PARSE-TREE: | | | | | | Expr = 'x'
109 !PARSE-TREE: | | | | | | | Designator -> DataRef -> Name = 'x'
110 !PARSE-TREE: | | | | | | Expr = '1_4'
111 !PARSE-TREE: | | | | | | | LiteralConstant -> IntLiteralConstant = '1'
112 !PARSE-TREE: | | EndBlockStmt ->
113 !PARSE-TREE: EndSubroutineStmt ->