<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">