Skip to content

[Flang][OpenMP] Compilation error when a variable specified in a threadprivate directive is used in parallel default(firstprivate) construct #88680

Closed
@ohno-fj

Description

@ohno-fj
Version of flang-new : 19.0.0(4f19f15a601a5761b12c9c66d99d97dbc89ef90d)/AArch64

A compilation error occurs when a variable specified in a threadprivate directive is used in parallel default(firstprivate) construct.

Compilation ends normally in the following cases:

  • remove default(firstprivate) clause in parallel construct, or
  • remove threadprivate directive

The following are the test program, Flang-new, Gfortran and ifort compilation/execution result.

snf_omp_default_003_241_252.f90:

program main
  integer,save::iii
!$omp threadprivate(iii)
!$omp parallel default(firstprivate)
  iii=3
!$omp end parallel
end program main
$ flang-new -fopenmp snf_omp_default_003_241_252.f90
error: loc("/work/home/ohno/CT/test/fort/tp/reproducerJ/Pnavi35_01/snf_omp_default_003_241_252.f90":1:1): operand #0 does not dominate this use
error: verification of lowering to FIR failed
$
$ gfortran -fopenmp snf_omp_default_003_241_252.f90; ./a.out
$
$ ifort -qopenmp -diag-disable=10448 snf_omp_default_003_241_252.f90; ./a.out
$

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    Status

    Done

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions