<table border="1" cellspacing="0" cellpadding="8">
    <tr>
        <th>Issue</th>
        <td>
            <a href=https://github.com/llvm/llvm-project/issues/91696>91696</a>
        </td>
    </tr>

    <tr>
        <th>Summary</th>
        <td>
            [clang][C++] Bad error recovery with lambdas returning unexpanded packs
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            c++,
            clang:frontend,
            crash-on-invalid
      </td>
    </tr>

    <tr>
      <th>Assignees</th>
      <td>
      </td>
    </tr>

    <tr>
      <th>Reporter</th>
      <td>
          mizvekov
      </td>
    </tr>
</table>

<pre>
    ```C++
template <class> requires ([]<class... Ts> -> Ts {}()) void f();
template void f<void>();
```

Crashes with:
```
test.cc:1:28: error: declaration type contains unexpanded parameter pack 'Ts'
    1 | template <class> requires ([]<class... Ts> -> Ts {}()) void f();
      | ^                  ~~
Assertion failed: (!isValueDependent() && "Expression evaluator can't be called on a dependent expression."), function EvaluateAsConstantExpr, file ExprConstant.cpp, line 15953.
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJy8U81y8ygQfJrRZcoqCfQTHXSQZfsJUntHMLbZYNAC8iZ7yLNvIdlJbfY7fxSFmOqmh0HTIgR9sUQ91HuoD5lY4tX5_qb_udObu2eTUx89NMU2R2D7NIsDFEOk22xEJAQ-SiNCAH5ET38t2lNAYC-b5BPN8xxfV84uLa8Bod1De0hE1gHr8O60wvMj5j-zPFA-pg3w4w_e1x0f4bqOXoQrBfxbxyvw4ZfMSCHmUgIfSuADewE-IHnvfNookkZ4EbWzGD9mQulsFNoGXCy9z8IqUjgLL24UyeMs5BsCa18DsHaTR0QsEdoRf8974TpSPqiP-L_x-bnRhhDIr2WdhTakUrGrUqnDH8IsdKCZrCIbN30E1gBrEBg7vs-eQkhn6S7MIqLzKIUF1kacCKUwhhQ6iwLVUwXp61QOjK0VjHherFwvcdyEaAijsyEKG1OWlaINYQqeQC7nOQFGW8Ky7mqe__ivmeq56ngnMurLtqx5yRvOsmtfNIzV1Xkqp5ei4E0n2rLsKi542ZadEudM96xgVVGXRVEVBWd521ZUdqwmJduqaBRUBd2ENrkx91vu_CXTISzUd2XTNZkRE5mwWokx-fBKKnZMsRH2Anw4e2cjWfUNpCbdObvT9i6MXoH6kPk-5dhNyyVAVRgdYvjOGnU0q2c31foA9f5pzvqAe6G2HkZP0t3Jf6wWQCNukxIBPcXFW20v_21j-RayxZv-GuMckl_YCdjpouN1mXLpbsBO6QaPz2727k-SEdhpfYQA7LS-w78BAAD__z2uR60">