class MicrosoftMangleContext

Declaration

class MicrosoftMangleContext : public MangleContext { /* full declaration omitted */ };

Description

MangleContext - Context for tracking state which persists across multiple calls to the C++ name mangler.

Declared at: clang/include/clang/AST/Mangle.h:219

Inherits from: MangleContext

Member Variables

Method Overview

  • public MicrosoftMangleContext(clang::ASTContext & C, clang::DiagnosticsEngine & D, bool IsAux = false)
  • public static bool classof(const clang::MangleContext * C)
  • public static clang::MicrosoftMangleContext * create(clang::ASTContext & Context, clang::DiagnosticsEngine & Diags, bool IsAux = false)
  • public virtual void mangleCXXCatchableType(clang::QualType T, const clang::CXXConstructorDecl * CD, clang::CXXCtorType CT, uint32_t Size, uint32_t NVOffset, int32_t VBPtrOffset, uint32_t VBIndex, llvm::raw_ostream & Out)
  • public virtual void mangleCXXCatchableTypeArray(clang::QualType T, uint32_t NumEntries, llvm::raw_ostream & Out)
  • public virtual void mangleCXXRTTIBaseClassArray(const clang::CXXRecordDecl * Derived, llvm::raw_ostream & Out)
  • public virtual void mangleCXXRTTIBaseClassDescriptor(const clang::CXXRecordDecl * Derived, uint32_t NVOffset, int32_t VBPtrOffset, uint32_t VBTableOffset, uint32_t Flags, llvm::raw_ostream & Out)
  • public virtual void mangleCXXRTTIClassHierarchyDescriptor(const clang::CXXRecordDecl * Derived, llvm::raw_ostream & Out)
  • public virtual void mangleCXXRTTICompleteObjectLocator(const clang::CXXRecordDecl * Derived, ArrayRef<const clang::CXXRecordDecl *> BasePath, llvm::raw_ostream & Out)
  • public virtual void mangleCXXThrowInfo(clang::QualType T, bool IsConst, bool IsVolatile, bool IsUnaligned, uint32_t NumEntries, llvm::raw_ostream & Out)
  • public virtual void mangleCXXVBTable(const clang::CXXRecordDecl * Derived, ArrayRef<const clang::CXXRecordDecl *> BasePath, llvm::raw_ostream & Out)
  • public virtual void mangleCXXVFTable(const clang::CXXRecordDecl * Derived, ArrayRef<const clang::CXXRecordDecl *> BasePath, llvm::raw_ostream & Out)
  • public virtual void mangleCXXVirtualDisplacementMap(const clang::CXXRecordDecl * SrcRD, const clang::CXXRecordDecl * DstRD, llvm::raw_ostream & Out)
  • public virtual void mangleThreadSafeStaticGuardVariable(const clang::VarDecl * VD, unsigned int GuardNum, llvm::raw_ostream & Out)
  • public virtual void mangleVirtualMemPtrThunk(const clang::CXXMethodDecl * MD, const clang::MethodVFTableLocation & ML, llvm::raw_ostream & Out)

Inherited from MangleContext:

Methods

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

Declared at: clang/include/clang/AST/Mangle.h:221

Parameters

clang::ASTContext& C
clang::DiagnosticsEngine& D
bool IsAux = false

static bool classof(const clang::MangleContext* C)

Declared at: clang/include/clang/AST/Mangle.h:278

Parameters

const clang::MangleContext* C

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

Declared at: clang/include/clang/AST/Mangle.h:283

Parameters

clang::ASTContext& Context
clang::DiagnosticsEngine& Diags
bool IsAux = false

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

Declared at: clang/include/clang/AST/Mangle.h:258

Parameters

clang::QualType T
const clang::CXXConstructorDecl* CD
clang::CXXCtorType CT
uint32_t Size
uint32_t NVOffset
int32_t VBPtrOffset
uint32_t VBIndex
llvm::raw_ostream& Out

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

Declared at: clang/include/clang/AST/Mangle.h:255

Parameters

clang::QualType T
uint32_t NumEntries
llvm::raw_ostream& Out

virtual void mangleCXXRTTIBaseClassArray(
    const clang::CXXRecordDecl* Derived,
    llvm::raw_ostream& Out)

Declared at: clang/include/clang/AST/Mangle.h:267

Parameters

const clang::CXXRecordDecl* Derived
llvm::raw_ostream& Out

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

Declared at: clang/include/clang/AST/Mangle.h:263

Parameters

const clang::CXXRecordDecl* Derived
uint32_t NVOffset
int32_t VBPtrOffset
uint32_t VBTableOffset
uint32_t Flags
llvm::raw_ostream& Out

virtual void
mangleCXXRTTIClassHierarchyDescriptor(
    const clang::CXXRecordDecl* Derived,
    llvm::raw_ostream& Out)

Declared at: clang/include/clang/AST/Mangle.h:270

Parameters

const clang::CXXRecordDecl* Derived
llvm::raw_ostream& Out

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

Declared at: clang/include/clang/AST/Mangle.h:274

Parameters

const clang::CXXRecordDecl* Derived
ArrayRef<const clang::CXXRecordDecl*> BasePath
llvm::raw_ostream& Out

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

Declared at: clang/include/clang/AST/Mangle.h:251

Parameters

clang::QualType T
bool IsConst
bool IsVolatile
bool IsUnaligned
uint32_t NumEntries
llvm::raw_ostream& Out

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

Description

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.

Declared at: clang/include/clang/AST/Mangle.h:235

Parameters

const clang::CXXRecordDecl* Derived
ArrayRef<const clang::CXXRecordDecl*> BasePath
llvm::raw_ostream& Out

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

Description

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.

Declared at: clang/include/clang/AST/Mangle.h:228

Parameters

const clang::CXXRecordDecl* Derived
ArrayRef<const clang::CXXRecordDecl*> BasePath
llvm::raw_ostream& Out

virtual void mangleCXXVirtualDisplacementMap(
    const clang::CXXRecordDecl* SrcRD,
    const clang::CXXRecordDecl* DstRD,
    llvm::raw_ostream& Out)

Declared at: clang/include/clang/AST/Mangle.h:247

Parameters

const clang::CXXRecordDecl* SrcRD
const clang::CXXRecordDecl* DstRD
llvm::raw_ostream& Out

virtual void mangleThreadSafeStaticGuardVariable(
    const clang::VarDecl* VD,
    unsigned int GuardNum,
    llvm::raw_ostream& Out)

Declared at: clang/include/clang/AST/Mangle.h:239

Parameters

const clang::VarDecl* VD
unsigned int GuardNum
llvm::raw_ostream& Out

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

Declared at: clang/include/clang/AST/Mangle.h:243

Parameters

const clang::CXXMethodDecl* MD
const clang::MethodVFTableLocation& ML
llvm::raw_ostream& Out