!RUN: %flang_fc1 -emit-hlfir -fopenmp %s -o - | FileCheck %s !CHECK-LABEL: omp.private !CHECK-SAME: {type = firstprivate} @[[PRIVATIZER:.*]] : !fir.box>> init { !CHECK: fir.if !CHECK: } copy { !CHECK: fir.if !CHECK: } dealloc { !CHECK: fir.if !CHECK: } !CHECK-LABEL: func @_QPomp_task_nested_allocatable_firstprivate subroutine omp_task_nested_allocatable_firstprivate integer, allocatable :: a(:) allocate(a(7)) a = 10 !CHECK: %[[A:.*]]:2 = hlfir.declare %{{.*}} {fortran_attrs = #fir.var_attrs, !CHECK-SAME: uniq_name = "_QFomp_task_nested_allocatable_firstprivateEa"} : !CHECK-SAME: (!fir.ref>>>) -> !CHECK-SAME: (!fir.ref>>>, !fir.ref>>>) !CHECK: omp.task { !$omp task default(firstprivate) !CHECK: omp.task private(@[[PRIVATIZER]] %[[A]]#0 -> %[[A_ARG:.*]] : !fir.ref>>>) { !CHECK: %[[PRIV_A:.*]]:2 = hlfir.declare %{{.*}} {fortran_attrs = #fir.var_attrs, !CHECK-SAME: uniq_name = "_QFomp_task_nested_allocatable_firstprivateEa"} : !CHECK-SAME: (!fir.ref>>>) -> !CHECK-SAME: (!fir.ref>>>, !fir.ref>>>) !$omp task default(firstprivate) a = 2 !CHECK: } !$omp end task !CHECK: } !$omp end task end subroutine