clang 8.0.0

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:
[legend]
Collaboration diagram for clang::MicrosoftMangleContext:
[legend]

## Public Member Functions
| MicrosoftMangleContext (ASTContext &C, DiagnosticsEngine &D)
virtual void | mangleCXXVFTable (const CXXRecordDecl *Derived, ArrayRef< const CXXRecordDecl *> BasePath, raw_ostream &Out)=0
| Mangle vftable symbols. More...
virtual void | mangleCXXVBTable (const CXXRecordDecl *Derived, ArrayRef< const CXXRecordDecl *> BasePath, raw_ostream &Out)=0
| Mangle vbtable symbols. More...
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
| MangleContext (ASTContext &Context, DiagnosticsEngine &Diags, ManglerKind Kind)
virtual | ~MangleContext ()
ASTContext & | getASTContext () const
DiagnosticsEngine & | getDiags () const
virtual void | startNewFunction ()
unsigned | getBlockId (const BlockDecl *BD, bool Local)
uint64_t | getAnonymousStructId (const TagDecl *TD)
bool | shouldMangleDeclName (const NamedDecl *D)
virtual bool | shouldMangleCXXName (const NamedDecl *D)=0
virtual bool | shouldMangleStringLiteral (const StringLiteral *SL)=0
void | mangleName (const NamedDecl *D, raw_ostream &)
virtual void | mangleCXXName (const NamedDecl *D, 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 &)=0
virtual void | mangleCXXCtor (const CXXConstructorDecl *D, CXXCtorType Type, raw_ostream &)=0
virtual void | mangleCXXDtor (const CXXDestructorDecl *D, CXXDtorType Type, raw_ostream &)=0
virtual void | mangleStringLiteral (const StringLiteral *SL, raw_ostream &)=0
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 | mangleObjCMethodNameWithoutSize (const ObjCMethodDecl *MD, raw_ostream &)
void | mangleObjCMethodName (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 (const NamedDecl *EnclosingDecl, raw_ostream &Out)=0
virtual void | mangleSEHFinallyBlock (const NamedDecl *EnclosingDecl, raw_ostream &Out)=0
virtual void | mangleTypeName (QualType T, raw_ostream &)=0
| Generates a unique string for an externally visible type for use with TBAA or type uniquing. More...

## Static Public Member Functions
static bool | classof (const MangleContext *C)
static MicrosoftMangleContext * | create (ASTContext &Context, DiagnosticsEngine &Diags)

## Additional Inherited Members
Public Types inherited from clang::MangleContext
enum | ManglerKind { MK_Itanium, MK_Microsoft }

## Detailed Description

Definition at line 182 of file Mangle.h.

## Constructor & Destructor Documentation

## ◆ MicrosoftMangleContext()

clang::MicrosoftMangleContext::MicrosoftMangleContext | ( | ASTContext & | C,
|  | DiagnosticsEngine & | D
| ) |  |
| inline explicit

Definition at line 184 of file Mangle.h.

## Member Function Documentation

## ◆ classof()

static bool clang::MicrosoftMangleContext::classof | ( | const MangleContext * | C | ) |
| inline static

Definition at line 240 of file Mangle.h.

References clang::serialized_diags::create(), and clang::MangleContext::getKind().

## ◆ create()

MicrosoftMangleContext * MicrosoftMangleContext::create | ( | ASTContext & | Context,
|  | DiagnosticsEngine & | Diags
| ) |  |
| static

Definition at line 3486 of file MicrosoftMangle.cpp.

Referenced by clang::ASTContext::createMangleContext().

## ◆ 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.

Referenced by mangleVFTableName().

## ◆ 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:

- include/clang/AST/Mangle.h
- lib/AST/MicrosoftMangle.cpp