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

    <tr>
        <th>Summary</th>
        <td>
            [flang] preprocessor issue for macro consisting of `!` followed by &
        </td>
    </tr>

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

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

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

<pre>
    When we have a macro that consists of `!` and that macro is followed by `&` to indicate a line continuation, flang-new processes the line continuation first. Other compilers process the macro first and therefore ignore the line continuation. For example:

```
#define MAC !
MAC&
subroutine test
end subroutine test
```
processes on flang-new to:
```
 MACsubroutine test

      end subroutine test
```
but on gfortran to:
```
!&
subroutine test
end subroutine test
```

This causes quantum-espresso to fail to compile as it contains usage like this:
https://github.com/QEF/q-e/blob/de3035747f5d8f2ec9a67869827341ebb43f5b12/CPV/src/potentials.f90#L387
where DEV_ACC is defined as `!!!`
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJysVE9v_CYQ_TT4gnZlj_8ffNjuxqdGbaUoPVYYBpuWBQfwbvPtK2wnUdoo6uG3smCBmfdmmOEx79VoEDtS_kTKS8KWMFnXXdhNiSe3DK_JYMVr9_uEht6RTuyGlNEr487SMLFAuTVe-eCplZRUKYGMVCllRmzHm6XyVFqt7R0FHV43uyraBUuVEYqzEGG1MhgBgzILC8oaAmcqNTPjweCdzs5y9B49DRP-15hK5Xw40l_ChI5ye52VRuff3FanLZzVcI8RHUrrkKrRxOlL5CPtraP4N7vOGkl-IumFpG9jle7ftoRcoIwAj6czjbexbj-ezjHj9b9fBmeXEG0C-rBtohH0y4N_4X_cQUz4_WqC_Qjrs0OM42vg7Xj9_V_2YQmRd5TWBcfMN7Qx8x-S8DY-TcpTzpaY-MvCTFiuB_SzQ-9tbCLJlI7zXnXKPFVrbwamjKeLZ2Os61-xwMq_Bz2FMK8r6An0owrTMhy5vRLof3uIWy8HJNAP2g4EeoF5mpd1UctSNBKQt6yqm6ptoM6LDIehyGU5ZECgP__6TKD3jhPoZxvQBMW0P8o2JZD_nDf1xn-P7UcvD89_nM7n-Eq23hEx_v0xbV-VJqLLRZu3LMEuqyGt27qs22TqICt5VtaiyiTLC8yHQfCmBNnUQiAHSFQHKRRpnUFWZm3eHisueMGatuZcZmVbkyLFK1P6qPXterRuTJT3C3ZtU5VZotmA2q_6ALB2HAGIUuG6aH8YltGTItVRBD4Qggp6FZXNo7zQ2eHevNbRlYBK6_YXuauIMuNnHfmkGlAli9PdN0WL9Pt0mJ39E3kg0K9knkC_JXTr4J8AAAD__4dWjVU">