! RUN: bbc -emit-hlfir -fopenmp -o - %s | FileCheck %s
! RUN: %flang_fc1 -emit-hlfir -fopenmp -o - %s | FileCheck %s
program firstprivateallocatable
Integer, Allocatable :: a,u
a = 137
!$omp parallel firstprivate(a,u)
u = a**2
!$omp end parallel
end program
! CHECK-LABEL: func.func @_QQmain()
! [...]
! CHECK: omp.parallel {{.*}} {
! [...]
! CHECK: %[[VAL_50:.*]] = arith.constant 2 : i32
! CHECK: %[[VAL_51:.*]] = math.ipowi %{{.*}}, %[[VAL_50]] : i32
! this is what we are really checking: the hlfir.assign must have realloc so that
! u is allocated when the assignment occurs
! CHECK: hlfir.assign %[[VAL_51]] to %{{.*}}#0 realloc : i32, !fir.ref<!fir.box<!fir.heap<i32>>>
! [...]
! CHECK: omp.terminator
! CHECK: }