! This test checks lowering of OpenMP Threadprivate Directive. ! Test for common block, defined in one module, used in a subroutine of ! another module and privatized in a nested subroutine. !RUN: %flang_fc1 -emit-hlfir -fopenmp %s -o - | FileCheck %s !CHECK: fir.global common @cmn_(dense<0> : vector<4xi8>) {alignment = 4 : i64} : !fir.array<4xi8> module m0 common /cmn/ k1 !$omp threadprivate(/cmn/) end module m1 contains subroutine ss1 use m0 contains !CHECK-LABEL: func private @_QMm1Fss1Pss2 !CHECK: %[[CMN:.*]] = fir.address_of(@cmn_) : !fir.ref> !CHECK: omp.parallel !CHECK: %{{.*}} = omp.threadprivate %[[CMN]] : !fir.ref> -> !fir.ref> subroutine ss2 !$omp parallel copyin (k1) !$omp end parallel end subroutine ss2 end subroutine ss1 end end