https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=284953

--- Comment #9 from Mark Millard <marklmi26-f...@yahoo.com> ---
(In reply to Dimitry Andric from comment #2)

For the Itanium C++ ABI, at least . . .

What I find at https://itanium-cxx-abi.github.io/cxx-abi/abi.html#mangling in
5.1.2 is:

QUOTE
5.1.2 General Structure

Entities with C linkage and global namespace variables are not mangled. Mangled
names have the general structure:


    <mangled-name> ::= _Z <encoding>
                   ::= _Z <encoding> . <vendor-specific suffix>
    <encoding> ::= <function name> <bare-function-type>
               ::= <data name>
               ::= <special-name>
Thus, a name is mangled by prefixing "_Z" to an encoding of its name, and in
the case of functions its type (to support overloading). At this top level,
function types do not have the special delimiter characters required when
nested (see below). Furthermore, in the case of instances (or explicit
specializations) of function templates and member function templates (but not
ordinary member functions of class templates), the <bare-function-type>
encoding is that of the type expressed in the template (i.e., one likely
involving template parameters). The type is omitted for variables and static
data members.
. . .
END QUOTE

That is referenced by:
QUOTE
2.9.5 std::type_info::name()

The null-terminated byte string returned by this routine is the [mangled
name](https://itanium-cxx-abi.github.io/cxx-abi/abi.html#mangling) of the type.
END QUOTE

Sure looks to me that, if the Itanium C++ ABI is in use, the `_Z` should
already be there.

-- 
You are receiving this mail because:
You are the assignee for the bug.

Reply via email to