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