Go to main content

man pages section 3: Extended Library Functions, Volume 1

Exit Print View

Updated: July 2017



demangle, cplus_demangle - decode a C++ encoded symbol name


cc [ flag ... ] file[ library ... ]  –ldemangle

#include <demangle.h>

int cplus_demangle(const char *symbol, char *prototype, size_t size);


The cplus_demangle() function decodes (demangles) a C++ linker symbol name (mangled name) into a (partial) C++ prototype, if possible. C++ mangled names may not have enough information to form a complete prototype.

The symbol string argument points to the input mangled name.

The prototype argument points to a user-specified output string buffer, of size bytes.

The cplus_demangle() function operates on mangled names generated by SPARCompilers C++ 3.0.1, 4.0.1, 4.1 and 4.2.

The cplus_demangle() function improves and replaces the demangle() function.

Refer to the CC.1, dem.1, and c++filt.1 manual pages in the /opt/SUNWspro/man/man1 directory. These pages are only available with the SPROcc package.

Return Values

The cplus_demangle() function returns the following values:


The symbol argument is a valid mangled name and prototype contains a (partial) prototype for the symbol.


The symbol argument is not a valid mangled name and the content of prototype is a copy of the symbol.


The prototype output buffer is too small to contain the prototype (or the symbol), and the content of prototype is undefined.