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:
These both are demangled as:
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.