. \"ident "@(#)c++env:man/tools/demangler/demangle.3 1.1" .TH DEMANGLE 3 "00/02/18 Sun WorkShop 6 Early Access Release" "Sun Microsystems" "MISC. REFERENCE MANUAL PAGES" .ds ]W .UC 4 .SH NAME demangle, cplus_demangle, cplus_demangle_noret \- decode a C++ encoded symbol name .SH SYNOPSIS .B cc [ .I flag ... ] .I file [ .I library ... ] .B -ldemangle .sp .B #include .br .BI "int cplus_demangle( const char *" symbol "," .BI "char *" interpretation ", size_t " size " );" .SH DESCRIPTION .BR cplus_demangle () interprets (demangles) an encoded C++ linker symbol name (mangled name). .PP .BR cplus_demangle_noret () does the same, except that return types for function symbols are not included in the interpretation. .PP Some C++ linker symbol names are not encoded. In these cases the return value is .IR DEMANGLE_ENAME . .PP The .I symbol string parameter points to the linker symbol name. .PP The .I interpretation parameter points to a user-specified output string buffer, of .I size bytes. .PP .BR cplus_demangle () and .BR cplus_demangle_noret () have the following return values: .IP 0 25 The .I symbol parameter is a valid encoded name and .I interpretation contains the decoded name. .IP DEMANGLE_ENAME 25 Either the .I symbol parameter is not an encoded name or the .I symbol parameter is an incorrectly encoded name. .sp The content of the .I interpretation buffer is a copy of the content of .IR symbol . .IP DEMANGLE_ESPACE 25 The .I interpretation output buffer is too small to contain the interpretation (either the decoded name or the linker symbol name). .sp The content of the .I interpretation buffer is undefined. .PP .BR cplus_demangle () and .BR cplus_demangle_noret () operate on names encoded by the Sun WorkShop C++ compiler versions 3.0.1, 4.0.1, 4.1, 4.2, and 5.0 and the Sun WorkShop 6 C++ compiler. .PP .BR cplus_demangle () and .BR cplus_demangle_noret () improve upon and replace .BR demangle (). .SH "SEE ALSO" .BR CC (1), .BR dem (1), .BR c++filt (1)