<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/108015>108015</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
mangleCXXCtorVTable mangles an incorrect name
</td>
</tr>
<tr>
<th>Labels</th>
<td>
new issue
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
tcwzxx
</td>
</tr>
</table>
<pre>
```C++
namespace A {
class VBase {
public:
virtual ~VBase() {};
};
struct Wrap {};
template <typename T>
class Impl : public virtual VBase {
public:
};
} // namespace A
struct Inst : public A::Impl<A::Wrap> {};
void Test() { Inst a; }
```
The code above will generate a `CtorVTable` with the name `_ZTC4Inst0_N1A4ImplINS_4WrapEEE`. After demangling, the result is `construction vtable for A::Impl<Inst::Wrap>-in-Inst`. However, `Inst::Wrap` is incorrect.
https://github.com/llvm/llvm-project/blob/b0ffaa79050460d724eec1b12363c439b43d5ae5/clang/lib/AST/ItaniumMangle.cpp#L7327-L7338
because `mangleNameOrStandardSubstitution` never adds `RD` as a substitution
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJyUlMmO4zYQhp-GuhTa4KLFOujg9oI0MOkAaWMyyKVRoso2A1oSSMqeySHPHpDujjULEAwgUBbrd9VfXxFE782xJ2pY8ciKTYZTOA2uCfr69-fPWTt0XxpW8tuzZvIxPnzD-Oq29ngmP6ImWAGrvgppi97Dx0f0dA_BOLXWaKbeRAAX48KEFv5JSiaXTNZJX22Yek84_51WH9ykA_zhcPxOnNZA59FiIGBqHb6MFI3Cnqnt3NzTebTA1Lur_7z8j-nvq7FqA8DkjskdzJD8wPFT78O85CpmVavohKn121dsi6ntjzu7DKaDPflwZ3XLikw9QtTfxO9Tu33uTwR66AiwHS4EV2MtHKknFxkhxOmGwX3cY2uJlRyuJpwgnCi1E8Ovf-7XeazDX5_FKo-Gn55fXvPodbvdspIvYHUI5KCjM_ZHa_ojk-uUw5GfbADjYyI99DcWZujhEmJBOAzuGxKx0lcwHkz_kDZjoV-GK13Ixfys5N9oSx4rmV4PzpEOizm8Uwijj9o0q6MJp6ld6OHM5M7ay_vrYXTDX6QDk7vWDm188cMBsap5wfOSd5XMibRohVSl0rmq21x1BVLB5E5bjJ3vrIl_XL3smdw9BezNdP41cqGFHkcm1YdKyerhQ6XUcu4QWtI4-cQ8caRnPNNv7iVg36HrXqbWBxOmiC-22kcQgF2X4P6-iXvoAcHPhfOzOluzrlFdrWrMqBGVLOpKiKLKTg0WqA-qEkvSQleiQFUeyk6WQhyq7lBSZhrJZc5rwYWURVEtOOm65ioXSy2WVa5ZzumMxi4i0MXgjpnxfqJG8CUXRWaxJevTrSNlT1dIUSZlvIRck6bQTkfPcm6ND_6eJphgqbmhWX_6dD-2cNvzgP19-un8ZpOzzU-PPjnyTO7eLF8a-W8AAAD__xMRikA">