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

    <tr>
        <th>Summary</th>
        <td>
            [clang-format] Mis-alignment when using `Macros`
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            clang-format
      </td>
    </tr>

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

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

<pre>
    Consider this code:
```c
FUNC(void, ADC_CODE) Adc_InitUnitHardware(const Adc_HwUnitType Unit, const Adc_HwUnitConfigType *pConfig)
{
  // blablabla
}
```
And this .clang-format
```
BreakBeforeBraces: Allman
ColumnLimit: 80
ConstructorInitializerIndentWidth : 4
ContinuationIndentWidth: 4
Cpp11BracedListStyle: false
Language: Cpp
LineEnding: LF
MaxEmptyLinesToKeep: 1
PointerAlignment: Right
SortIncludes: Never
Standard: c++11
Macros:
  - FUNC(rettype, memclass) = rettype
```
After applying clang-format, what is expected to get is:
```c
FUNC(void, ADC_CODE) Adc_InitUnitHardware(const Adc_HwUnitType Unit,
 const Adc_HwUnitConfigType *pConfig)
{
  // blablabla
}
```
However, what I really get is:
```
FUNC(void, ADC_CODE) Adc_InitUnitHardware(const Adc_HwUnitType Unit,
 const Adc_HwUnitConfigType *pConfig)
{
  // blablabla
}
```
It seems that clang-format converts `FUNC(void, ADC_CODE)` to `void` before it applies alignment, which results in the alignment issue.
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzUVV2vmzgQ_TXOi3UjYxICDzwQcqMb7W13tW21j5VjD-BdYyN7SJr99SsDuR9V-1ppJaTgOcfxnJkzRoSgWwtQku2ebA8rMWLnfGluV23V6uzUraydDVqBp9jpQKVTQNKKsANhFcnY_Mh5ffzysSY8vzitCK9pdai_1r8fHgkvaKXk15PV-MVqfBJeXYUHwnPpbMAJfLpG6PNtABpf4v7vwdrZRrcThfBqmJeEF0syu_38QinhR8KP9GzE_NwJh-_SnpeVVbO2tTTCtg-N873AH1L3HsQ_e2ich70XEgJJK1oZ0ws7E2pnxt4-615jhHJ2D9uAfpTofCyCFkb_C_5kFVj8SyvsaGRvXsio7ShQO_uG8pYxDEkyJaCedcBPeDOxKbQRJsBMeRa2HUU7hethWILawqNV2rYx_Hycox_Et8d-wFtEw2f3G8AQ4WRG_3DaIvjK6Nb2YCdZf-q2Wwr0yXk8WWlGNRfjI1zALxAKq4RXMSwJ3xO-T5L7kdK78OIjSh_o4h0PiLcBYvt76KURIUT7kPRA79APe9ggeCqGwdy0bem7RvKaXjuBVAcK3waQCIqioy3E0C_y8qLzFzn6yV2nNtyVn6gHYcztp5r__5JPSANAHyhGwW_7HzO4gMdAScZ-LpFkLLqCZGwCM0bP05xTjZOvNAQqXoZgqqyWHfUQRoOBakuxg1cG1SGMsF6pMlVFWogVlMmOb4okT5LtqisZ7FiRb7ZFniZFrnaskUlayLxJc9UotVnpkjO-YTkv2G67TbZrKfJz2qTnXSaF4k1KNgx6oc3amEu_dr5dTUeWCcu2LFsZcQYTpnud8_fzwONN78u47-E8toFsmNEBw-s_oUYzfRPebdwe6AcdHl41XjuwdAxx4kjGlqHO2Gr0puwQh8lpUxtbjd14XkvXE36Mxyw_D4N3f4NEwo9T9oHw4yLgUvL_AgAA___-tgdJ">