38 lines · plain
1!RUN: %flang_fc1 -emit-hlfir -fopenmp %s -o - | FileCheck %s2 3 4!CHECK-LABEL: omp.private5!CHECK-SAME: {type = firstprivate} @[[PRIVATIZER:.*]] : !fir.box<!fir.heap<!fir.array<?xi32>>> init {6!CHECK: fir.if7!CHECK: } copy {8!CHECK: fir.if9!CHECK: } dealloc {10!CHECK: fir.if11!CHECK: }12 13!CHECK-LABEL: func @_QPomp_task_nested_allocatable_firstprivate14subroutine omp_task_nested_allocatable_firstprivate15 integer, allocatable :: a(:)16 17 allocate(a(7))18 a = 1019 20!CHECK: %[[A:.*]]:2 = hlfir.declare %{{.*}} {fortran_attrs = #fir.var_attrs<allocatable>,21!CHECK-SAME: uniq_name = "_QFomp_task_nested_allocatable_firstprivateEa"} :22!CHECK-SAME: (!fir.ref<!fir.box<!fir.heap<!fir.array<?xi32>>>>) ->23!CHECK-SAME: (!fir.ref<!fir.box<!fir.heap<!fir.array<?xi32>>>>, !fir.ref<!fir.box<!fir.heap<!fir.array<?xi32>>>>)24!CHECK: omp.task {25 !$omp task default(firstprivate)26!CHECK: omp.task private(@[[PRIVATIZER]] %[[A]]#0 -> %[[A_ARG:.*]] : !fir.ref<!fir.box<!fir.heap<!fir.array<?xi32>>>>) {27!CHECK: %[[PRIV_A:.*]]:2 = hlfir.declare %{{.*}} {fortran_attrs = #fir.var_attrs<allocatable>,28!CHECK-SAME: uniq_name = "_QFomp_task_nested_allocatable_firstprivateEa"} :29!CHECK-SAME: (!fir.ref<!fir.box<!fir.heap<!fir.array<?xi32>>>>) ->30!CHECK-SAME: (!fir.ref<!fir.box<!fir.heap<!fir.array<?xi32>>>>, !fir.ref<!fir.box<!fir.heap<!fir.array<?xi32>>>>)31 !$omp task default(firstprivate)32 a = 233!CHECK: }34 !$omp end task35!CHECK: }36 !$omp end task37end subroutine38