<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/62040>62040</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
[flang] Execution result error of assignment statement using vector subscript for mask-expr in WHERE construct
</td>
</tr>
<tr>
<th>Labels</th>
<td>
new issue
</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(633146093c4ea78dc8f56a27006fe4eed84be370)
```
If a vector subscript is used in mask-expr of `WHERE` construct, the execution result of the assignment statement is incorrect.
The following are the test program, results of flang-new, gfortran and ifort compilation and execution.
snf95_082_3.f90:
```fortran
program main
interface assignment(=)
elemental subroutine aaa(ifun,iii)
intent(inout) :: ifun
intent(in) :: iii
character iii
end subroutine aaa
end interface assignment(=)
integer arr1(10)
integer arr2(10)
arr1=(/1,12,3,14,5,16,7,18,9,20/)
arr2=1
do:where (arr1.eq.(/1,2,3,4,5,6,7,8,9,10/))
arr2=char(arr1)
else where do
arr2=ifunng(arr1)
end where do
write(6,*) "arr2 = ", arr2
do i=1,10
if (arr2(i).ne.i) write(6,*) "NG arr2(", i, ") = ", arr2(i)
end do
contains
elemental function ifunng(iii)
intent(in) :: iii
ifunng=iii-10
end function ifunng
end program main
elemental subroutine aaa(ifun,iii)
intent(inout) :: ifun
intent(in) :: iii
character iii
ifun=ichar(iii)
end subroutine aaa
```
```
$ flang-new -flang-experimental-exec snf95_082_3.f90; ./a.out
arr2 = -9 2 3 1 5 6 7 8 9 10
NG arr2( 1 ) = -9
NG arr2( 4 ) = 1
$
```
```
$ gfortran snf95_082_3.f90; ./a.out
arr2 = 1 2 3 4 5 6 7 8 9 10
$
```
```
$ ifort snf95_082_3.f90; ./a.out
arr2 = 1 2 3 4 5 6
7 8 9 10
$
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJyUVkGT6jYM_jXmoiHj2ElIDhz2waPtpYdOpz2-MYkMfg02tZ2323_fkQkkC7vzdjMMCMv6pE-WHKkQzMEirln5hZXbhRri0fm1O1q31N8Xe9f9t2YVHz98y_jTX-iDcRacBt0re1hafAYmnyBfZTzjTNSVlHlR8Ua2BapV3bW1LislVpxXGgvEri72KFecieYCeefh8v2bBgU_sI3OQxj2ofXmHMEEGAJ2YCycVPhniS9nT6Gwiv_969c_vrKKQ-tsiH5oIxMbiEcEfMF2iBS0xzD0kQxo_cL-hDZCiCpikkwAY1vnPbYxmwf05xFBu753z8YeQHlMGBFDhLN3B69O5O_iIbxKD60ftPPRKwvKdmDoD7TudDa9SoHR6i3MV26D1U35jdfim8x0w5l8ukvaCHxZHSOBkzLjChgb0WvVzvkyUTO5vR0A0IN9SoDqKd3eDdFYBKUUE7XRg2ViY4yZTAg2ARnrhshEQ0VAdZA2T7Aw3znfZsyrXe1RedVG9DMN2u4-mNGENB8iRpsO6EF5nzNR5_wNHQCpxb06mRBYzcQuZ2KTCyY2koSCiU1JQsXEZkVCzcSmYWIjOBO7CSThym1-xewck0_PR_QITNTkIcN_s8nF1cPVwRX_Cp9f4e89UPpGxBkF7APCxV3nZukejeio7OENM9s9WD17E5G6m4kNE0_pJIUgIGBySzKVeQK-cQWTuKewJ-dGj9wp41RRmcWMft_x8fsv1-MZnRj6SnLz4PuCOCdypdA6G5Wx4Vpbt3LXg21TE97S8arQP1DBo6HcGmOWE1fyfg-eVKR47NRR97k2_Fgf_rQF3-q-C4LcmrG25n7f68w3r_L7RVHMXh3Li4gvZ_TmwnxJNyE8XHxfIGNipzKiOdV-qgBYNiBAQg4lVLCCGhq4ncNUP5DDtWaWzaO2uGkhv4X6OV63a_5T0U9PPpPFTJZQzP6VM7mayauZXM_kKRmfJnR5VX2GzfsUpuddMiPY-0SmTP2E0aJby66RjVrgOq_qPOei4mJxXJd7gZWSrdJ53larvKm6_b4rtZZSC61wYdaCC8mLnPOirAqRYdnIHGtd8Ro7iR0rOJ6U6bO-_3HKnD8sTAgDrivBC77o1R77kCYqIajCk5LuqHK78GuyWe6HQ2AF702IYUKJJvZpFEstwcotfL2fXNB7lwaeN2eXIdBo8jA0aedn05KxkEalaU5aDL5fH2M8B7oY6P2yO5h4HPZZ605M7CjA8Wd59u470mi1S7QCE7tE-_8AAAD__9QX1iw">