blob: ae37082b389b6259b6daab37e2d7207447c1b900 [file] [log] [blame] [edit]
! RUN: %flang_fc1 -emit-hlfir -fopenmp -o - %s 2>&1 | FileCheck %s
! CHECK-LABEL: omp.private
! CHECK-SAME: {type = firstprivate} @[[B_FIRSTPRIVATE:.*firstprivate.*]] : !fir.box<!fir.array<2xi32>>
! CHECK-LABEL: func @_QPtest_nested_task_firstprivate
! CHECK: omp.parallel
! CHECK: omp.task private(@[[B_FIRSTPRIVATE]] %{{.*}} -> %[[OUTER_TASK_B:.*]] :
! CHECK: %[[OUTER_TASK_B_DECL:.*]]:2 = hlfir.declare %[[OUTER_TASK_B]]
! CHECK: omp.task private(@[[B_FIRSTPRIVATE]] %[[OUTER_TASK_B_DECL]]#0 -> %[[INNER_TASK_B:.*]] :
! CHECK: hlfir.declare %[[INNER_TASK_B]]
! CHECK: omp.terminator
! CHECK: omp.terminator
! CHECK: omp.terminator
subroutine test_nested_task_firstprivate
integer :: b(2)
b = 1
!$omp parallel private(b)
b = 2
!$omp task
!$omp task firstprivate(b)
!$omp end task
!$omp end task
!$omp end parallel
end subroutine