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

    <tr>
        <th>Summary</th>
        <td>
            [Flang][OpenMP]Variable used in TASK construct is not implicit firstprivate
        </td>
    </tr>

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

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

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

<pre>
    ```
Version of flang-new : 17.0.0(359f170f5f712ee714193b46bad45a45656b2c59)
```

Variable used in `TASK` construct is not implicit `FIRSTPRIVATE`.

According to the following specification, the variable(a) in the test program is `FIRSTPRIVATE`.  
- OpenMP Application Programming Interface Version 4.5 : subclause 2.15.1.1

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

omp3_task_024_2.f90:
```fortran
program main
!$omp parallel
  call sub()
!$omp end parallel
  print *,"pass"
end program main

subroutine sub
  integer::a
  a=5
!$omp task
 write(6,*) "1  a = ", a
  if (a.eq.5) then
     a=a+10
  else
 print *,"NG-1:a=",a
  end if
  write(6,*) "2  a = ", a
!$omp end task
!$omp taskwait
  write(6,*) "3  a = ", a
  if (a.ne.5) then
     print *,"NG-2:a=",a
  end if
end subroutine sub
```

```
$ export OMP_NUM_THREADS=2; flang-new -fopenmp omp3_task_024_2.f90; ./a.out
 1  a =  5
 2  a =  15
 3  a =  15
 NG-2:a= 15
 1  a =  5
 2  a =  15
 3  a =  15
 NG-2:a= 15
 pass
$
```

```
$ export OMP_NUM_THREADS=2; gfortran -fopenmp omp3_task_024_2.f90; ./a.out
 1  a =            5
 2  a = 15
 3  a =            5
 1  a =            5
 2  a = 15
 3  a =            5
 pass
$
```

```
$ export OMP_NUM_THREADS=2; ifort -qopenmp omp3_task_024_2.f90; ./a.out
 1  a = 5
 2  a =           15
 3  a =            5
 1  a = 5
 2  a =           15
 3  a =            5
 pass
$
```

</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJy0Vk1v2zgQ_TX0hbDAD1G2Dj4odd0NFmmDJNtrQMlDm12KVEkq6f77BSXL-bDRYLupEMTS42jmvcchRRmC3lmAFRIXSKxnso9751dub91cfZvVbvvPChXk8EfWiFRfwQftLHYKKyPtbm7hESNeYbrISEYQW3JRKrogSqgFZQALmtOS13lRy20uZC4KUdSsESVi5ZjyVYVDHem1rA3gPsAWa4tRQe6q2z9RQXDjbIi-byLWAVsXsW47oxsdU9Dm8ub27vrm8mt19xEVJHuetGoa57fa7nB0OO4BK2eMe0xA6KDRSjcyamcR-zAMPxxIILaUiJWJRoIjhIg773ZetonCmaoYjxXn-EsH9uoaV12iOGTH1-Orbap7aSN4JRvAk7N5JgZDQ183RvYBMMuoyGhGn0u5e8FeejhhlkR4CL2JIc3WZpqthH9SzkcvLZZ2i3V6wI1rO21GggmFH9D06emFg67t-H2U4e97wvJ7lqmSIF69msdD8hGdfGqlPiCIUcRy13a4k14aA2bEMW6kMUk3Ysun7jhGg92evNF5bSNGrELsA2KskyEgxsbRIf60-vA_9LV3fdQWhnqHbNpG2IFPinglJ1QivhavySQPDgGPXsfUIsXAoUqNghijGEuM-DrdJ8uP6bTCqZ8y-J6JFBv3YKcxPFaTiF1QMoFgAhzuX8n9_GlOB6Z8PVY5FoFhXqen8wzZeYYvDX_S-VL7o9Tx5-n5WwZYOGvAqUb2tsZ0f25Oz-4tr0GWY_jRpUXw5er6_vNfV_d3f9x8rNa3iK8Z4hfPdrq5ch3YtsNnF8IFzhDbyMz1kzfHLsCHDsJH1zGdIH4KPVP9BL5rsmGpTPrf06zdtLf8uldP14nQMzpPo98v029zadx0599_0aLTBjhe_82h_5vobYNm2xXflryUM1jRoqR8mS9oMduvOCwFiIbzraqXdFGTpt5yRbmq6zKnUs30ihHGyZIsiCCCFtmiLJqiEQ0VikpVlign0EptMmMe2sz53UyH0MOqyPMlmRlZgwnD2Yax0edxB0GMDSsa8Up5ZyPYbRoQ65lfpUzzut8FlBOjQwxPuaOOZjgqDZ9SJNZIXIxfdyTWJ-eVdFj5yUlFaR9i5_WDjDDrvVntY-xC-vKwDWKbnY77vs4a1yK2SQwOP_POu2_QRMQ2g9SA2GZQ-28AAAD__wgmozY">