<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/151895>151895</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
[Flang][OpenMP] Incorrect execution result when assumed-shape array is allocated and defined in parallel construct with private clause
</td>
</tr>
<tr>
<th>Labels</th>
<td>
flang:openmp
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
ohno-fj
</td>
</tr>
</table>
<pre>
```
Version of flang : 22.0.0(9e5f9ff82f2f060aac73a965ab37fdbb6b53cfe0)/AArch64
```
In the attached program (`snggk070_2.f90`), `assumed-shape array (a) `is allocated and defined in `parallel construct` with `private clause`, but no value is assigned to array (a).
The result is correct if:
- do not specify the `-fopenmp` option
The following are the test program, Flang, Gfortran and ifx compilation/execution results.
snggk070_22.f90:
```fortran
subroutine sub(i,j)
character(i),pointer::a(:,:)
!$OMP PARALLEL PRIVATE(a)
allocate(a(i,j)); a="abc"
write(6,*) "a = ", a
deallocate(a)
!$OMP END PARALLEL
end subroutine sub
program main
call sub(3,4)
print *,'pass'
end program main
```
The following is with the `-fopenmp option`:
```
$ export OMP_NUM_THREADS=2; flang -fopenmp snggk070_22.f90; ./a.out
a =
a =
pass
$
```
The following is without the `-fopenmp option`:
```
$ flang snggk070_22.f90; ./a.out
a = abcabcabcabcabcabcabcabcabcabcabcabc
pass
$
```
```
$ export OMP_NUM_THREADS=2; gfortran -fopenmp snggk070_22.f90; ./a.out
a = abcabcabcabcabcabcabcabcabcabcabcabc
a = abcabcabcabcabcabcabcabcabcabcabcabc
pass
$
```
```
$ export OMP_NUM_THREADS=2; ifx -qopenmp snggk070_22.f90; ./a.out
a = abcabcabcabcabcabcabcabcabcabcabcabc
a = abcabcabcabcabcabcabcabcabcabcabcabc
pass
$
```
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJzMVV1vKycQ_TX4BdnCw37YD37Y2HEbKbmJ0vS-RrMs6yXFsAU2H_--Aq-T2rfqTZ5aaWUjYM6cOTPMoPdqZ6RckfyC5JsJDqGzbmU7Y6ft06S2zduKFGz8WPVdOq-sobalrUazo4RXFGDGZozAYinzdtm2C2ihZQVDFCXHZZFjzcu2qeuizrloJSOwJLCtKie6IiOs-rsHwqorQ0MnKYaAopMN7Z3dOdxTAgtSMG92uz9YyR5h1i6TUURbU1Iw9H7Yy2bqO-wlRefwLRohgWU8Vp6i1lZgkA1F09BGtsrIhioTj3t0qLXUVFjjgxtEIAWjLyp06dSpZwySCo2Dl8ntmtZDoMbSZ9SDpBH-IGdDgz11PztE9tBJ6qQfdIi3hXVOikBVS3g8ndLGUmMD9b0Uqn1LKpCCTVvbS7PvIx3bB2XNAW0EbK3W9kWZHUUnk02QPhxVizS3MVVx8UtrXXBoUvSqfaXC7nulMWHCVr5KMcT1SNKPtD8kP2ie2L4nbcSM94ba2SEoI6kfagILRWD9FPPDKio6dCiCdIf9mLPeKhM3eEV4hTG9vCKwTr_RhsCcQHZ7c0fvqvvq-vrymt7dX32vHi5HWSPue04Pex8-YUn4BUXCNwQAa0EA0v0Xp9LlIrqCKhUHAFLCN3ERdcJ0sZGn0KeULr9t3mkRVknT0LP4k3bH4t2jMglVoNajPJzAOjuG0TtlAk2E1gTKHr0nUI7IZyhnD-a0CpQ_FO1Z9RxLpzjPX4oqo_K1ty7Q25u7x2-_3zw-_Hp_WW1-I3wDUcbDa3_H-qEiLuiMwBZndggxmqTmySLFkzx9kr8dwldDOJD8FDeKtfjp9zPeX5Nwd3x8X1Px00z_q7hiH5n--X8OadKseLPkS5zI1bzMMyh5Xiwm3WouiqYtGp5ni1owIVA2c8YL5FCWbT5vJ2oFDHK2YBmDOWSLGS5LnmfISs5LkRUlyZjco9IzrZ_3M-t2E-X9IFfzfL5Y5hONtdQ-TVeAVJ6EV2M3B4gT162i5bQedp5kTCsf_AdWUEGn2Xzo4PmG5Be3vTQ3dyTf0CtznCDnjZu-dNLQfxqH_zYDfxyAh0ZyOvomg9OrLoTepz69JbDdqdAN9UzYPYFtJD_-TXtnn6QIBLZJFU9gOwrzvIK_AgAA__8C6JD1">