LLVM  9.0.0svn
Classes | Enumerations | Variables
llvm::ms_demangle Namespace Reference

Classes

class  ArenaAllocator
 
struct  ArrayTypeNode
 
struct  BackrefContext
 
struct  ConversionOperatorIdentifierNode
 
struct  CustomTypeNode
 
class  Demangler
 
struct  DynamicStructorIdentifierNode
 
struct  EncodedStringLiteralNode
 
struct  FunctionSignatureNode
 
struct  FunctionSymbolNode
 
struct  IdentifierNode
 
struct  IntegerLiteralNode
 
struct  IntrinsicFunctionIdentifierNode
 
struct  IntrinsicNode
 
struct  LiteralOperatorIdentifierNode
 
struct  LocalStaticGuardIdentifierNode
 
struct  LocalStaticGuardVariableNode
 
struct  NamedIdentifierNode
 
struct  Node
 
struct  NodeArrayNode
 
struct  PointerTypeNode
 
struct  PrimitiveTypeNode
 
struct  QualifiedNameNode
 
struct  RttiBaseClassDescriptorNode
 
struct  SpecialTableSymbolNode
 
struct  StructorIdentifierNode
 
struct  SymbolNode
 
struct  TagTypeNode
 
struct  TemplateParameterReferenceNode
 
struct  ThunkSignatureNode
 
struct  TypeNode
 
struct  VariableSymbolNode
 
struct  VcallThunkIdentifierNode
 

Enumerations

enum  QualifierMangleMode { QualifierMangleMode::Drop, QualifierMangleMode::Mangle, QualifierMangleMode::Result }
 
enum  NameBackrefBehavior : uint8_t { NBB_None = 0, NBB_Template = 1 << 0, NBB_Simple = 1 << 1 }
 
enum  FunctionIdentifierCodeGroup { FunctionIdentifierCodeGroup::Basic, FunctionIdentifierCodeGroup::Under, FunctionIdentifierCodeGroup::DoubleUnder }
 
enum  Qualifiers : uint8_t {
  Q_None = 0, Q_Const = 1 << 0, Q_Volatile = 1 << 1, Q_Far = 1 << 2,
  Q_Huge = 1 << 3, Q_Unaligned = 1 << 4, Q_Restrict = 1 << 5, Q_Pointer64 = 1 << 6
}
 
enum  StorageClass : uint8_t {
  StorageClass::None, StorageClass::PrivateStatic, StorageClass::ProtectedStatic, StorageClass::PublicStatic,
  StorageClass::Global, StorageClass::FunctionLocalStatic
}
 
enum  PointerAffinity { PointerAffinity::None, PointerAffinity::Pointer, PointerAffinity::Reference, PointerAffinity::RValueReference }
 
enum  FunctionRefQualifier { FunctionRefQualifier::None, FunctionRefQualifier::Reference, FunctionRefQualifier::RValueReference }
 
enum  CallingConv : uint8_t {
  CallingConv::None, CallingConv::Cdecl, CallingConv::Pascal, CallingConv::Thiscall,
  CallingConv::Stdcall, CallingConv::Fastcall, CallingConv::Clrcall, CallingConv::Eabi,
  CallingConv::Vectorcall, CallingConv::Regcall
}
 
enum  ReferenceKind : uint8_t { ReferenceKind::None, ReferenceKind::LValueRef, ReferenceKind::RValueRef }
 
enum  OutputFlags { OF_Default = 0, OF_NoCallingConvention = 1, OF_NoTagSpecifier = 2 }
 
enum  PrimitiveKind {
  PrimitiveKind::Void, PrimitiveKind::Bool, PrimitiveKind::Char, PrimitiveKind::Schar,
  PrimitiveKind::Uchar, PrimitiveKind::Char8, PrimitiveKind::Char16, PrimitiveKind::Char32,
  PrimitiveKind::Short, PrimitiveKind::Ushort, PrimitiveKind::Int, PrimitiveKind::Uint,
  PrimitiveKind::Long, PrimitiveKind::Ulong, PrimitiveKind::Int64, PrimitiveKind::Uint64,
  PrimitiveKind::Wchar, PrimitiveKind::Float, PrimitiveKind::Double, PrimitiveKind::Ldouble,
  PrimitiveKind::Nullptr
}
 
enum  CharKind { CharKind::Char, CharKind::Char16, CharKind::Char32, CharKind::Wchar }
 
enum  IntrinsicFunctionKind : uint8_t {
  IntrinsicFunctionKind::None, IntrinsicFunctionKind::New, IntrinsicFunctionKind::Delete, IntrinsicFunctionKind::Assign,
  IntrinsicFunctionKind::RightShift, IntrinsicFunctionKind::LeftShift, IntrinsicFunctionKind::LogicalNot, IntrinsicFunctionKind::Equals,
  IntrinsicFunctionKind::NotEquals, IntrinsicFunctionKind::ArraySubscript, IntrinsicFunctionKind::Pointer, IntrinsicFunctionKind::Dereference,
  IntrinsicFunctionKind::Increment, IntrinsicFunctionKind::Decrement, IntrinsicFunctionKind::Minus, IntrinsicFunctionKind::Plus,
  IntrinsicFunctionKind::BitwiseAnd, IntrinsicFunctionKind::MemberPointer, IntrinsicFunctionKind::Divide, IntrinsicFunctionKind::Modulus,
  IntrinsicFunctionKind::LessThan, IntrinsicFunctionKind::LessThanEqual, IntrinsicFunctionKind::GreaterThan, IntrinsicFunctionKind::GreaterThanEqual,
  IntrinsicFunctionKind::Comma, IntrinsicFunctionKind::Parens, IntrinsicFunctionKind::BitwiseNot, IntrinsicFunctionKind::BitwiseXor,
  IntrinsicFunctionKind::BitwiseOr, IntrinsicFunctionKind::LogicalAnd, IntrinsicFunctionKind::LogicalOr, IntrinsicFunctionKind::TimesEqual,
  IntrinsicFunctionKind::PlusEqual, IntrinsicFunctionKind::MinusEqual, IntrinsicFunctionKind::DivEqual, IntrinsicFunctionKind::ModEqual,
  IntrinsicFunctionKind::RshEqual, IntrinsicFunctionKind::LshEqual, IntrinsicFunctionKind::BitwiseAndEqual, IntrinsicFunctionKind::BitwiseOrEqual,
  IntrinsicFunctionKind::BitwiseXorEqual, IntrinsicFunctionKind::VbaseDtor, IntrinsicFunctionKind::VecDelDtor, IntrinsicFunctionKind::DefaultCtorClosure,
  IntrinsicFunctionKind::ScalarDelDtor, IntrinsicFunctionKind::VecCtorIter, IntrinsicFunctionKind::VecDtorIter, IntrinsicFunctionKind::VecVbaseCtorIter,
  IntrinsicFunctionKind::VdispMap, IntrinsicFunctionKind::EHVecCtorIter, IntrinsicFunctionKind::EHVecDtorIter, IntrinsicFunctionKind::EHVecVbaseCtorIter,
  IntrinsicFunctionKind::CopyCtorClosure, IntrinsicFunctionKind::LocalVftableCtorClosure, IntrinsicFunctionKind::ArrayNew, IntrinsicFunctionKind::ArrayDelete,
  IntrinsicFunctionKind::ManVectorCtorIter, IntrinsicFunctionKind::ManVectorDtorIter, IntrinsicFunctionKind::EHVectorCopyCtorIter, IntrinsicFunctionKind::EHVectorVbaseCopyCtorIter,
  IntrinsicFunctionKind::VectorCopyCtorIter, IntrinsicFunctionKind::VectorVbaseCopyCtorIter, IntrinsicFunctionKind::ManVectorVbaseCopyCtorIter, IntrinsicFunctionKind::CoAwait,
  IntrinsicFunctionKind::Spaceship, IntrinsicFunctionKind::MaxIntrinsic
}
 
enum  SpecialIntrinsicKind {
  SpecialIntrinsicKind::None, SpecialIntrinsicKind::Vftable, SpecialIntrinsicKind::Vbtable, SpecialIntrinsicKind::Typeof,
  SpecialIntrinsicKind::VcallThunk, SpecialIntrinsicKind::LocalStaticGuard, SpecialIntrinsicKind::StringLiteralSymbol, SpecialIntrinsicKind::UdtReturning,
  SpecialIntrinsicKind::Unknown, SpecialIntrinsicKind::DynamicInitializer, SpecialIntrinsicKind::DynamicAtexitDestructor, SpecialIntrinsicKind::RttiTypeDescriptor,
  SpecialIntrinsicKind::RttiBaseClassDescriptor, SpecialIntrinsicKind::RttiBaseClassArray, SpecialIntrinsicKind::RttiClassHierarchyDescriptor, SpecialIntrinsicKind::RttiCompleteObjLocator,
  SpecialIntrinsicKind::LocalVftable, SpecialIntrinsicKind::LocalStaticThreadGuard
}
 
enum  FuncClass : uint16_t {
  FC_None = 0, FC_Public = 1 << 0, FC_Protected = 1 << 1, FC_Private = 1 << 2,
  FC_Global = 1 << 3, FC_Static = 1 << 4, FC_Virtual = 1 << 5, FC_Far = 1 << 6,
  FC_ExternC = 1 << 7, FC_NoParameterList = 1 << 8, FC_VirtualThisAdjust = 1 << 9, FC_VirtualThisAdjustEx = 1 << 10,
  FC_StaticThisAdjust = 1 << 11
}
 
enum  TagKind { TagKind::Class, TagKind::Struct, TagKind::Union, TagKind::Enum }
 
enum  NodeKind {
  NodeKind::Unknown, NodeKind::Md5Symbol, NodeKind::PrimitiveType, NodeKind::FunctionSignature,
  NodeKind::Identifier, NodeKind::NamedIdentifier, NodeKind::VcallThunkIdentifier, NodeKind::LocalStaticGuardIdentifier,
  NodeKind::IntrinsicFunctionIdentifier, NodeKind::ConversionOperatorIdentifier, NodeKind::DynamicStructorIdentifier, NodeKind::StructorIdentifier,
  NodeKind::LiteralOperatorIdentifier, NodeKind::ThunkSignature, NodeKind::PointerType, NodeKind::TagType,
  NodeKind::ArrayType, NodeKind::Custom, NodeKind::IntrinsicType, NodeKind::NodeArray,
  NodeKind::QualifiedName, NodeKind::TemplateParameterReference, NodeKind::EncodedStringLiteral, NodeKind::IntegerLiteral,
  NodeKind::RttiBaseClassDescriptor, NodeKind::LocalStaticGuardVariable, NodeKind::FunctionSymbol, NodeKind::VariableSymbol,
  NodeKind::SpecialTableSymbol
}
 

Variables

constexpr size_t AllocUnit = 4096
 

Enumeration Type Documentation

◆ CallingConv

enum llvm::ms_demangle::CallingConv : uint8_t
strong
Enumerator
None 
Cdecl 
Pascal 
Thiscall 
Stdcall 
Fastcall 
Clrcall 
Eabi 
Vectorcall 
Regcall 

Definition at line 57 of file MicrosoftDemangleNodes.h.

◆ CharKind

Enumerator
Char 
Char16 
Char32 
Wchar 

Definition at line 103 of file MicrosoftDemangleNodes.h.

◆ FuncClass

Enumerator
FC_None 
FC_Public 
FC_Protected 
FC_Private 
FC_Global 
FC_Static 
FC_Virtual 
FC_Far 
FC_ExternC 
FC_NoParameterList 
FC_VirtualThisAdjust 
FC_VirtualThisAdjustEx 
FC_StaticThisAdjust 

Definition at line 201 of file MicrosoftDemangleNodes.h.

◆ FunctionIdentifierCodeGroup

Enumerator
Basic 
Under 
DoubleUnder 

Definition at line 135 of file MicrosoftDemangle.h.

◆ FunctionRefQualifier

Enumerator
None 
Reference 
RValueReference 

Definition at line 54 of file MicrosoftDemangleNodes.h.

◆ IntrinsicFunctionKind

Enumerator
None 
New 
Delete 
Assign 
RightShift 
LeftShift 
LogicalNot 
Equals 
NotEquals 
ArraySubscript 
Pointer 
Dereference 
Increment 
Decrement 
Minus 
Plus 
BitwiseAnd 
MemberPointer 
Divide 
Modulus 
LessThan 
LessThanEqual 
GreaterThan 
GreaterThanEqual 
Comma 
Parens 
BitwiseNot 
BitwiseXor 
BitwiseOr 
LogicalAnd 
LogicalOr 
TimesEqual 
PlusEqual 
MinusEqual 
DivEqual 
ModEqual 
RshEqual 
LshEqual 
BitwiseAndEqual 
BitwiseOrEqual 
BitwiseXorEqual 
VbaseDtor 
VecDelDtor 
DefaultCtorClosure 
ScalarDelDtor 
VecCtorIter 
VecDtorIter 
VecVbaseCtorIter 
VdispMap 
EHVecCtorIter 
EHVecDtorIter 
EHVecVbaseCtorIter 
CopyCtorClosure 
LocalVftableCtorClosure 
ArrayNew 
ArrayDelete 
ManVectorCtorIter 
ManVectorDtorIter 
EHVectorCopyCtorIter 
EHVectorVbaseCopyCtorIter 
VectorCopyCtorIter 
VectorVbaseCopyCtorIter 
ManVectorVbaseCopyCtorIter 
CoAwait 
Spaceship 
MaxIntrinsic 

Definition at line 110 of file MicrosoftDemangleNodes.h.

◆ NameBackrefBehavior

Enumerator
NBB_None 
NBB_Template 
NBB_Simple 

Definition at line 129 of file MicrosoftDemangle.h.

◆ NodeKind

Enumerator
Unknown 
Md5Symbol 
PrimitiveType 
FunctionSignature 
Identifier 
NamedIdentifier 
VcallThunkIdentifier 
LocalStaticGuardIdentifier 
IntrinsicFunctionIdentifier 
ConversionOperatorIdentifier 
DynamicStructorIdentifier 
StructorIdentifier 
LiteralOperatorIdentifier 
ThunkSignature 
PointerType 
TagType 
ArrayType 
Custom 
IntrinsicType 
NodeArray 
QualifiedName 
TemplateParameterReference 
EncodedStringLiteral 
IntegerLiteral 
RttiBaseClassDescriptor 
LocalStaticGuardVariable 
FunctionSymbol 
VariableSymbol 
SpecialTableSymbol 

Definition at line 219 of file MicrosoftDemangleNodes.h.

◆ OutputFlags

Enumerator
OF_Default 
OF_NoCallingConvention 
OF_NoTagSpecifier 

Definition at line 72 of file MicrosoftDemangleNodes.h.

◆ PointerAffinity

Enumerator
None 
Pointer 
Reference 
RValueReference 

Definition at line 53 of file MicrosoftDemangleNodes.h.

◆ PrimitiveKind

Enumerator
Void 
Bool 
Char 
Schar 
Uchar 
Char8 
Char16 
Char32 
Short 
Ushort 
Int 
Uint 
Long 
Ulong 
Int64 
Uint64 
Wchar 
Float 
Double 
Ldouble 
Nullptr 

Definition at line 79 of file MicrosoftDemangleNodes.h.

◆ QualifierMangleMode

Enumerator
Drop 
Mangle 
Result 

Definition at line 127 of file MicrosoftDemangle.h.

◆ Qualifiers

Enumerator
Q_None 
Q_Const 
Q_Volatile 
Q_Far 
Q_Huge 
Q_Unaligned 
Q_Restrict 
Q_Pointer64 

Definition at line 33 of file MicrosoftDemangleNodes.h.

◆ ReferenceKind

enum llvm::ms_demangle::ReferenceKind : uint8_t
strong
Enumerator
None 
LValueRef 
RValueRef 

Definition at line 70 of file MicrosoftDemangleNodes.h.

◆ SpecialIntrinsicKind

Enumerator
None 
Vftable 
Vbtable 
Typeof 
VcallThunk 
LocalStaticGuard 
StringLiteralSymbol 
UdtReturning 
Unknown 
DynamicInitializer 
DynamicAtexitDestructor 
RttiTypeDescriptor 
RttiBaseClassDescriptor 
RttiBaseClassArray 
RttiClassHierarchyDescriptor 
RttiCompleteObjLocator 
LocalVftable 
LocalStaticThreadGuard 

Definition at line 179 of file MicrosoftDemangleNodes.h.

◆ StorageClass

enum llvm::ms_demangle::StorageClass : uint8_t
strong
Enumerator
None 
PrivateStatic 
ProtectedStatic 
PublicStatic 
Global 
FunctionLocalStatic 

Definition at line 44 of file MicrosoftDemangleNodes.h.

◆ TagKind

Enumerator
Class 
Struct 
Union 
Enum 

Definition at line 217 of file MicrosoftDemangleNodes.h.

Variable Documentation

◆ AllocUnit

constexpr size_t llvm::ms_demangle::AllocUnit = 4096

Definition at line 26 of file MicrosoftDemangle.h.