xref: /illumos-gate/usr/src/man/man3ext/demangle.3ext (revision b6805bf78d2bbbeeaea8909a05623587b42d58b3)
te
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]
DEMANGLE 3EXT "Mar 11, 1997"
NAME
demangle, cplus_demangle - decode a C++ encoded symbol name
SYNOPSIS

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

#include <demangle.h>



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

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: 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.