blob: 22558c493c4448481800682ae24eb36cb39adc73 [file] [log] [blame] [edit]
!RUN: %flang_fc1 -fdebug-unparse -fopenmp -fopenmp-version=51 %s | FileCheck --ignore-case --check-prefix="UNPARSE" %s
!RUN: %flang_fc1 -fdebug-dump-parse-tree -fopenmp -fopenmp-version=51 %s | FileCheck --check-prefix="PARSE-TREE" %s
subroutine f00
!$omp nothing
end
!UNPARSE: SUBROUTINE f00
!UNPARSE: !$OMP NOTHING
!UNPARSE: END SUBROUTINE
!PARSE-TREE: ExecutionPart -> Block
!PARSE-TREE: | | ExecutionPartConstruct -> ExecutableConstruct -> OpenMPConstruct -> OpenMPUtilityConstruct -> OmpNothingDirective
subroutine f01
block
import, none
integer :: x
!$omp nothing ! "nothing" in the execution part
x = x+1
end block
end
!UNPARSE: SUBROUTINE f01
!UNPARSE: BLOCK
!UNPARSE: IMPORT, NONE
!UNPARSE: INTEGER x
!UNPARSE: !$OMP NOTHING
!UNPARSE: x=x+1_4
!UNPARSE: END BLOCK
!UNPARSE: END SUBROUTINE
!PARSE-TREE: BlockStmt ->
!PARSE-TREE: BlockSpecificationPart -> SpecificationPart
!PARSE-TREE: | ImportStmt
!PARSE-TREE: | ImplicitPart ->
!PARSE-TREE: | DeclarationConstruct -> SpecificationConstruct -> TypeDeclarationStmt
!PARSE-TREE: | | DeclarationTypeSpec -> IntrinsicTypeSpec -> IntegerTypeSpec ->
!PARSE-TREE: | | EntityDecl
!PARSE-TREE: | | | Name = 'x'
!PARSE-TREE: Block
!PARSE-TREE: | ExecutionPartConstruct -> ExecutableConstruct -> OpenMPConstruct -> OpenMPUtilityConstruct -> OmpNothingDirective
!PARSE-TREE: | ExecutionPartConstruct -> ExecutableConstruct -> ActionStmt -> AssignmentStmt = 'x=x+1_4'
!PARSE-TREE: | | Variable = 'x'
!PARSE-TREE: | | | Designator -> DataRef -> Name = 'x'
!PARSE-TREE: | | Expr = 'x+1_4'
!PARSE-TREE: | | | Add
!PARSE-TREE: | | | | Expr = 'x'
!PARSE-TREE: | | | | | Designator -> DataRef -> Name = 'x'
!PARSE-TREE: | | | | Expr = '1_4'
!PARSE-TREE: | | | | | LiteralConstant -> IntLiteralConstant = '1'
!PARSE-TREE: EndBlockStmt ->
subroutine f02
integer :: x
!$omp nothing
end
!UNPARSE: SUBROUTINE f02
!UNPARSE: INTEGER x
!UNPARSE: !$OMP NOTHING
!UNPARSE: END SUBROUTINE
!PARSE-TREE: SpecificationPart
!PARSE-TREE: | ImplicitPart ->
!PARSE-TREE: | DeclarationConstruct -> SpecificationConstruct -> TypeDeclarationStmt
!PARSE-TREE: | | DeclarationTypeSpec -> IntrinsicTypeSpec -> IntegerTypeSpec ->
!PARSE-TREE: | | EntityDecl
!PARSE-TREE: | | | Name = 'x'
!PARSE-TREE: ExecutionPart -> Block
!PARSE-TREE: | ExecutionPartConstruct -> ExecutableConstruct -> OpenMPConstruct -> OpenMPUtilityConstruct -> OmpNothingDirective
subroutine f03
block
!$omp nothing ! "nothing" in the specification part
import, none
integer :: x
x = x+1
end block
end
!UNPARSE: SUBROUTINE f03
!UNPARSE: BLOCK
!UNPARSE: !$OMP NOTHING
!UNPARSE: IMPORT, NONE
!UNPARSE: INTEGER x
!UNPARSE: x=x+1_4
!UNPARSE: END BLOCK
!UNPARSE: END SUBROUTINE
!PARSE-TREE: ExecutionPart -> Block
!PARSE-TREE: | ExecutionPartConstruct -> ExecutableConstruct -> BlockConstruct
!PARSE-TREE: | | BlockStmt ->
!PARSE-TREE: | | BlockSpecificationPart -> SpecificationPart
!PARSE-TREE: | | | OpenMPDeclarativeConstruct -> OpenMPUtilityConstruct -> OmpNothingDirective
!PARSE-TREE: | | | ImportStmt
!PARSE-TREE: | | | ImplicitPart ->
!PARSE-TREE: | | | DeclarationConstruct -> SpecificationConstruct -> TypeDeclarationStmt
!PARSE-TREE: | | | | DeclarationTypeSpec -> IntrinsicTypeSpec -> IntegerTypeSpec ->
!PARSE-TREE: | | | | EntityDecl
!PARSE-TREE: | | | | | Name = 'x'
!PARSE-TREE: | | Block
!PARSE-TREE: | | | ExecutionPartConstruct -> ExecutableConstruct -> ActionStmt -> AssignmentStmt = 'x=x+1_4'
!PARSE-TREE: | | | | Variable = 'x'
!PARSE-TREE: | | | | | Designator -> DataRef -> Name = 'x'
!PARSE-TREE: | | | | Expr = 'x+1_4'
!PARSE-TREE: | | | | | Add
!PARSE-TREE: | | | | | | Expr = 'x'
!PARSE-TREE: | | | | | | | Designator -> DataRef -> Name = 'x'
!PARSE-TREE: | | | | | | Expr = '1_4'
!PARSE-TREE: | | | | | | | LiteralConstant -> IntLiteralConstant = '1'
!PARSE-TREE: | | EndBlockStmt ->
!PARSE-TREE: EndSubroutineStmt ->