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

    <tr>
        <th>Summary</th>
        <td>
            [Flang] fails to diagnose invalid write statement in forall construct
        </td>
    </tr>

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

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

    <tr>
      <th>Reporter</th>
      <td>
          k-arrows
      </td>
    </tr>
</table>

<pre>
    Reproducer:
https://godbolt.org/z/chnoPWx4e
```f90
integer :: i
forall (i = 1:1)
  print *, i
end forall
end
```

Gfortran and Ifx can diagnose the reproducer as follows:

Gfortran:
```console
/app/example.f90:3:12:

    3 |   print *, i
      |            1
Error: Unexpected WRITE statement in FORALL block at (1)
```

Ifx:
```console
/app/example.f90(3): error #7086: This statement in a FORALL construct is invalid.
  print *, i
--^
compilation aborted for /app/example.f90 (code 1)
```
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJyUk8tu2zoQhp9mtBnYoIa6eaEFTxIdBAjQIkiRNSVRNhuaFEg6cfv0BWXHuTSbEgJEUZp_5vs1I0PQW6tUC-V_UF5n8hB3zrdPK-m9ewlZ78Zf7b2avRsPg_LABTCxi3EOaUsdULd1Y-9MXDu_Bep-A3XDzrrvj8dCARNQsdM1bRgwoW1UW-UxRXOBGpiYnJfGIFCjEfg15sBFDrQBJhBnr21EIAF0tXyt7IiniNPD-xRpz8T_k_PRS4vSjng7HXGQFkctt9YFhXGn0F94UAacnDHuJZzQ3sWfD17FB2eDMwsSdXKegTp1lPvZqHVC44Knuukig4jIEeor_IICl3V6eVk5MHHjvUsu4w-rjrMaohrx8f724QZDlFHtlY2oLXbf7sXdHfbGDU8ok3RztuyTGbfT8d84qOFJiAtUqRQE4jVrqnTwsNPhYxnytZAkGv1hiKgDavssjR7XX__A1QrKG2BicPtZGxm1syh75xPptCT8u6rEN7hR4WfIbGz5uOEbmak2r4tNU9VVU2e7VuY0bsaGV8XU12oayl7VNAyyHjkvJpKZbolRyaq8YEQ51euyyqumLKtpaKo6pxEKpvZSm7Uxz_vU3JkO4aDavCjyJs-M7JUJy9gQTUbaLXAxeWdjakqiNEy-TbGr_rANUDCjQwxvalFHs4xdtwSX1zhJbQJG99asZyfxxeuoPlp_npqL8dnBm_bTYOq4O_Trwe2BupT3fFvN3v1UQwTqFqQA1J2pnlv6EwAA__8bZziL">