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 <optional>
#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 43 of file MicrosoftDemangle.cpp.
References llvm::CallingConv::C.
Referenced by consumeFront(), consumeSpecialIntrinsicKind(), demangleFunctionRefQualifier(), demanglePointerCVQualifiers(), llvm::getArm64ECInsertionPointInMangledName(), isMemberPointer(), llvm::ms_demangle::Demangler::parse(), llvm::ms_demangle::Demangler::parseTagUniqueName(), and startsWithLocalScopePattern().
|
static |
Definition at line 50 of file MicrosoftDemangle.cpp.
References llvm::CallingConv::C.
|
static |
Definition at line 57 of file MicrosoftDemangle.cpp.
References A, and consumeFront().
|
static |
Definition at line 135 of file MicrosoftDemangle.cpp.
References consumeFront().
Definition at line 1246 of file MicrosoftDemangle.cpp.
References I, llvm::Length, and llvm::ms_demangle::Result.
Referenced by guessCharByteSize().
Definition at line 1235 of file MicrosoftDemangle.cpp.
References End, and llvm::Length.
Referenced by guessCharByteSize().
|
static |
Definition at line 1293 of file MicrosoftDemangle.cpp.
References assert(), llvm::CallingConv::C, I, llvm::Offset, and llvm::ms_demangle::Result.
|
static |
Definition at line 246 of file MicrosoftDemangle.cpp.
References consumeFront().
|
static |
Definition at line 255 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 1259 of file MicrosoftDemangle.cpp.
References assert(), countEmbeddedNulls(), and countTrailingNullBytes().
|
static |
Definition at line 238 of file MicrosoftDemangle.cpp.
|
static |
Definition at line 221 of file MicrosoftDemangle.cpp.
|
static |
Definition at line 240 of file MicrosoftDemangle.cpp.
Definition at line 69 of file MicrosoftDemangle.cpp.
References consumeFront(), DEMANGLE_UNREACHABLE, F, and startsWithDigit().
|
static |
Definition at line 223 of file MicrosoftDemangle.cpp.
Definition at line 1074 of file MicrosoftDemangle.cpp.
References llvm::CallingConv::C.
Referenced by rebasedHexDigitToNumber().
|
static |
Definition at line 210 of file MicrosoftDemangle.cpp.
|
static |
Definition at line 1602 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 1187 of file MicrosoftDemangle.cpp.
References llvm::CallingConv::C, and outputHex().
|
static |
Definition at line 1161 of file MicrosoftDemangle.cpp.
References assert(), llvm::CallingConv::C, I, and writeHexDigit().
Referenced by outputEscapedChar().
Definition at line 1076 of file MicrosoftDemangle.cpp.
References assert(), llvm::CallingConv::C, and isRebasedHexDigit().
|
static |
Definition at line 63 of file MicrosoftDemangle.cpp.
References A.
|
static |
Definition at line 34 of file MicrosoftDemangle.cpp.
Referenced by isMemberPointer().
|
static |
Definition at line 171 of file MicrosoftDemangle.cpp.
References consumeFront(), and End.
|
static |
Definition at line 355 of file MicrosoftDemangle.cpp.
References llvm::ms_demangle::ArenaAllocator::alloc(), and Name.
Referenced by synthesizeQualifiedName().
|
static |
Definition at line 362 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 372 of file MicrosoftDemangle.cpp.
References Name, synthesizeNamedIdentifier(), and synthesizeQualifiedName().
|
static |
Definition at line 378 of file MicrosoftDemangle.cpp.
References llvm::ms_demangle::ArenaAllocator::alloc(), llvm::ms_demangle::SymbolNode::Name, synthesizeQualifiedName(), and llvm::ms_demangle::VariableSymbolNode::Type.
Definition at line 1156 of file MicrosoftDemangle.cpp.
References assert().
Referenced by outputHex().