clang 22.0.0git
clang::ItaniumMangleContext Class Referenceabstract

#include "clang/AST/Mangle.h"

Inheritance diagram for clang::ItaniumMangleContext:
[legend]

Public Types

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

Public Member Functions

 ItaniumMangleContext (ASTContext &C, DiagnosticsEngine &D, bool IsAux=false)
virtual void mangleCXXVTT (const CXXRecordDecl *RD, raw_ostream &)=0
virtual void mangleCXXCtorVTable (const CXXRecordDecl *RD, int64_t Offset, const CXXRecordDecl *Type, raw_ostream &)=0
virtual void mangleItaniumThreadLocalInit (const VarDecl *D, raw_ostream &)=0
virtual void mangleItaniumThreadLocalWrapper (const VarDecl *D, raw_ostream &)=0
virtual void mangleCXXCtorComdat (const CXXConstructorDecl *D, raw_ostream &)=0
virtual void mangleCXXDtorComdat (const CXXDestructorDecl *D, raw_ostream &)=0
virtual void mangleLambdaSig (const CXXRecordDecl *Lambda, raw_ostream &)=0
virtual void mangleDynamicStermFinalizer (const VarDecl *D, raw_ostream &)=0
virtual void mangleModuleInitializer (const Module *Module, raw_ostream &)=0
virtual DiscriminatorOverrideTy getDiscriminatorOverride () const =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, bool ElideOverrideInfo, raw_ostream &)=0
virtual void mangleCXXDtorThunk (const CXXDestructorDecl *DD, CXXDtorType Type, const ThunkInfo &Thunk, bool ElideOverrideInfo, raw_ostream &)=0
virtual void mangleReferenceTemporary (const VarDecl *D, unsigned ManglingNumber, raw_ostream &)=0
virtual void mangleCXXVTable (const CXXRecordDecl *RD, 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 &) const
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) const
void mangleObjCMethodNameAsSourceName (const ObjCMethodDecl *MD, raw_ostream &) const
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 ItaniumMangleContextcreate (ASTContext &Context, DiagnosticsEngine &Diags, bool IsAux=false)
static ItaniumMangleContextcreate (ASTContext &Context, DiagnosticsEngine &Diags, DiscriminatorOverrideTy Discriminator, bool IsAux=false)

Detailed Description

Definition at line 190 of file Mangle.h.

Member Typedef Documentation

◆ DiscriminatorOverrideTy

Initial value:
const NamedDecl *)
Holds long-lived AST nodes (such as types and decls) that can be referred to throughout the semantic ...
Definition ASTContext.h:188
This represents a decl that may have a name.
Definition Decl.h:273

Definition at line 192 of file Mangle.h.

Constructor & Destructor Documentation

◆ ItaniumMangleContext()

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

Definition at line 194 of file Mangle.h.

References clang::C, clang::MangleContext::MangleContext(), and clang::MangleContext::MK_Itanium.

Referenced by create().

Member Function Documentation

◆ classof()

bool clang::ItaniumMangleContext::classof ( const MangleContext * C)
inlinestatic

◆ create() [1/2]

◆ create() [2/2]

ItaniumMangleContext * ItaniumMangleContext::create ( ASTContext & Context,
DiagnosticsEngine & Diags,
DiscriminatorOverrideTy Discriminator,
bool IsAux = false )
static

Definition at line 7571 of file ItaniumMangle.cpp.

◆ getDiscriminatorOverride()

virtual DiscriminatorOverrideTy clang::ItaniumMangleContext::getDiscriminatorOverride ( ) const
pure virtual

◆ mangleCXXCtorComdat()

virtual void clang::ItaniumMangleContext::mangleCXXCtorComdat ( const CXXConstructorDecl * D,
raw_ostream &  )
pure virtual

◆ mangleCXXCtorVTable()

virtual void clang::ItaniumMangleContext::mangleCXXCtorVTable ( const CXXRecordDecl * RD,
int64_t Offset,
const CXXRecordDecl * Type,
raw_ostream &  )
pure virtual

◆ mangleCXXDtorComdat()

virtual void clang::ItaniumMangleContext::mangleCXXDtorComdat ( const CXXDestructorDecl * D,
raw_ostream &  )
pure virtual

◆ mangleCXXVTT()

virtual void clang::ItaniumMangleContext::mangleCXXVTT ( const CXXRecordDecl * RD,
raw_ostream &  )
pure virtual

◆ mangleDynamicStermFinalizer()

virtual void clang::ItaniumMangleContext::mangleDynamicStermFinalizer ( const VarDecl * D,
raw_ostream &  )
pure virtual

◆ mangleItaniumThreadLocalInit()

virtual void clang::ItaniumMangleContext::mangleItaniumThreadLocalInit ( const VarDecl * D,
raw_ostream &  )
pure virtual

◆ mangleItaniumThreadLocalWrapper()

virtual void clang::ItaniumMangleContext::mangleItaniumThreadLocalWrapper ( const VarDecl * D,
raw_ostream &  )
pure virtual

◆ mangleLambdaSig()

virtual void clang::ItaniumMangleContext::mangleLambdaSig ( const CXXRecordDecl * Lambda,
raw_ostream &  )
pure virtual

◆ mangleModuleInitializer()

virtual void clang::ItaniumMangleContext::mangleModuleInitializer ( const Module * Module,
raw_ostream &  )
pure virtual

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