|  | //===--- Demangle.h ---------------------------------------------*- C++ -*-===// | 
|  | // | 
|  | //                     The LLVM Compiler Infrastructure | 
|  | // | 
|  | // This file is distributed under the University of Illinois Open Source | 
|  | // License. See LICENSE.TXT for details. | 
|  | // | 
|  | //===----------------------------------------------------------------------===// | 
|  |  | 
|  | #include <cstddef> | 
|  |  | 
|  | namespace llvm { | 
|  | /// This is a llvm local version of __cxa_demangle. Other than the name and | 
|  | /// being in the llvm namespace it is identical. | 
|  | /// | 
|  | /// 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 | 
|  | ///   unknown_error: -4 | 
|  | ///   invalid_args:  -3 | 
|  | ///   invalid_mangled_name: -2 | 
|  | ///   memory_alloc_failure: -1 | 
|  | ///   success: 0 | 
|  |  | 
|  | char *itaniumDemangle(const char *mangled_name, char *buf, size_t *n, | 
|  | int *status); | 
|  | } |