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

    <tr>
        <th>Summary</th>
        <td>
            [OpenMP][flang] semantic checks for perfected nested loops in ordered or collapse clauses are not complete
        </td>
    </tr>

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

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

    <tr>
      <th>Reporter</th>
      <td>
          PeixinQiao
      </td>
    </tr>
</table>

<pre>
    ```
program m
  integer :: i, j, x
  !$omp do ordered(2)
  do i = 1, 10
    x = 1
    do j = 1, 10
      x = 2
    end do
  enddo
  !$omp end do
  !$omp do ordered(2)
  do i = 1, 10
    do j = 1, 10
      x = 2
    end do
    x = 1
  enddo
  !$omp end do
end
```
expected:
```
test.f90:3:21:

    3 |   !$omp do ordered(2)
      |                     1
Error: not enough DO loops for collapsed !$OMP DO at (1)
test.f90:16:9:

   16 |     x = 1
      |         1
Error: collapsed !$OMP DO loops not perfectly nested at (1)
```
This is also for collapse clause
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJyllM2OmzAQx5_GXEaNwEACBw7ppr2tkkp9AWMGcOpgZJsq-_YdAiRNsiuttMgh8_GH-c3YSWmqt4Ktw3mFOxZue2saK05wmlwA1Xls0AKLt7RAMf4Cx_F2XhSMR4wn5tRDZcDYCi1WjGec8XyRUELRG3YQjU9G4RIHOM_ha4Ckx_eli5jfQthV9MDik3dzblT3oi_RfgHuqdVP0JI9GQ-bhOcepSdu2pP38h6dX9V5SPmYPvTuq_BKEwPbvMCn5jFek_j5mtv5Ya2x4_nojKcWzNC0sNuDNqZ3UBsL0mgteofVXHD_ehgFwpOfRddi_5FHa7rlz-TR-grzdHjuOR_ZPmCYIEfwHm1Ng9Vv0BEH6R7xHub8u1UOaAntzF2XILUYHAZVEVd5nIvAK6-xYOn3fY_d64GlO7JrLbqGTHB4Ep1XEmSL8s80sJmFIGaWCVN1yybBcz0isXjpRNKGavQYDFYXrfe9GwfJf9JqlG-HckUKcrT-u3x9o5_-kSqSq5wb0JGRplmaBG0R1SLOKlltME_KTZZGYS6FTFKJUlYyqQMtStRubJBxPvUVb2tr6M-DzjDn1GWgCh5yHq7DOOJ8k2xWeb5JkmTN07LOZMprloQ0CKVXI87K2CawxYWsHBpHSa2cd7ekcE41HeJc9YDqrLpfSpi5nhh8a2xxiweXvopLU_8A6ZVfaA">