<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/62521>62521</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
Constructor initializers are not indented correctly by clang-format when using WhitespaceSensitiveMacros
</td>
</tr>
<tr>
<th>Labels</th>
<td>
new issue
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
JohnC32
</td>
</tr>
</table>
<pre>
Given:
```cpp
Foo::Foo()
: setup()
, fString(BOOST_PP_STRINGIZE(VER))
, bar() {
other();
}
```
using `_clang-format`:
```yaml
---
BasedOnStyle: Google
IndentWidth: 4
BreakConstructorInitializers: BeforeComma
ConstructorInitializerAllOnOneLineOrOnePerLine: false
...
```
clang-format 16 yields the following
```cpp
Foo::Foo()
: setup()
, fString(BOOST_PP_STRINGIZE(VER))
, bar() {
other();
}
```
Notice the bar() is shifted too much to the right. If we replace BOOST_PP_STRINGIZE with say STR,
then indentation is correct. Note, that BOOST_PP_STRINGIZE is one of the WhitespaceSensitiveMacros
setup by the Google style.
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzMVE2PqzYU_TVmcxUEdoDMgsUk8zJK1U5Gk1Gf1M3IwAXcGjuyLxOlv74y8DTp--iqi4cQWPfL9xyfa-m96gxiybItyx4iOVJvXfmL7c1O8KiyzbV8VO9omLhnyQNLvnzzZH7r83m27K0NMWJa8A3jd7MdAICJe_BI4_kbB99BeyKnTMf4Zns8nl7fnp_fTq8vh6fHwx-fGN_8_uklpHydVUk3FwNWbBeXpR4XKxOLkRUPX3V8C2P0ynTA8uSt1tJ0q9a6QVII-gHcqxz0bFqtVvNiKz02R3Oiq8YA9NHaTuPsO5gGDX1WDfXBtV4yHMq_dtZ4cmNN1h2MIiW1-hudD2FbbK3DnR0GOSd8P_Ze66M5GvxVGTy6o8FndGEdSrRS-6WHOI7_g4Fb3JDmcFWoGw_UI7RWa3sJR_OzHPzH8_9J4MmSqnEC_FFQefC9agkbIGthGOseyE5BTnU9xXBo4YLg8KxljfAtALgo6sHLK5xeXxjfzZtRjwbUJApJypqwUW2dw5pieLKEARf1kr5XUXmwBsG2Ux-fe0Xoz7LGExqvSL3jb7J21s87TaxDdZ1iZ0mCDxJdxBA1pWjuxJ2MsEzzjUjTTBSbqC9FluSFSJJUSlHzLKta2XJs75qCp0WCeaRKnnCRZIlIecKzIhZJI0RV47rI121W5Gyd4CCVjrV-H2Lrukh5P2KZ84ynkZYVaj_dN5wbvMDkZJyH68eVIWdVjZ1n60QrT_6jCinSWN7MAqibwQHpEIylhV5svhCrr4GGf-n8Eo5hnv0f0hiNTpc90TmMJON7xvedon6s4toOjO9DW8tvdXb2T6yJ8f0ExjO-n8D-EwAA__-1dpeK">