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