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

    <tr>
        <th>Summary</th>
        <td>
            [CIE] [Clang] When Macro expansion, the call chain is too long ,so that stack overflows。
        </td>
    </tr>

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

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

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

<pre>
    ```
struct S
{
  S ();
  S &operator<< (const char *);
  S (const S &);
};
 
#define N1(n) << #n
#define N2(n) N1(n)
#define N3(n) N2(n##0) N2(n##1) N2(n##2) N2(n##3) N2(n##4) \
              N2(n##5) N2(n##6) N2(n##7) N2(n##8) N2(n##9)
#define N4(n) N3(n##0) N3(n##1) N3(n##2) N3(n##3) N3(n##4) \
              N3(n##5) N3(n##6) N3(n##7) N3(n##8) N3(n##9)
#define N5(n) N4(n##0) N4(n##1) N4(n##2) N4(n##3) N4(n##4) \
              N4(n##5) N4(n##6) N4(n##7) N4(n##8) N4(n##9)
#define N6(n) N5(n##0) N5(n##1)
S s = S () N6(a) N6(b);
```

https://godbolt.org/z/TYT3Wo818
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJyM1EtP6zgUB_BPc7KxqJxz7DwWWUBLpFnMbEBCMzsncR5zjV3FLvfx6a-SlkDNlQCh1v33f5L8KtnK-2mwWlcg70AeEnUKo5ur_0ZtR2WHFFNKGtf9rCDjl39-AH7rw3xqA3s4f4L87rxg7IEBFoAl0FWUuaOeVXAz0B5ov5RaZ31g7ahmBnj7ceRSWKfffwv54a15iZA63U9Ws39SwMIClmy7EdkPJXwtbfUPFdoqlzIBEo-DNA4wDigOxPpwcv9Kff_3vifjwSwO8jgo4qD8k0xsMoplFMsollEsoy_KKJZRLKNYRrGMPpHJTSZimYhlIpaJWCa-KBOxTMQyEctELBOfyLJNJmOZvJadRx-YZ0CHbTeer6C2VXO1oa639vl1DOHogW4Ba8B6cF3jTNi5eQCsfwHWj_8-0pMr0iLpKupKKlWiqzTnxCnLszQZq7LrKcv7Pu0k9kUumyJVJYpSi45US2UyVciRUkTOUyFltmsl9rzlJHNRFk3XgOD6WU1mZ8zL83LvZPL-pKtclqVIjGq08evBhdgaZQdAXM6wuVr6N81p8CC4mXzwb1cIUzDrabf_6x7kgS2rdVYe2NOoLftbtbNj-sdRWT85C7hnYdSsVcYsh9Vk2eRZcI4ZZwcGuPeOhVEF5oNqvzH3oufeuO8e7gkKDgUmp9lU0c85hfHU7Fr3DFgvj3Z5uznO7n_dBsB6lXrAesX-DgAA__9eSWM5">