On Wed, Jun 24, 2026 at 11:48:02AM +0200, Georg-Johann Lay wrote:
> 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>  */

Looks good, but it will need a ChangeLog entry.

Marek

Reply via email to