Go to the documentation of this file.
9 #ifndef LLVM_DEMANGLE_DEMANGLE_H
10 #define LLVM_DEMANGLE_DEMANGLE_H
57 size_t *n_buf,
int *
status,
71 std::string
demangle(
const std::string &MangledName);
~ItaniumPartialDemangler()
This is an optimization pass for GlobalISel generic memory operations.
@ demangle_invalid_mangled_name
ItaniumPartialDemangler()
char * getFunctionName(char *Buf, size_t *N) const
Get the entire name of this function.
bool isSpecialName() const
If this symbol is a <special-name>.
char * rustDemangle(const char *MangledName)
bool partialDemangle(const char *MangledName)
Demangle into an AST.
@ MSDF_NoCallingConvention
ItaniumPartialDemangler & operator=(ItaniumPartialDemangler &&Other)
std::string demangle(const std::string &MangledName)
Attempt to demangle a string using different demangling schemes.
bool isData() const
If this symbol describes a variable.
char * getFunctionParameters(char *Buf, size_t *N) const
Get the parameters for this function.
@ demangle_memory_alloc_failure
char * getFunctionDeclContextName(char *Buf, size_t *N) const
Get the context name for a function.
char * dlangDemangle(const char *MangledName)
bool hasFunctionQualifiers() const
If this function has any any cv or reference qualifiers.
char * getFunctionBaseName(char *Buf, size_t *N) const
Get the base name of a function.
char * microsoftDemangle(const char *mangled_name, size_t *n_read, char *buf, size_t *n_buf, int *status, MSDemangleFlags Flags=MSDF_None)
Demangles the Microsoft symbol pointed at by mangled_name and returns it.
char * getFunctionReturnType(char *Buf, size_t *N) const
std::error_code status(const Twine &path, file_status &result, bool follow=true)
Get file status as if by POSIX stat().
bool nonMicrosoftDemangle(const char *MangledName, std::string &Result)
char * finishDemangle(char *Buf, size_t *N) const
Just print the entire mangled name into Buf.
char * itaniumDemangle(const char *mangled_name, char *buf, size_t *n, int *status)
The same transformation can work with an even modulo with the addition of a and shrink the compare RHS by the same amount Unless the target supports that transformation probably isn t worthwhile The transformation can also easily be made to work with non zero equality for n
bool isCtorOrDtor() const
If this symbol describes a constructor or destructor.
bool isFunction() const
If this symbol describes a function.
Optional< std::vector< StOtherPiece > > Other