The C++ ABI at http://www.codesourcery.com/cxx-abi/abi.html defines: <ctor-dtor-name> ::= C1 # complete object constructor ::= C2 # base object constructor ::= C3 # complete object allocating constructor ::= D0 # deleting destructor ::= D1 # complete object destructor ::= D2 # base object destructor However, libdemange/c++filt no longer translate those specifiers. I think this is a regression from previous revisions of the library. They used to specify "in-charge" or other strings for the various ctor/dtor flavors. Example of raw constructor string: _ZN9DagSymbolC2Ev _ZN9DagSymbolC1Ev These both are demangled as: DagSymbol::DagSymbol()
Yes, the old demangler printed additional text in some cases when DMGL_VERBOSE was passed as a flag. c++filt passes that flag. The new demangler doesn't print that additional text. There are several FIXME comments in libiberty/cp-demangle.c which marks the places which could or should be changed.