This is a llvm local version of __cxa_demangle. Other than the name and being in the llvm namespace it is identical.
Declared in <llvm/Demangle/Demangle.h>
enum Unnamed enum : int;
The mangled_name is demangled into buf and returned. If the buffer is not large enough, realloc is used to expand it.
The *status will be set to a value from the following enumeration
| Name | Description |
|---|---|
demangle_unknown_error | An unspecified demangling failure occurred. |
demangle_invalid_args | One or more demangle arguments were invalid. |
demangle_invalid_mangled_name | The input was not a valid mangled name. |
demangle_memory_alloc_failure | Memory allocation failed during demangling. |
demangle_success | Demangling completed successfully. |