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