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

    <tr>
        <th>Summary</th>
        <td>
            [abi] mangled name for constrained template is not demangled by llvm-cxxfilt
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            clang,
            ABI
      </td>
    </tr>

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

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

<pre>
    Example:

```
template <typename U, typename T>
concept True = true;

template <typename K>
struct Foo {
  template <True<K> U>
  void method(U t);
};

void s() {
   Foo<int> k;
 k.method(1);
}
```

Clang generates mangled name `_ZN3FooIiE6methodITk4TrueIT_EiEEvS3_` for the template specialization `Foo<int>::method`. However this mangled name can not be demangled by the official tool `llvm-cxxfilt`. 

It looks like something wrong with the constrain `True` part.

PS. gcc trunk generates a different name `_ZN3FooIiE6methodIiEEvT_`, which can be demangled, but it doesn't contain the constraint.
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJx8VFtvqzgQ_jXmZXQQMQTiBx7aXLTRSquVTvqyL5UxA3hjbISHXvbXr-z2pLSqjhQ5WPZ8l5kPpPe6t4g1296z7SGRCw1urgd3RW2TxrWv9fFFjpNBlt-x7MCyX2uZvf_ilnCcjCQElu_pdUIrR4QHxvdw211Yfny7rJxVOBFc5iUUHIDmBVl-v8b_FvDPG4SneVEEJ-eAVe-FAOuiS8TchxJ4uNUBPDndwog0uJbx3QMQ4-KDuzp80RGve8Z3jIs1VaBm-V5bCgTXWxVc0xv45iv0d517W_dG2h56tDhLQg-jtL3BFqJtVmaP__yVn5w762P5Bn--XItg8Xx5POrj8eln_sjKDDo3Aw340Qk_odLS6P8kaWcD1Fp4GGp-9y64zFL4wz3jEwYM_UWEkhasI2gQWvx10rxGNtd1OrAAOWcChzFP4w_18tJpQxF37fVMYJy7ejD6iuBdoNe2h-fZhVXTEEGVs55mqaPoOM0yg0nOlK7B_v6ZQq9UiJC9rhooodVdhzNa-k0TQ-cuoXEhqc-DVkP0ufYYTpqFQBO0Dr1lvKKgjYKyTzopTdo6b0UuZIL1ptrkYiuKUiRDXZZcKImbTLRFK7oOeVaVKESTZ9t8p3aJrnnGi6zgxWaz3WQiVa1oeFcVSrSFrKqKFRmOUps0tDZ1c59o7xesd0JsisTIBo2PLzHnKmSJcc74nnF-d38Oz9tDMtdxLM3Se1ZkRnvyH2ikycSvgGw02x4-zz6k6mYT2490aR8z8SkQ69kny2zqgWjyIWn8xPip1zQsTarcyPgp3H3_-zHN7l9UxPgpOvOMn6K5_wMAAP__MzRwzA">