char* abi::__cxa_demangle ( const char * mangled_name,
char * output_buffer,
size_t * length,
int * status
)
New ABI-mandated entry point in the C++ runtime library for demangling.
char* abi::__cxa_demangle(const char* mangled_name, char* output_buffer, size_t* length, int* status)
Parameters:
-
mangled_name
A
NUL
-terminated character string containing the name to be demangled.output_buffer
A region of memory, allocated with
malloc
, of*length
bytes, into which the demangled name is stored. Ifoutput_buffer
is not long enough, it is expanded usingrealloc
.output_buffer
may instead beNULL
; in that case, the demangled name is placed in a region of memory allocated withmalloc
.length
If
length
is non-NULL
, the length of the buffer containing the demangled name is placed in*length
.status
*status
is set to one of the following values:0: The demangling operation succeeded.
-1: A memory allocation failure occurred.
-2:
mangled_name
is not a valid name under the C++ ABI mangling rules.-3: One of the arguments is invalid.
Returns:
A pointer to the start of the
NUL
-terminated demangled name, orNULL
if the demangling fails. The caller is responsible for deallocating this memory using free.
Parameters:
-
mangled_name A NUL-terminated character string containing the name to be demangled. output_buffer A region of memory, allocated with malloc, of *length bytes, into which the demangled name is stored. If output_buffer is not long enough, it is expanded using realloc. output_buffer may instead be NULL; in that case, the demangled name is placed in a region of memory allocated with malloc. length If length is non-NULL, the length of the buffer containing the demangled name is placed in *length. status *status is set to one of the following values: 0: The demangling operation succeeded.
-1: A memory allocation failiure occurred.
-2: mangled_name is not a valid name under the C++ ABI mangling rules.
-3: One of the arguments is invalid.