<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/54629>54629</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
assert in `findInstantiationOf` with concepts & constrained partial specialization
</td>
</tr>
<tr>
<th>Labels</th>
<td>
c++20,
clang:frontend,
concepts,
crash
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
royjacobson
</td>
</tr>
</table>
<pre>
Tried to take a look at #53354, managed to hit a weird assertion:
```c++
template<typename T>
struct X {};
template <class T>
concept C = requires (T t)
{
requires sizeof(t) > 4;
};
template <class T>
struct A{};
template <class T>
requires C<T>
struct A<T> {};
int main() {
A<X<int>> a;
}
```
Godbolt: https://godbolt.org/z/W5qc184Yn
I tried to trigger this without the `sizeof` but didn't manage to.
With asserts disabled it seems to compile correctly.
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJyVU01zmzAQ_TXioqlHFl_mwCGx005OvWQm7VHAGiuRJSItzTi_visgNenkkhlArHbf09sPNa671A9eQ8fRcVTPwBU3zj1zhZzJNE_TPGNyz8_Kqn6OOmmkoFfQvuMqBPConWXpDRMHJt6_hZiflsnb-Ey7COfBKASW7vEygFVn4A8svZu9Af3YIv_FWXnLygNLb9eM71hO4NbQuStk62wLA_I9OQ_cw8uoPQTSv3vgyGS18JQLIb-GBP0G7kiBMYzQdzy7nvslDYv6my-LX6nZk_sTxnnz87Joi9QbbSmFKYNrjhH3i16KiJREoD6k9rFPa84frmucIdQNPyEOIfZWfqennx0b53uy3uh9zF_a7S77bdf4e47_JsrrvgfP8aQDf9V4ciOSQYUoxFL7QvCGNjvdURIlLpNG4M3M9kioZc4CRQXVGOKmGQwA5xAPad150AZo9R5aNJcFmXR12lVppRLUaKCeSbi28fSjtt29DagsahUn-OckJWrkyzzFCSqiQZ2gEtOpg6JhV4aHAVpa9duETEZv6v8qRTRjsyFlZBjz5335Nnj3RBrJ1CGMEOgnzwpZJae6Kbci77ZZtc13nToWgta8aNsqbXaqLCExqgETapbTjZLLxZKC_uMFjVtG2Z4kHL2zCLZbeZaEVjtehVM080OiaymkFKmspMxFJjbV7pjtBGxlWyghhWKZABoys4kpxO4nvp6yacY-kNPogOHqpDrr3gJMSolfjdR3X3t3eVKtawJVbEq-njL_C8GcWHk">