LLVM
15.0.0git
|
"Partial" demangler. More...
#include "llvm/Demangle/Demangle.h"
Public Member Functions | |
ItaniumPartialDemangler () | |
ItaniumPartialDemangler (ItaniumPartialDemangler &&Other) | |
ItaniumPartialDemangler & | operator= (ItaniumPartialDemangler &&Other) |
bool | partialDemangle (const char *MangledName) |
Demangle into an AST. More... | |
char * | finishDemangle (char *Buf, size_t *N) const |
Just print the entire mangled name into Buf. More... | |
char * | getFunctionBaseName (char *Buf, size_t *N) const |
Get the base name of a function. More... | |
char * | getFunctionDeclContextName (char *Buf, size_t *N) const |
Get the context name for a function. More... | |
char * | getFunctionName (char *Buf, size_t *N) const |
Get the entire name of this function. More... | |
char * | getFunctionParameters (char *Buf, size_t *N) const |
Get the parameters for this function. More... | |
char * | getFunctionReturnType (char *Buf, size_t *N) const |
bool | hasFunctionQualifiers () const |
If this function has any any cv or reference qualifiers. More... | |
bool | isCtorOrDtor () const |
If this symbol describes a constructor or destructor. More... | |
bool | isFunction () const |
If this symbol describes a function. More... | |
bool | isData () const |
If this symbol describes a variable. More... | |
bool | isSpecialName () const |
If this symbol is a <special-name>. More... | |
~ItaniumPartialDemangler () | |
"Partial" demangler.
This supports demangling a string into an AST (typically an intermediate stage in itaniumDemangle) and querying certain properties or partially printing the demangled name.
Definition at line 78 of file Demangle.h.
ItaniumPartialDemangler::ItaniumPartialDemangler | ( | ) |
Definition at line 400 of file ItaniumDemangle.cpp.
ItaniumPartialDemangler::ItaniumPartialDemangler | ( | ItaniumPartialDemangler && | Other | ) |
Definition at line 407 of file ItaniumDemangle.cpp.
References Other.
ItaniumPartialDemangler::~ItaniumPartialDemangler | ( | ) |
Definition at line 403 of file ItaniumDemangle.cpp.
char * ItaniumPartialDemangler::finishDemangle | ( | char * | Buf, |
size_t * | N | ||
) | const |
Just print the entire mangled name into Buf.
Buf and N behave like the second and third parameters to itaniumDemangle.
Definition at line 560 of file ItaniumDemangle.cpp.
References assert(), and printNode().
char * ItaniumPartialDemangler::getFunctionBaseName | ( | char * | Buf, |
size_t * | N | ||
) | const |
Get the base name of a function.
This doesn't include trailing template arguments, ie for "a::b<int>" this function returns "b".
Definition at line 440 of file ItaniumDemangle.cpp.
References isFunction().
char * ItaniumPartialDemangler::getFunctionDeclContextName | ( | char * | Buf, |
size_t * | N | ||
) | const |
Get the context name for a function.
For "a::b::c", this function returns "a::b".
Definition at line 469 of file ItaniumDemangle.cpp.
References isFunction().
char * ItaniumPartialDemangler::getFunctionName | ( | char * | Buf, |
size_t * | N | ||
) | const |
Get the entire name of this function.
Definition at line 515 of file ItaniumDemangle.cpp.
References getName(), isFunction(), N, and printNode().
char * ItaniumPartialDemangler::getFunctionParameters | ( | char * | Buf, |
size_t * | N | ||
) | const |
Get the parameters for this function.
Definition at line 522 of file ItaniumDemangle.cpp.
References initializeOutputBuffer(), isFunction(), N, llvm::X86II::OB, and NodeArray::printWithComma().
char * ItaniumPartialDemangler::getFunctionReturnType | ( | char * | Buf, |
size_t * | N | ||
) | const |
Definition at line 541 of file ItaniumDemangle.cpp.
References initializeOutputBuffer(), isFunction(), N, and llvm::X86II::OB.
bool ItaniumPartialDemangler::hasFunctionQualifiers | ( | ) | const |
If this function has any any cv or reference qualifiers.
These imply that the function is a non-static member function.
Definition at line 565 of file ItaniumDemangle.cpp.
References assert(), E, FrefQualNone, isFunction(), and QualNone.
bool ItaniumPartialDemangler::isCtorOrDtor | ( | ) | const |
If this symbol describes a constructor or destructor.
Definition at line 573 of file ItaniumDemangle.cpp.
bool ItaniumPartialDemangler::isData | ( | ) | const |
If this symbol describes a variable.
Definition at line 617 of file ItaniumDemangle.cpp.
References isFunction(), and isSpecialName().
bool ItaniumPartialDemangler::isFunction | ( | ) | const |
If this symbol describes a function.
Definition at line 605 of file ItaniumDemangle.cpp.
References assert().
Referenced by getFunctionBaseName(), getFunctionDeclContextName(), getFunctionName(), getFunctionParameters(), getFunctionReturnType(), hasFunctionQualifiers(), and isData().
bool ItaniumPartialDemangler::isSpecialName | ( | ) | const |
If this symbol is a <special-name>.
These are generally implicitly generated by the implementation, such as vtables and typeinfo names.
Definition at line 611 of file ItaniumDemangle.cpp.
References assert().
Referenced by isData().
ItaniumPartialDemangler & ItaniumPartialDemangler::operator= | ( | ItaniumPartialDemangler && | Other | ) |
Definition at line 414 of file ItaniumDemangle.cpp.
References Other, and std::swap().
bool ItaniumPartialDemangler::partialDemangle | ( | const char * | MangledName | ) |
Demangle into an AST.
Subsequent calls to the rest of the member functions implicitly operate on the AST this produces.
Definition at line 421 of file ItaniumDemangle.cpp.