145 lines · plain
1! RUN: %flang_fc1 -fdebug-unparse-no-sema -fopenmp %s | FileCheck --ignore-case %s2! RUN: %flang_fc1 -fdebug-dump-parse-tree-no-sema -fopenmp %s | FileCheck --check-prefix="PARSE-TREE" %s3program main4!CHECK-LABEL: program main5 implicit none6 7 integer, parameter :: N = 2568 9 type data0110 integer :: a11 integer :: arr(N)12 end type13 14 real :: arrA(N), arrB(N)15 integer, target :: arrC(N)16 type(data01) :: data01_a 17 integer, allocatable :: alloc_arr(:)18 integer, pointer :: ptrArr(:) 19 20 arrA = 1.41421 arrB = 3.1422 arrC = -123 data01_a%a = -124 data01_arr = -125 allocate(alloc_arr(N))26 alloc_arr = -127 28 29!CHECK: !$omp target defaultmap(tofrom:scalar) 30 !$omp target defaultmap(tofrom:scalar) 31 do i = 1, N32 a = 3.1433 enddo34!CHECK: !$omp end target35 !$omp end target36 37!PARSE-TREE: OmpBeginDirective38!PARSE-TREE: OmpDirectiveName -> llvm::omp::Directive = target39!PARSE-TREE: OmpClauseList -> OmpClause -> Defaultmap -> OmpDefaultmapClause40!PARSE-TREE: ImplicitBehavior = Tofrom41!PARSE-TREE: Modifier -> OmpVariableCategory -> Value = Scalar42 43!CHECK: !$omp target defaultmap(alloc:scalar)44 !$omp target defaultmap(alloc:scalar)45 a = 4.5646!CHECK: !$omp end target47 !$omp end target48 49!PARSE-TREE: OmpBeginDirective50!PARSE-TREE: OmpDirectiveName -> llvm::omp::Directive = target51!PARSE-TREE: OmpClauseList -> OmpClause -> Defaultmap -> OmpDefaultmapClause52!PARSE-TREE: ImplicitBehavior = Alloc53!PARSE-TREE: Modifier -> OmpVariableCategory -> Value = Scalar54 55!CHECK: !$omp target defaultmap(none)56 !$omp target defaultmap(none)57 a = 6.7858!CHECK: !$omp end target59 !$omp end target60 61!PARSE-TREE: OmpBeginDirective62!PARSE-TREE: OmpDirectiveName -> llvm::omp::Directive = target63!PARSE-TREE: OmpClauseList -> OmpClause -> Defaultmap -> OmpDefaultmapClause64!PARSE-TREE: ImplicitBehavior = None65 66!CHECK: !$omp target defaultmap(none:scalar)67 !$omp target defaultmap(none:scalar)68 a = 4.7869!CHECK: !$omp end target 70 !$omp end target71 72!PARSE-TREE: OmpBeginDirective73!PARSE-TREE: OmpDirectiveName -> llvm::omp::Directive = target74!PARSE-TREE: OmpClauseList -> OmpClause -> Defaultmap -> OmpDefaultmapClause75!PARSE-TREE: ImplicitBehavior = None76!PARSE-TREE: Modifier -> OmpVariableCategory -> Value = Scalar77 78!CHECK: !$omp target defaultmap(to:scalar)79 !$omp target defaultmap(to:scalar)80 a = 2.3981!CHECK: !$omp end target82 !$omp end target83 84!PARSE-TREE: OmpBeginDirective85!PARSE-TREE: OmpDirectiveName -> llvm::omp::Directive = target86!PARSE-TREE: OmpClauseList -> OmpClause -> Defaultmap -> OmpDefaultmapClause87!PARSE-TREE: ImplicitBehavior = To88!PARSE-TREE: Modifier -> OmpVariableCategory -> Value = Scalar89 90!CHECK: !$omp target defaultmap(firstprivate:scalar)91 !$omp target defaultmap(firstprivate:scalar)92 a = 9.4593!CHECK: !$omp end target94 !$omp end target95 96!PARSE-TREE: OmpBeginDirective97!PARSE-TREE: OmpDirectiveName -> llvm::omp::Directive = target98!PARSE-TREE: OmpClauseList -> OmpClause -> Defaultmap -> OmpDefaultmapClause99!PARSE-TREE: ImplicitBehavior = Firstprivate100!PARSE-TREE: Modifier -> OmpVariableCategory -> Value = Scalar101 102!CHECK: !$omp target defaultmap(tofrom:aggregate)103 !$omp target defaultmap(tofrom:aggregate)104 arrC(1) = 10105 data01_a%a = 11106 data01_a%arr(1) = 100107 data01_a%arr(2) = 245108!CHECK: !$omp end target109 !$omp end target110 111!PARSE-TREE: OmpBeginDirective112!PARSE-TREE: OmpDirectiveName -> llvm::omp::Directive = target113!PARSE-TREE: OmpClauseList -> OmpClause -> Defaultmap -> OmpDefaultmapClause114!PARSE-TREE: ImplicitBehavior = Tofrom115!PARSE-TREE: Modifier -> OmpVariableCategory -> Value = Aggregate116 117!CHECK: !$omp target defaultmap(tofrom:allocatable) 118 !$omp target defaultmap(tofrom:allocatable)119 alloc_arr(23) = 234120!CHECK: !$omp end target121 !$omp end target122 123!PARSE-TREE: OmpBeginDirective124!PARSE-TREE: OmpDirectiveName -> llvm::omp::Directive = target125!PARSE-TREE: OmpClauseList -> OmpClause -> Defaultmap -> OmpDefaultmapClause126!PARSE-TREE: ImplicitBehavior = Tofrom127!PARSE-TREE: Modifier -> OmpVariableCategory -> Value = Allocatable128 129!CHECK: !$omp target defaultmap(default:pointer)130 !$omp target defaultmap(default:pointer)131 ptrArr=>arrC132 ptrArr(2) = 5133 prtArr(200) = 34134!CHECK: !$omp end target135 !$omp end target 136 137!PARSE-TREE: OmpBeginDirective138!PARSE-TREE: OmpDirectiveName -> llvm::omp::Directive = target139!PARSE-TREE: OmpClauseList -> OmpClause -> Defaultmap -> OmpDefaultmapClause140!PARSE-TREE: ImplicitBehavior = Default141!PARSE-TREE: Modifier -> OmpVariableCategory -> Value = Pointer142 143end program main144!CHECK-LABEL: end program main145