| //===--- 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); | 
 | } |