! RUN: %flang_fc1 -emit-hlfir -fopenmp -o - %s 2>&1 | FileCheck %s ! Check that variables are not privatized twice when TASKGROUP is used. !CHECK-LABEL: func.func @_QPsub() { !CHECK: omp.parallel private(@_QFsubEi_private_i32 %[[SUB_I:.*]]#0 -> %[[ARG:.*]] : !fir.ref) !CHECK: %[[ALLOCA:.*]] = fir.alloca i32 !CHECK: %[[PAR_I:.*]]:2 = hlfir.declare %[[ALLOCA]] {uniq_name = "_QFsubEi"} !CHECK: omp.master { !CHECK: omp.taskgroup { !CHECK-NEXT: omp.task private(@_QFsubEi_firstprivate_i32 %[[PAR_I]]#0 -> %[[TASK_I:.*]] : !fir.ref) { !CHECK: %[[TASK_I_DECL:.*]]:2 = hlfir.declare %[[TASK_I]] {uniq_name = "_QFsubEi"} !CHECK: } !CHECK: } !CHECK: } !CHECK: } subroutine sub() integer, dimension(10) :: a integer :: i !$omp parallel !$omp master do i=1,10 !$omp taskgroup !$omp task shared(a) a(i) = 1 !$omp end task !$omp end taskgroup end do !$omp end master !$omp end parallel end subroutine