19 return std::strncmp(S,
"_Z", 2) == 0 || std::strncmp(S,
"___Z", 4) == 0;
22static bool isRustEncoding(
const char *S) {
return S[0] ==
'_' && S[1] ==
'R'; }
25 return MangledName.size() >= 2 && MangledName[0] ==
'_' &&
26 MangledName[1] ==
'D';
31 const char *S = MangledName.c_str();
49 char *Demangled =
nullptr;
static bool isDLangEncoding(const std::string &MangledName)
static bool isRustEncoding(const char *S)
static bool isItaniumEncoding(const char *S)
std::string demangle(const std::string &MangledName)
Attempt to demangle a string using different demangling schemes.
char * dlangDemangle(const char *MangledName)
char * microsoftDemangle(const char *mangled_name, size_t *n_read, int *status, MSDemangleFlags Flags=MSDF_None)
Demangles the Microsoft symbol pointed at by mangled_name and returns it.
char * rustDemangle(const char *MangledName)
bool nonMicrosoftDemangle(const char *MangledName, std::string &Result)
char * itaniumDemangle(const char *mangled_name)
Returns a non-NULL pointer to a NUL-terminated C style string that should be explicitly freed,...