In mangle.cc there is:
/* Return an identifier for a construction vtable group. TYPE is
the most derived class in the hierarchy; BINFO is the base
subobject for which this construction vtable group will be used.
This mangling isn't part of the ABI specification; in the ABI
specification, the vtable group is dumped in the same COMDAT as the
main vtable, and is referenced only from that vtable, so it doesn't
need an external name. For binary formats without COMDAT sections,
though, we need external names for the vtable groups.
We use the production
<special-name> ::= CT <type> <offset number> _ <base type> */
tree
mangle_ctor_vtbl_for_type (const tree type, const tree binfo)
{
tree result;
start_mangling (type);
write_string ("_Z");
write_string ("TC");
So it seems there is an obvious typo in the comment which says "CT"
but the actual mangling is "TC".
If ok I would apply the following patch to trunk:
diff --git a/gcc/cp/mangle.cc b/gcc/cp/mangle.cc
index 8c67b67b197..d368359dccd 100644
--- a/gcc/cp/mangle.cc
+++ b/gcc/cp/mangle.cc
@@ -5131,7 +5131,7 @@ mangle_decomp (const tree decl, vec<tree> &decls)
We use the production
- <special-name> ::= CT <type> <offset number> _ <base type> */
+ <special-name> ::= TC <type> <offset number> _ <base type> */
tree
mangle_ctor_vtbl_for_type (const tree type, const tree binfo)
Johann