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