! Check that constructs with associate and variables that have implicitly
! determined DSAs are lowered properly.
! RUN: %flang_fc1 -emit-hlfir -fopenmp -o - %s 2>&1 | FileCheck %s
!CHECK-LABEL: func @_QPtest_parallel_assoc
!CHECK: omp.parallel {
!CHECK-NOT: hlfir.declare {{.*}} {uniq_name = "_QFtest_parallel_assocEa"}
!CHECK-NOT: hlfir.declare {{.*}} {uniq_name = "_QFtest_parallel_assocEb"}
!CHECK: omp.wsloop {
!CHECK: }
!CHECK: }
!CHECK: omp.parallel {{.*}} {
!CHECK-NOT: hlfir.declare {{.*}} {uniq_name = "_QFtest_parallel_assocEb"}
!CHECK: omp.wsloop {
!CHECK: }
!CHECK: }
subroutine test_parallel_assoc()
integer, parameter :: l = 3
integer :: a(l)
integer :: i
a = 1
!$omp parallel do
do i = 1,l
associate (b=>a)
b(i) = b(i) * 2
end associate
enddo
!$omp end parallel do
!$omp parallel do default(private)
do i = 1,l
associate (b=>a)
b(i) = b(i) * 2
end associate
enddo
!$omp end parallel do
end subroutine