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

    <tr>
        <th>Summary</th>
        <td>
            [Flang,OpenMP] preprocessor inside of OpenMP statements break parse
        </td>
    </tr>

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

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

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

<pre>
    This is extracted from GAMESS.  If one removes the preprocessor statements, it compiles fine.
```
flang-new -fdefault-integer-8 -fopenmp -c ibm.F90
error: Could not parse ibm.F90
./ibm.F90:8:8: error: expected OpenMP construct
  !$omp parallel do default(none) schedule(dynamic,1) &
         ^
./ibm.F90:8:1: in the context: specification construct
 !$omp parallel do default(none) schedule(dynamic,1) &
 ^
./ibm.F90:8:1: in the context: declaration construct
  !$omp parallel do default(none) schedule(dynamic,1) &
  ^
./ibm.F90:3:4: in the context: specification part
     integer,INTENT(IN)    :: this
 ^
./ibm.F90:1:4: in the context: SUBROUTINE subprogram
     SUBROUTINE SymUnPack1234(this,rdim,cdim)
     ^
```

```fortran
 SUBROUTINE SymUnPack1234(this,rdim,cdim)

   integer,INTENT(IN)    :: this
   INTEGER,INTENT(IN)        :: rdim,cdim
   REAL             :: x
   INTEGER                   :: i,j,ijsym,ij,ji,a,b,ab,ba

!$omp parallel do default(none) schedule(dynamic,1) &
#ifndef __ibmxl__
!$omp shared(this) &
#endif
!$omp shared(no,nu,noo) &
!$omp private(ijsym,i,j,ij,ji,a,b,ab,ba,x)

     do ijsym=1,noo
        x = 0.5
        i = FLOOR(x)
        j = ijsym - i*(i-1)/2
        if(j .EQ. 0)then
           i = i-1
           j = i
        end if
        ij = (i-1)*no+j
        ji = (j-1)*no+i
 end do

!$omp end parallel do

   END SUBROUTINE SymUnPack1234
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJysVl1vozgU_TXOy1UQmHzAAw8ZkowqzaSz_XiujH0JTsFGtumm_35lQjJJ2qx2VkUtVq7vuef42MZm1sqtQszI9Buh9FUapnjFlDCs0RVThFIyXY5Y5yptsh2WZcWaRisxKrR4z54qaUFawL0zjDsUUBrdwPfFz9XjYwBwV4JWCAYb_YYWXIXQGmyN5mitNmAdc9igcpbQHKQDrptW1mihlAoDEi5JuCCzcPjrf5Y1U9uxwr9hXAosWVe7sVQOt2jGCYxL3aJqWhhzkEUTrNMBhsZoQ-IF5LqrBSjtoGXG4mVWQOj6GIgXyfAPJzDuW-zHed-i-vkLuFbWmY67AxyA0IjQiW5aX53VNdYgNAw6CU2UVkhoCpZXKLoaCU3Eu2KN5ITmke8hdHYsNjxkurqlLvKipOqd5Vo53DsfsS1yWUrOnNTqg8iv1Pjn2gTympnPlX2tfTe0xSReTP6Lby0z7mwqhkVGaH63eVptnghN7jae0k9RvPB4V0n778ZEt8kfn7893D8_3W1WYLuiNXprWHPGf9b_-N48q1-Mv0Y0nhCa9Lw0N0I2hOa8b9Iz6EnM1V66CpbaOMPUAPx_fCfWP7MLwGd9Xz18mn-GOec8Qh9Wix9w_gy5--vi8PEZUiWh-Y7QXO7se9O3PuCjjNC88K1_FezCuK9brYTGslQCS3h5kUWzr19erjlsxQyKk_uXYFRCljcRShOaq86_tL6CnoZg5BtzXuPJg5Mnt7yg-f7jxIM34VAjXkYD58UXbQ8kXkIYTC_Dsg-vf9zfPxCa7C-XMADs-v6-Moz9jC282LE3ktA1vSpWEprsIFj9FUBIaOoqVFff1SOjL3HdM3BdxlEJOLp8KnHIPFOy8G5_211pl8e03UXakcGXFvrzxeX7zhbYld2rzfL2Vr3c3yORxSKNUzbCLJrTKE0ndB6NqmxeTHkSx0KweRJHCUU-KXhRztP5NGbhdDaSGQ3pJJzTWRRNJnQepMgKXs5YGvFpJGYFmYTYMFkHdf3WBNpsR9LaDrMoDOdxOKpZgbUdbhn9CU7ixeGkHq4YJvPIcdFtLZmEtbTO_q7lpKv7O8q6h9L8cPyS6fLyPiGVlQJBl8fz-fcFAwqD7PVw5o86U2eVc631u5-uCV1vpau6IuC6IXTteYdm3Bq9Q-78R9wPyBK6Hsb0ltF_AgAA__-vjpxs">