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() -- Summary: libdemangle no longer distinguishes constructor/destructor variants Product: gcc Version: 4.1.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: sanjay3000 at gmail dot com http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35201