<table border="1" cellspacing="0" cellpadding="8">
    <tr>
        <th>Issue</th>
        <td>
            <a href=https://github.com/llvm/llvm-project/issues/88680>88680</a>
        </td>
    </tr>

    <tr>
        <th>Summary</th>
        <td>
            [Flang][OpenMP] Compilation error when a variable specified in a threadprivate directive is used in parallel default(firstprivate) construct
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            openmp,
            flang
      </td>
    </tr>

    <tr>
      <th>Assignees</th>
      <td>
      </td>
    </tr>

    <tr>
      <th>Reporter</th>
      <td>
          ohno-fj
      </td>
    </tr>
</table>

<pre>
    ```
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:
```fortran
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
$
```

</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJysVU2P2zYQ_TXjC2GDGn1YPPjg2FDRAkWDIujVoMWhxZQSVZLyNv--oOTdrL1pNy0K7NrgmJx5fHxvRoZgLgPRDsoPUB5Xcoqd8zvXDW6tP6_OTn3ZQcVvf_wIfP8b-WDcwJxm2srhsh7oiUG-Z5nY8A0HrAudCZ2VsuKZLLdVds6wFW1VKSGU2KpzWwvSgitAAdjs977tqmJJ_lBr-dyz1vWjsTKmuuS988y17eQDe-poYJJdpTfybImFkVqjDSlmUhwqHjtPUo3eXGUkqDhTxlMbzZWYCWwKy1ao-Ci9tJYsU6TlZCNgrY0P8fkoinS6dUOIfmrj5jXCw2t8gwpscL6X1n5JuWNHTDtr3ZMZLqyVgQLkt4Nr5ql3V0oA_rmulVOgB6h3gAAPzPm3af-egNc3-HQHUnqaYUcKkY3eXbzsU_7m-cHT4gftfPRyYHJQzKTF63cCbOhPaqeZE09hsveUhUGfXD-ebrc-cZ6fsMhOWOJGC_7C0IsibtWW6A0T66W5RRgzQ6QLecBDkFdKCfK9MeaWBjPAwvUju-cD67QFxeOu71DDc1ljID_mjwloUC9Jlt_myBvc31T8YxCLV15bazfS0I_sPQqXqskuyZ7WtYA1IAI2T87_Dth0rifAJrkdsDl8AmzSiwM2iey0GgEbT6N3amrJ_wTYfBzk1eTliWeAzXsIECHfZ_M_igTCjeSTXABzzpSj5JTIlOvNIGPS3OLJB-hX8kabdvGX08y6J_JJp9Gx5sdfmZbGknrh6t8Re3mW8Xfzmn9gG8BGbtwU_2PRxS7rP24V18rIy1qZkJoY5MeMF0X9P-JYqV2uRC7kinbZNsuzMhcZX3U73cq6PtNWK1VxJbcFEUrR4llspSiVWJkdcix4kZW84CXfbqQ-UyVVXSmdYV2VUHDqpbEba6_9xvnLyoQw0a6uq5qvrDyTDfN0QVwuOyvwAIizotOqPK78Lh1fn6dLgIJbE2L4mjCaaOcJNbcfKI9QfvhlpOHnj1Ae2eHNbHhnKNw1gG-Pg_fd_7XvriZvd12M49zVsQFsLiZ203nTuh6wSde4fa1H7z5TatXNTFIAbGae_goAAP__CvRSoQ">