clang 19.0.0git
Public Member Functions | Static Public Member Functions | List of all members
clang::MicrosoftMangleContext Class Referenceabstract

#include "clang/AST/Mangle.h"

Inheritance diagram for clang::MicrosoftMangleContext:
Inheritance graph
[legend]

Public Member Functions

 MicrosoftMangleContext (ASTContext &C, DiagnosticsEngine &D, bool IsAux=false)
 
virtual void mangleCXXVFTable (const CXXRecordDecl *Derived, ArrayRef< const CXXRecordDecl * > BasePath, raw_ostream &Out)=0
 Mangle vftable symbols.
 
virtual void mangleCXXVBTable (const CXXRecordDecl *Derived, ArrayRef< const CXXRecordDecl * > BasePath, raw_ostream &Out)=0
 Mangle vbtable symbols.
 
virtual void mangleThreadSafeStaticGuardVariable (const VarDecl *VD, unsigned GuardNum, raw_ostream &Out)=0
 
virtual void mangleVirtualMemPtrThunk (const CXXMethodDecl *MD, const MethodVFTableLocation &ML, raw_ostream &Out)=0
 
virtual void mangleCXXVirtualDisplacementMap (const CXXRecordDecl *SrcRD, const CXXRecordDecl *DstRD, raw_ostream &Out)=0
 
virtual void mangleCXXThrowInfo (QualType T, bool IsConst, bool IsVolatile, bool IsUnaligned, uint32_t NumEntries, raw_ostream &Out)=0
 
virtual void mangleCXXCatchableTypeArray (QualType T, uint32_t NumEntries, raw_ostream &Out)=0
 
virtual void mangleCXXCatchableType (QualType T, const CXXConstructorDecl *CD, CXXCtorType CT, uint32_t Size, uint32_t NVOffset, int32_t VBPtrOffset, uint32_t VBIndex, raw_ostream &Out)=0
 
virtual void mangleCXXRTTIBaseClassDescriptor (const CXXRecordDecl *Derived, uint32_t NVOffset, int32_t VBPtrOffset, uint32_t VBTableOffset, uint32_t Flags, raw_ostream &Out)=0
 
virtual void mangleCXXRTTIBaseClassArray (const CXXRecordDecl *Derived, raw_ostream &Out)=0
 
virtual void mangleCXXRTTIClassHierarchyDescriptor (const CXXRecordDecl *Derived, raw_ostream &Out)=0
 
virtual void mangleCXXRTTICompleteObjectLocator (const CXXRecordDecl *Derived, ArrayRef< const CXXRecordDecl * > BasePath, raw_ostream &Out)=0
 
- Public Member Functions inherited from clang::MangleContext
ManglerKind getKind () const
 
bool isAux () const
 
 MangleContext (ASTContext &Context, DiagnosticsEngine &Diags, ManglerKind Kind, bool IsAux=false)
 
virtual ~MangleContext ()
 
ASTContextgetASTContext () const
 
DiagnosticsEnginegetDiags () const
 
virtual void startNewFunction ()
 
unsigned getBlockId (const BlockDecl *BD, bool Local)
 
uint64_t getAnonymousStructId (const NamedDecl *D, const FunctionDecl *FD=nullptr)
 
uint64_t getAnonymousStructIdForDebugInfo (const NamedDecl *D)
 
virtual std::string getLambdaString (const CXXRecordDecl *Lambda)=0
 
bool shouldMangleDeclName (const NamedDecl *D)
 
virtual bool shouldMangleCXXName (const NamedDecl *D)=0
 
virtual bool shouldMangleStringLiteral (const StringLiteral *SL)=0
 
virtual bool isUniqueInternalLinkageDecl (const NamedDecl *ND)
 
virtual void needsUniqueInternalLinkageNames ()
 
void mangleName (GlobalDecl GD, raw_ostream &)
 
virtual void mangleCXXName (GlobalDecl GD, raw_ostream &)=0
 
virtual void mangleThunk (const CXXMethodDecl *MD, const ThunkInfo &Thunk, raw_ostream &)=0
 
virtual void mangleCXXDtorThunk (const CXXDestructorDecl *DD, CXXDtorType Type, const ThisAdjustment &ThisAdjustment, raw_ostream &)=0
 
virtual void mangleReferenceTemporary (const VarDecl *D, unsigned ManglingNumber, raw_ostream &)=0
 
virtual void mangleCXXRTTI (QualType T, raw_ostream &)=0
 
virtual void mangleCXXRTTIName (QualType T, raw_ostream &, bool NormalizeIntegers=false)=0
 
virtual void mangleStringLiteral (const StringLiteral *SL, raw_ostream &)=0
 
virtual void mangleMSGuidDecl (const MSGuidDecl *GD, raw_ostream &)
 
void mangleGlobalBlock (const BlockDecl *BD, const NamedDecl *ID, raw_ostream &Out)
 
void mangleCtorBlock (const CXXConstructorDecl *CD, CXXCtorType CT, const BlockDecl *BD, raw_ostream &Out)
 
void mangleDtorBlock (const CXXDestructorDecl *CD, CXXDtorType DT, const BlockDecl *BD, raw_ostream &Out)
 
void mangleBlock (const DeclContext *DC, const BlockDecl *BD, raw_ostream &Out)
 
void mangleObjCMethodName (const ObjCMethodDecl *MD, raw_ostream &OS, bool includePrefixByte=true, bool includeCategoryNamespace=true)
 
void mangleObjCMethodNameAsSourceName (const ObjCMethodDecl *MD, raw_ostream &)
 
virtual void mangleStaticGuardVariable (const VarDecl *D, raw_ostream &)=0
 
virtual void mangleDynamicInitializer (const VarDecl *D, raw_ostream &)=0
 
virtual void mangleDynamicAtExitDestructor (const VarDecl *D, raw_ostream &)=0
 
virtual void mangleSEHFilterExpression (GlobalDecl EnclosingDecl, raw_ostream &Out)=0
 
virtual void mangleSEHFinallyBlock (GlobalDecl EnclosingDecl, raw_ostream &Out)=0
 
virtual void mangleCanonicalTypeName (QualType T, raw_ostream &, bool NormalizeIntegers=false)=0
 Generates a unique string for an externally visible type for use with TBAA or type uniquing.
 

Static Public Member Functions

static bool classof (const MangleContext *C)
 
static MicrosoftMangleContextcreate (ASTContext &Context, DiagnosticsEngine &Diags, bool IsAux=false)
 

Additional Inherited Members

- Public Types inherited from clang::MangleContext
enum  ManglerKind { MK_Itanium , MK_Microsoft }
 

Detailed Description

Definition at line 231 of file Mangle.h.

Constructor & Destructor Documentation

◆ MicrosoftMangleContext()

clang::MicrosoftMangleContext::MicrosoftMangleContext ( ASTContext C,
DiagnosticsEngine D,
bool  IsAux = false 
)
inlineexplicit

Definition at line 233 of file Mangle.h.

Member Function Documentation

◆ classof()

static bool clang::MicrosoftMangleContext::classof ( const MangleContext C)
inlinestatic

Definition at line 290 of file Mangle.h.

References clang::C, and clang::MangleContext::MK_Microsoft.

◆ create()

MicrosoftMangleContext * MicrosoftMangleContext::create ( ASTContext Context,
DiagnosticsEngine Diags,
bool  IsAux = false 
)
static

◆ mangleCXXCatchableType()

virtual void clang::MicrosoftMangleContext::mangleCXXCatchableType ( QualType  T,
const CXXConstructorDecl CD,
CXXCtorType  CT,
uint32_t  Size,
uint32_t  NVOffset,
int32_t  VBPtrOffset,
uint32_t  VBIndex,
raw_ostream &  Out 
)
pure virtual

◆ mangleCXXCatchableTypeArray()

virtual void clang::MicrosoftMangleContext::mangleCXXCatchableTypeArray ( QualType  T,
uint32_t  NumEntries,
raw_ostream &  Out 
)
pure virtual

◆ mangleCXXRTTIBaseClassArray()

virtual void clang::MicrosoftMangleContext::mangleCXXRTTIBaseClassArray ( const CXXRecordDecl Derived,
raw_ostream &  Out 
)
pure virtual

◆ mangleCXXRTTIBaseClassDescriptor()

virtual void clang::MicrosoftMangleContext::mangleCXXRTTIBaseClassDescriptor ( const CXXRecordDecl Derived,
uint32_t  NVOffset,
int32_t  VBPtrOffset,
uint32_t  VBTableOffset,
uint32_t  Flags,
raw_ostream &  Out 
)
pure virtual

◆ mangleCXXRTTIClassHierarchyDescriptor()

virtual void clang::MicrosoftMangleContext::mangleCXXRTTIClassHierarchyDescriptor ( const CXXRecordDecl Derived,
raw_ostream &  Out 
)
pure virtual

◆ mangleCXXRTTICompleteObjectLocator()

virtual void clang::MicrosoftMangleContext::mangleCXXRTTICompleteObjectLocator ( const CXXRecordDecl Derived,
ArrayRef< const CXXRecordDecl * >  BasePath,
raw_ostream &  Out 
)
pure virtual

◆ mangleCXXThrowInfo()

virtual void clang::MicrosoftMangleContext::mangleCXXThrowInfo ( QualType  T,
bool  IsConst,
bool  IsVolatile,
bool  IsUnaligned,
uint32_t  NumEntries,
raw_ostream &  Out 
)
pure virtual

◆ mangleCXXVBTable()

virtual void clang::MicrosoftMangleContext::mangleCXXVBTable ( const CXXRecordDecl Derived,
ArrayRef< const CXXRecordDecl * >  BasePath,
raw_ostream &  Out 
)
pure virtual

Mangle vbtable symbols.

Only a subset of the bases along the path to the vbtable are included in the name. It's up to the caller to pick them correctly.

◆ mangleCXXVFTable()

virtual void clang::MicrosoftMangleContext::mangleCXXVFTable ( const CXXRecordDecl Derived,
ArrayRef< const CXXRecordDecl * >  BasePath,
raw_ostream &  Out 
)
pure virtual

Mangle vftable symbols.

Only a subset of the bases along the path to the vftable are included in the name. It's up to the caller to pick them correctly.

◆ mangleCXXVirtualDisplacementMap()

virtual void clang::MicrosoftMangleContext::mangleCXXVirtualDisplacementMap ( const CXXRecordDecl SrcRD,
const CXXRecordDecl DstRD,
raw_ostream &  Out 
)
pure virtual

◆ mangleThreadSafeStaticGuardVariable()

virtual void clang::MicrosoftMangleContext::mangleThreadSafeStaticGuardVariable ( const VarDecl VD,
unsigned  GuardNum,
raw_ostream &  Out 
)
pure virtual

◆ mangleVirtualMemPtrThunk()

virtual void clang::MicrosoftMangleContext::mangleVirtualMemPtrThunk ( const CXXMethodDecl MD,
const MethodVFTableLocation ML,
raw_ostream &  Out 
)
pure virtual

The documentation for this class was generated from the following files: