<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/55851>55851</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
Stack overflow in clang-tidy
</td>
</tr>
<tr>
<th>Labels</th>
<td>
new issue
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
martong
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
abrachet
</td>
</tr>
</table>
<pre>
```
#import <Foundation/Foundation.h>
static NSDictionary<NSNumber*, NSNumber*>* A() {
return @{};
}
static NSNumber *B(NSDictionary* d) {
NSNumber* n = d[@""];
NSNumber* n2 = A()[n];
if (n2) {
} else {
if (n != nil) {}
}
return nil;
}
int main() {
B(@{});
}
```
Run `clang-tidy repro.mm -- -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX12.1.sdk`
The following reproducer will cause a stack overflow after infinite recursion. I have bisected to https://reviews.llvm.org/D124758.
I've attached the pre processed source as well
[repro.mii.txt](https://github.com/llvm/llvm-project/files/8830405/repro.mii.txt)
See also https://github.com/flutter/flutter/issues/105155
@martong, could you take a look please? This is currently blocking us.
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJyVVE1zmzAQ_TVw2TEjhInJgUMS1zOZTtNOnUOuQgijWpYYfTj1v-8KE3-lPXRGxmh5-_bp7UJj2kOd3JFpkWVCHhJayN1grIekeFqZoFvmpdEJXZ03WZ8UXyb4eHUe4xxe1kvJI4DZA2a_rF_CrhE2ocj6BJdbTKcPgOEqofeQLB6PPABW-GA1JHMSg4tlUkyP4v3fKh45Aekeke1KAVZob-gvNABWKZaIKB9jNUrjKs8Fb8B0RE-KMUdfY2WHEipNb-qhahDKicvYCYyXPJJqqT7SPg45Zt54EmH_cENqDzsm9Wc_oylnM1H5Z4br_v8MqOuOcMX0ZuZle8DygzXZbgezGcykOzhrDE4HXT0Mg5J8nAiH2zduWpGxYcD7J6O90D6Gl2IvlBmijasfivnO2F2Mf2P8-_otG6bQDXK9_HoG5TTLM9duURccVb72AjqjlHmXenNU2AaOc_AulQLOAlrOAIeEb8Hshe0QCazziJC6k1p6gVk8WBfHGZ6hZ3sBjXSCe9GCN9B7P7ikwIavcFmxl-LdZUrtd5mxm6g2p_NFWWWXfXhO6AJ5mMfCfeRBmYONP8OFcxhxJliOCAfvQqkpt3ycPJYy8799nCxaXQvYSN-HJuMmGhVVTH8zzPuFonHbSSWiZ1VVkDkpR9WXrNj8C6lrgSqUuz3oVZ1OBe_HdpzvpHNhLJOTMi_LS0qcsx2z3uhNfN25CaqFgwng2TZ2QxmzhUEJ5kRSrOC1lw5wYRMsjoo6QKMM38Z-BpdB2tZFe1_cs9RLr0S9vu6l1HAe0TRYVf-3X6eTlGVV5mlft11XlfeMU9pV86LockrmZduJBW26BS9EqliDL3MdvxiUaoEqIsXxu5HKmhJKyR0pyKKgJM8IuyNswSpRzUlbNTnaI_AlVachSm09SmrCxuFDJZ0_T1jKnJMbLcRU7uTsWIwF3xtbs8bGQfPpKKQeD_IHdmnAlQ">