LLVM 22.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 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(), 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 136 of file MicrosoftDemangle.cpp.
References consumeFront(), llvm::ms_demangle::DynamicAtexitDestructor, llvm::ms_demangle::DynamicInitializer, llvm::ms_demangle::LocalStaticGuard, llvm::ms_demangle::LocalStaticThreadGuard, llvm::ms_demangle::LocalVftable, llvm::ms_demangle::None, llvm::ms_demangle::RttiBaseClassArray, llvm::ms_demangle::RttiBaseClassDescriptor, llvm::ms_demangle::RttiClassHierarchyDescriptor, llvm::ms_demangle::RttiCompleteObjLocator, llvm::ms_demangle::RttiTypeDescriptor, llvm::ms_demangle::StringLiteralSymbol, llvm::ms_demangle::Typeof, llvm::ms_demangle::UdtReturning, llvm::ms_demangle::Vbtable, llvm::ms_demangle::VcallThunk, and llvm::ms_demangle::Vftable.
Definition at line 1247 of file MicrosoftDemangle.cpp.
References I, llvm::Length, and llvm::ms_demangle::Result.
Referenced by guessCharByteSize().
Definition at line 1236 of file MicrosoftDemangle.cpp.
References llvm::Count, and llvm::Length.
Referenced by guessCharByteSize().
|
static |
Definition at line 1294 of file MicrosoftDemangle.cpp.
References assert(), llvm::CallingConv::C, I, llvm::Offset, and llvm::ms_demangle::Result.
|
static |
Definition at line 247 of file MicrosoftDemangle.cpp.
References consumeFront(), llvm::ms_demangle::None, llvm::ms_demangle::Reference, and llvm::ms_demangle::RValueReference.
|
static |
Definition at line 256 of file MicrosoftDemangle.cpp.
References consumeFront(), DEMANGLE_UNREACHABLE, F, llvm::ms_demangle::Pointer, llvm::ms_demangle::Q_Const, llvm::ms_demangle::Q_None, llvm::ms_demangle::Q_Volatile, llvm::ms_demangle::Reference, and llvm::ms_demangle::RValueReference.
|
static |
Definition at line 1260 of file MicrosoftDemangle.cpp.
References assert(), countEmbeddedNulls(), and countTrailingNullBytes().
|
static |
Definition at line 239 of file MicrosoftDemangle.cpp.
|
static |
Definition at line 222 of file MicrosoftDemangle.cpp.
|
static |
Definition at line 241 of file MicrosoftDemangle.cpp.
|
static |
Definition at line 224 of file MicrosoftDemangle.cpp.
Definition at line 1075 of file MicrosoftDemangle.cpp.
References llvm::CallingConv::C.
Referenced by rebasedHexDigitToNumber().
|
static |
Definition at line 211 of file MicrosoftDemangle.cpp.
|
static |
Definition at line 1608 of file MicrosoftDemangle.cpp.
References llvm::ms_demangle::ArenaAllocator::alloc(), llvm::ms_demangle::ArenaAllocator::allocArray(), llvm::Count, I, N, NodeList::N, and NodeList::Next.
|
static |
Definition at line 1188 of file MicrosoftDemangle.cpp.
References llvm::CallingConv::C, and outputHex().
|
static |
Definition at line 1162 of file MicrosoftDemangle.cpp.
References assert(), llvm::CallingConv::C, I, and writeHexDigit().
Referenced by outputEscapedChar().
Definition at line 1077 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.
|
static |
Definition at line 172 of file MicrosoftDemangle.cpp.
References consumeFront().
|
static |
Definition at line 356 of file MicrosoftDemangle.cpp.
References llvm::ms_demangle::ArenaAllocator::alloc().
Referenced by synthesizeQualifiedName().
|
static |
Definition at line 363 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, and llvm::ms_demangle::NodeArrayNode::Nodes.
Referenced by synthesizeQualifiedName(), and synthesizeVariable().
|
static |
Definition at line 373 of file MicrosoftDemangle.cpp.
References synthesizeNamedIdentifier(), and synthesizeQualifiedName().
|
static |
Definition at line 379 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 1157 of file MicrosoftDemangle.cpp.
References assert().
Referenced by outputHex().