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

    <tr>
        <th>Summary</th>
        <td>
            Lambda instantiation error is silently skipped as substitution failure
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            new issue
      </td>
    </tr>

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

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

<pre>
    The following program
```
template <class T, auto F = [](T x) { *x; }>
void foo(T) {}

void foo(...) {}

int main() {
    foo(42);
}
```
is invalid and rejected by GCC and MSVC, but Clang accepts it, selecting `foo(...)` overload. Online demo: https://gcc.godbolt.org/z/6hTjzqsoc

Related discussion: https://stackoverflow.com/q/75889477/7325599

</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJxsUs1u2zwQfJrVZRFBIvV70MGxP32XFgVao3eKXMtMKNIhKefn6QvaLpKmBQRIGs7OcHZXhKBnSzRAfQ_1LhNrPDo_jKR8Njn1OuyPhAdnjHvWdsaTd7MXCxQ7KDbQFLfn8htpORkRCYFvpREh4B7YFsUaHY4IfIdXD2DdHl-A9QjtPQLbvAC_R2h3wP-7Kp2dVnhwLjFvvHR8Nf3MyPP83xxtIy5CW2Ddb8IFR8RbacWA9cBv-Hv5n7l0QG3PwmiFwir09EAyksLpFf_fbi_Y1x8_tynrtEbcGmFnFFLSKQbUMeGBDMmYGghN8fHa0BTozuSNEyrHb9ZoS6hoccA3eIzxFIBvgI3AxlnKfHZqcibmzs_AxjdgY3PcP7w9BSc_Jv9OaQ4KlQ5yDUE7-7dciEI-JuuDcc-5dAuw8QnY2NZd11dtmz45q-u-v2pmauCq573IaCibruBt2XZtdhxqXlE7HYqG0aHkvGtVKVTZCaoEp7aUmR5YwXhRFWXZ1g1rcyYVk1SXfXVQrFcSqoIWoU1uzHlJ2TIdwkpDU3ZdnxkxkQmX_WTM0jNeDoGxtK5-SDV30zoHqAqjQwzvKlFHQ8MXsUxKoLYhChu1iNpZJO-dRx0waEM2mlcMj_p0IoUiYFinEHVcL8yD0Gb1lK3eDJ8GouNxnW6tS6a3193Ju7QiwMbLVUMaU4ryKwAA__-75Aab">