<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/120802>120802</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
Clang crashes when using lambda captures inside a trailing return decltype
</td>
</tr>
<tr>
<th>Labels</th>
<td>
clang,
clang:frontend
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
shafik
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
fahadnayyar
</td>
</tr>
</table>
<pre>
Clang crashed on this example:
```
template<typename T>
consteval auto matches(T t)
{
return [](auto u) -> decltype([u](){}()){}(t);
}
int main() {
matches(0);
return 0;
}
```
This issue was introduced from clang16.0.0 ( released on March 17, 2023) to clang 17.0.1 (released on September 9, 2023)
https://godbolt.org/z/q9v9q31f4
Gcc works fine for this example: https://godbolt.org/z/x8z41EKr4
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJyEU8FyozgQ_Rpx6QolWmDgwMF24j1s7WnzAw1qjHYE8kjCGc_Xb8l2EieXqVIVqKrf69evnygEc1yYO1HtBGKYaDQ_BKKonjNa4-R8N9JEeqHLhXzWO33p9paWIwyewsQa3AJxMgH4F80ny0JthbyejbwfuY08nyxFFmofLydeaGZ4FepFyO3glhD5TBZojQ5misPEQWDzClFgm4jqnZBbAADPcfULJKnVs8DmilgFtvAk1AtoHmyiF9iIarfeahJHvRP1-__D9cqvdtcWzzfRZokwk1luxfDZ-lOX_EA9SJJfeB4mF3L7mtwxIawMbxTALNE7vQ6sYfRuhiG5WWxymUsQ2IBnyxRuxv5DfpigqAXuASWqpCm6GwSKOpd5kTCPkH_5FHnu2UP7gBJyO8V4Cmk7eBB4ODrdOxtz548CD78FHn625_anKsbypvqvYYA3538EGM3CMDr_fc3wJ8Zfze-yePnbl5DpTulWtZRxV9SqrFWJCrOp6zdVMxJXqtJKlU0xjnJDPGhSjaqVqjPTocSyQJSIqi4wp5HVRhfVptfYE7WilDyTsbm15zk1z65WdwXKRmJmqWcb7um--pbCjfuPm9qO3i2RF31Pve8S01O_HoMopTUhhk_uaKLlLw8gwNvEC6zBLEewNPeaYKBTXD2nXQejGQiiJ2NTxT0v71HNVm-7bz6aOK19PrhZ4CE1vn-eTt79x0MUeLhOGAQe7kOeO_w_AAD__z7OJWk">