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

    <tr>
        <th>Summary</th>
        <td>
            [clang] segfault infinite recursion template template parameter default argument
        </td>
    </tr>

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

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

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

<pre>
    Example: https://godbolt.org/z/5eKPfxK85
```C++
template<class T, template<class> class TT>     struct A;
template<class T, template<class> class TT = A> struct A {};
A<int> a;
```

This exhausts the stack before we hit the instantiation depth implementation limit:
```
<source>:2:46: warning: stack nearly exhausted; compilation time may suffer, and crashes due to stack overflow are likely [-Wstack-exhausted]
    2 | template<class T, template<class> class TT = A> struct A {};
      | ^
Program terminated with signal: SIGSEGV
Compiler returned: 139
```
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJykU02P4zYM_TX0hchAkewoOfjgfC2KvSywg_as2LStjiwFEp2Z2V9fyElniumtNQSYIKH3qPdIk5IdPFEN1R6qY2FmHkOsJ_vrRi_hVlxC916f3sx0dQSqwZH5mkA1IM8gz0PoLsHxU4gDyPMvkOeKvv_o375vKxANbMT9HEDu8xEN03R1hgnUoXUmJXwGecCvWVAnfJSfc5y_xHFuGRtQ_w0HQR3z7dMHEoLegz7eARtQB-s5180989F9jkXzPNqE9DaaOXFCHgkTm_YFL9SHSPhKOFpe8tYnNp6tYRs8dnTlEW3WbyLP96Szk-Ws4hcadUhhji2BOoFqJKim3GTVX0301g85vLN6MtG9_90PdaD22Ibpat2dgO1EOJl3THPfU8ziGN9hG00aKWE3E3J4YIUbxd6FVzSR0NkXcu8I1X71x1JefXJURxBN9kIi6H-r_b89WHxeoKE6gWh-xDBEMyFTnKw3TB2-Wh4xT6xxWYyfv337efr2O4jmsDyeIkbiOfqsSINrtfunwkVXq26ndqageq3LndjojdbFWFdqS7ty22-Urnqt2_Wub3up5XpXbTZ6qwpbSyErsRGlFEJX-knJUl_0di3NzhixbqEUNBnrnpy7TXkdCpvSTPW6lNtSFs5cyKVlx6S8zANICfIAUrbOLLb2MXgm330WslOr4FfW34yzS6E6FrHOBKvLPCQohbOJ0yclW3bLIt9RqyMmGnozO0bre-stE0Zq55iWEXkY9RlcTTQTMUXs6H7NxGHOU1vM0dVfVt_yOF-e2jCBPOcWHr_VNYY_qWWQ50WCBPL8UOFWy78CAAD__6ecZVs">