<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/163338>163338</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
clang-format hangs with `Macros` entry that expands to `case`
</td>
</tr>
<tr>
<th>Labels</th>
<td>
clang-format
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
zmodem
</td>
</tr>
</table>
<pre>
Consider:
```
$ cat /tmp/a.cc
const char* fct(int wki) {
#define CASE(value, name) case value: return name
switch (wki) {
CASE(1, "1");
CASE(2, "2");
default:
return "123";
}
}
```
when formatting with a style that wishes to format `CASE` like a switch case:
```
$ build/bin/clang-format -style='{Macros: [CASE=case]}' /tmp/a.cc
```
clang-format hangs.
(At today's head, fa57074d146925a303263905af415cc78f58f353)
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJx0U8uOqzgQ_ZpiU0pkyoBhwYJ0ht2s5guMXQRP84iw6Uzm60cmjG4_dJEFEnV8fB6y9t7dZuYa8gvk10RvYVjW-t9psTwl3WKf9dsye2d5BdmA2FchjiUaoAyNDgjUhukO1OqzMSAas8w-oBn0CtRgbwJQ6eaAj3cHVCGoy75ZWu7dzPjW_PUHUPmhx42B3nDWE0ec0Z7x9Vc2uHLY1vk13JUg-ocLZkCg8gszIv7PmUY-IEqBCKgC-W1Ox5y-zy33ehvDyzbuzyEgspGM-AMM6hoFvd6f0xHNY-AZ-2WddAhuvuHDhQE1-vAcGcOgAz6cH9hjWA4YQiF2bYXA0b1zRL9cxjR-20K3udECtZ2bgVoz6vl2OghP-2kgr0AK1OVPbdbFx0Ahv-wnyetOnV-jBVI_2vzm6Qv5oOebPx-aqGwChsXqJ5DyOLC2Md5e50qozKZZUVGupZBUyErkus_S3BhV9nnZy1wCVYmtpa1kpROuU1WITAoqVTLUnbJZJYuUs9xUWhhrVZV2SjH3QmhhE1eToDwVaSZKyjJ1JmbdsZaF6PKCOINM8KTdeB7Hj-m8rLfEeb9xnRZSyjIZdcej3y8C0WeLsej8mqx13HfqtpuHTIzOB_-LKbgwcv0zmFffUIgj9EIgz2F9vqrnf-56tnv3UIi9g0Ik2zrWQwj3WBFQC9TeXBi27myWCaiNZx6f031d_uZ4udrdigdqDzcfNf0XAAD__0qgHrM">