Copyright (c) 1997 Sun Microsystems, Inc All Rights Reserved
The contents of this file are subject to the terms of the Common Development and Distribution License (the "License"). You may not use this file except in compliance with the License.
You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE or http://www.opensolaris.org/os/licensing. See the License for the specific language governing permissions and limitations under the License.
When distributing Covered Code, include this CDDL HEADER in each file and include the License file at usr/src/OPENSOLARIS.LICENSE. If applicable, add the following below this CDDL HEADER, with the fields enclosed by brackets "[]" replaced with your own identifying information: Portions Copyright [yyyy] [name of copyright owner]
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.
The cplus_demangle() function returns the following values:
0
The symbol argument is a valid mangled name and prototype contains a (partial) prototype for the symbol.
DEMANGLE_ENAME
The symbol argument is not a valid mangled name and the content of prototype is a copy of the symbol.
DEMANGLE_ESPACE
The prototype output buffer is too small to contain the prototype (or the symbol), and the content of prototype is undefined.