LLVM 20.0.0git
|
#include "llvm/Demangle/MicrosoftDemangle.h"
#include "llvm/Demangle/Demangle.h"
#include "llvm/Demangle/DemangleConfig.h"
#include "llvm/Demangle/MicrosoftDemangleNodes.h"
#include "llvm/Demangle/StringViewExtras.h"
#include "llvm/Demangle/Utility.h"
#include <array>
#include <cctype>
#include <cstdio>
#include <string_view>
#include <tuple>
Go to the source code of this file.
Classes | |
struct | NodeList |
Functions | |
static bool | startsWithDigit (std::string_view S) |
static bool | consumeFront (std::string_view &S, char C) |
static bool | consumeFront (std::string_view &S, std::string_view C) |
static bool | consumeFront (std::string_view &S, std::string_view PrefixA, std::string_view PrefixB, bool A) |
static bool | startsWith (std::string_view S, std::string_view PrefixA, std::string_view PrefixB, bool A) |
static bool | isMemberPointer (std::string_view MangledName, bool &Error) |
static SpecialIntrinsicKind | consumeSpecialIntrinsicKind (std::string_view &MangledName) |
static bool | startsWithLocalScopePattern (std::string_view S) |
static bool | isTagType (std::string_view S) |
static bool | isCustomType (std::string_view S) |
static bool | isPointerType (std::string_view S) |
static bool | isArrayType (std::string_view S) |
static bool | isFunctionType (std::string_view S) |
static FunctionRefQualifier | demangleFunctionRefQualifier (std::string_view &MangledName) |
static std::pair< Qualifiers, PointerAffinity > | demanglePointerCVQualifiers (std::string_view &MangledName) |
static NamedIdentifierNode * | synthesizeNamedIdentifier (ArenaAllocator &Arena, std::string_view Name) |
static QualifiedNameNode * | synthesizeQualifiedName (ArenaAllocator &Arena, IdentifierNode *Identifier) |
static QualifiedNameNode * | synthesizeQualifiedName (ArenaAllocator &Arena, std::string_view Name) |
static VariableSymbolNode * | synthesizeVariable (ArenaAllocator &Arena, TypeNode *Type, std::string_view VariableName) |
static bool | isRebasedHexDigit (char C) |
static uint8_t | rebasedHexDigitToNumber (char C) |
static void | writeHexDigit (char *Buffer, uint8_t Digit) |
static void | outputHex (OutputBuffer &OB, unsigned C) |
static void | outputEscapedChar (OutputBuffer &OB, unsigned C) |
static unsigned | countTrailingNullBytes (const uint8_t *StringBytes, int Length) |
static unsigned | countEmbeddedNulls (const uint8_t *StringBytes, unsigned Length) |
static unsigned | guessCharByteSize (const uint8_t *StringBytes, unsigned NumChars, uint64_t NumBytes) |
static unsigned | decodeMultiByteChar (const uint8_t *StringBytes, unsigned CharIndex, unsigned CharBytes) |
static NodeArrayNode * | nodeListToNodeArray (ArenaAllocator &Arena, NodeList *Head, size_t Count) |
Definition at line 42 of file MicrosoftDemangle.cpp.
References llvm::CallingConv::C.
Referenced by consumeFront(), consumeSpecialIntrinsicKind(), demangleFunctionRefQualifier(), demanglePointerCVQualifiers(), isMemberPointer(), llvm::ms_demangle::Demangler::parse(), llvm::ms_demangle::Demangler::parseTagUniqueName(), and startsWithLocalScopePattern().
|
static |
Definition at line 49 of file MicrosoftDemangle.cpp.
References llvm::CallingConv::C.
|
static |
Definition at line 56 of file MicrosoftDemangle.cpp.
References A, and consumeFront().
|
static |
Definition at line 134 of file MicrosoftDemangle.cpp.
References consumeFront().
Definition at line 1245 of file MicrosoftDemangle.cpp.
References I, llvm::Length, and llvm::ms_demangle::Result.
Referenced by guessCharByteSize().
Definition at line 1234 of file MicrosoftDemangle.cpp.
References End, and llvm::Length.
Referenced by guessCharByteSize().
|
static |
Definition at line 1292 of file MicrosoftDemangle.cpp.
References assert(), llvm::CallingConv::C, I, llvm::Offset, and llvm::ms_demangle::Result.
|
static |
Definition at line 245 of file MicrosoftDemangle.cpp.
References consumeFront().
|
static |
Definition at line 254 of file MicrosoftDemangle.cpp.
References consumeFront(), DEMANGLE_UNREACHABLE, F, llvm::ms_demangle::Q_Const, llvm::ms_demangle::Q_None, and llvm::ms_demangle::Q_Volatile.
|
static |
Definition at line 1258 of file MicrosoftDemangle.cpp.
References assert(), countEmbeddedNulls(), and countTrailingNullBytes().
|
static |
Definition at line 237 of file MicrosoftDemangle.cpp.
|
static |
Definition at line 220 of file MicrosoftDemangle.cpp.
|
static |
Definition at line 239 of file MicrosoftDemangle.cpp.
Definition at line 68 of file MicrosoftDemangle.cpp.
References consumeFront(), DEMANGLE_UNREACHABLE, F, and startsWithDigit().
|
static |
Definition at line 222 of file MicrosoftDemangle.cpp.
Definition at line 1073 of file MicrosoftDemangle.cpp.
References llvm::CallingConv::C.
Referenced by rebasedHexDigitToNumber().
|
static |
Definition at line 209 of file MicrosoftDemangle.cpp.
|
static |
Definition at line 1601 of file MicrosoftDemangle.cpp.
References llvm::ms_demangle::ArenaAllocator::alloc(), llvm::ms_demangle::ArenaAllocator::allocArray(), I, NodeList::N, N, and NodeList::Next.
|
static |
Definition at line 1186 of file MicrosoftDemangle.cpp.
References llvm::CallingConv::C, and outputHex().
|
static |
Definition at line 1160 of file MicrosoftDemangle.cpp.
References assert(), llvm::CallingConv::C, I, and writeHexDigit().
Referenced by outputEscapedChar().
|
static |
Definition at line 1075 of file MicrosoftDemangle.cpp.
References assert(), llvm::CallingConv::C, and isRebasedHexDigit().
|
static |
Definition at line 62 of file MicrosoftDemangle.cpp.
References A.
|
static |
Definition at line 33 of file MicrosoftDemangle.cpp.
Referenced by isMemberPointer().
|
static |
Definition at line 170 of file MicrosoftDemangle.cpp.
References consumeFront(), and End.
|
static |
Definition at line 354 of file MicrosoftDemangle.cpp.
References llvm::ms_demangle::ArenaAllocator::alloc(), and Name.
Referenced by synthesizeQualifiedName().
|
static |
Definition at line 361 of file MicrosoftDemangle.cpp.
References llvm::ms_demangle::ArenaAllocator::alloc(), llvm::ms_demangle::ArenaAllocator::allocArray(), llvm::ms_demangle::QualifiedNameNode::Components, llvm::ms_demangle::NodeArrayNode::Count, llvm::ms_demangle::Identifier, and llvm::ms_demangle::NodeArrayNode::Nodes.
Referenced by synthesizeQualifiedName(), and synthesizeVariable().
|
static |
Definition at line 371 of file MicrosoftDemangle.cpp.
References Name, synthesizeNamedIdentifier(), and synthesizeQualifiedName().
|
static |
Definition at line 377 of file MicrosoftDemangle.cpp.
References llvm::ms_demangle::ArenaAllocator::alloc(), llvm::ms_demangle::SymbolNode::Name, synthesizeQualifiedName(), and llvm::ms_demangle::VariableSymbolNode::Type.
|
static |
Definition at line 1155 of file MicrosoftDemangle.cpp.
References assert().
Referenced by outputHex().