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.