clang: clang::MangleContext Class Reference (original) (raw)
MangleContext - Context for tracking state which persists across multiple calls to the C++ name mangler. More...
#include "[clang/AST/Mangle.h](Mangle%5F8h%5Fsource.html)"
Public Member Functions |
|
ManglerKind |
getKind () const |
|
|
bool |
isAux () const |
|
|
|
MangleContext (ASTContext &Context, DiagnosticsEngine &Diags, ManglerKind Kind, bool IsAux=false) |
|
|
virtual |
~MangleContext () |
|
|
ASTContext & |
getASTContext () const |
|
|
DiagnosticsEngine & |
getDiags () 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 |
|
|
Mangler Entry Points |
|
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 &) |
|
|
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. |
|
|
MangleContext - Context for tracking state which persists across multiple calls to the C++ name mangler.
Definition at line 45 of file Mangle.h.
◆ ManglerKind
Enumerator |
MK_Itanium |
MK_Microsoft |
Definition at line 47 of file Mangle.h.
◆ ~MangleContext()
virtual clang::MangleContext::~MangleContext ( ) |
inlinevirtual |
◆ getAnonymousStructId()
uint64_t clang::MangleContext::getAnonymousStructId ( const NamedDecl * D, const FunctionDecl * FD = nullptr ) |
inline |
◆ getAnonymousStructIdForDebugInfo()
uint64_t clang::MangleContext::getAnonymousStructIdForDebugInfo ( const NamedDecl * D) |
inline |
◆ getASTContext()
ASTContext & clang::MangleContext::getASTContext ( ) const |
inline |
◆ getBlockId()
◆ getDiags()
◆ getKind()
ManglerKind clang::MangleContext::getKind ( ) const |
inline |
◆ getLambdaString()
virtual std::string clang::MangleContext::getLambdaString ( const CXXRecordDecl * Lambda) |
pure virtual |
◆ isAux()
bool clang::MangleContext::isAux ( ) const |
inline |
◆ isUniqueInternalLinkageDecl()
virtual bool clang::MangleContext::isUniqueInternalLinkageDecl ( const NamedDecl * ND) |
inlinevirtual |
◆ mangleBlock()
◆ mangleCanonicalTypeName()
virtual void clang::MangleContext::mangleCanonicalTypeName ( QualType T, raw_ostream & , bool NormalizeIntegers = false ) |
pure virtual |
◆ mangleCtorBlock()
◆ mangleCXXDtorThunk()
◆ mangleCXXName()
virtual void clang::MangleContext::mangleCXXName ( GlobalDecl GD, raw_ostream & ) |
pure virtual |
◆ mangleCXXRTTI()
virtual void clang::MangleContext::mangleCXXRTTI ( QualType T, raw_ostream & ) |
pure virtual |
◆ mangleCXXRTTIName()
virtual void clang::MangleContext::mangleCXXRTTIName ( QualType T, raw_ostream & , bool NormalizeIntegers = false ) |
pure virtual |
◆ mangleCXXVTable()
virtual void clang::MangleContext::mangleCXXVTable ( const CXXRecordDecl * RD, raw_ostream & ) |
pure virtual |
◆ mangleDtorBlock()
◆ mangleDynamicAtExitDestructor()
virtual void clang::MangleContext::mangleDynamicAtExitDestructor ( const VarDecl * D, raw_ostream & ) |
pure virtual |
◆ mangleDynamicInitializer()
virtual void clang::MangleContext::mangleDynamicInitializer ( const VarDecl * D, raw_ostream & ) |
pure virtual |
◆ mangleGlobalBlock()
void MangleContext::mangleGlobalBlock |
( |
const BlockDecl * |
BD, |
const NamedDecl * |
ID, |
|
|
raw_ostream & |
Out |
|
|
) |
|
|
|
◆ mangleMSGuidDecl()
void MangleContext::mangleMSGuidDecl ( const MSGuidDecl * GD, raw_ostream & Out ) |
virtual |
◆ mangleName()
void MangleContext::mangleName |
( |
GlobalDecl |
GD, |
raw_ostream & |
Out |
|
|
) |
|
|
|
Definition at line 138 of file Mangle.cpp.
References clang::Type::castAs(), CCM_Fast, CCM_Other, CCM_RegCall, CCM_Std, CCM_Vector, CCM_WasmMainArgcArgv, D, clang::Default, getASTContext(), clang::Decl::getAttr(), getCallingConvMangling(), clang::TargetInfo::getCXXABI(), clang::GlobalDecl::getDecl(), clang::TargetInfo::getPointerWidth(), clang::ASTContext::getTargetInfo(), clang::ValueDecl::getType(), clang::ASTContext::getTypeSize(), clang::TargetInfo::getUserLabelPrefix(), mangleCXXName(), mangleMSGuidDecl(), mangleObjCMethodNameAsSourceName(), and shouldMangleCXXName().
Referenced by getMangledNameImpl(), mangleBlock(), mangleCtorBlock(), mangleDtorBlock(), and mangleGlobalBlock().
◆ mangleObjCMethodName()
void MangleContext::mangleObjCMethodName |
( |
const ObjCMethodDecl * |
MD, |
raw_ostream & |
OS, |
|
|
bool |
includePrefixByte = true, |
|
|
bool |
includeCategoryNamespace = true |
|
|
) |
|
|
|
Definition at line 327 of file Mangle.cpp.
References getASTContext(), clang::ObjCMethodDecl::getCategory(), clang::ObjCMethodDecl::getClassInterface(), clang::Decl::getDeclContext(), clang::NamedDecl::getName(), clang::ObjCMethodDecl::getSelector(), clang::ObjCMethodDecl::isClassMethod(), clang::ObjCRuntime::isGNUFamily(), clang::ObjCMethodDecl::isInstanceMethod(), and clang::Selector::print().
Referenced by clang::CodeGen::CGObjCRuntime::getSymbolNameForMethod(), and mangleObjCMethodNameAsSourceName().
◆ mangleObjCMethodNameAsSourceName()
void MangleContext::mangleObjCMethodNameAsSourceName |
( |
const ObjCMethodDecl * |
MD, |
raw_ostream & |
Out |
|
|
) |
|
|
|
◆ mangleReferenceTemporary()
virtual void clang::MangleContext::mangleReferenceTemporary ( const VarDecl * D, unsigned ManglingNumber, raw_ostream & ) |
pure virtual |
◆ mangleSEHFilterExpression()
virtual void clang::MangleContext::mangleSEHFilterExpression ( GlobalDecl EnclosingDecl, raw_ostream & Out ) |
pure virtual |
◆ mangleSEHFinallyBlock()
virtual void clang::MangleContext::mangleSEHFinallyBlock ( GlobalDecl EnclosingDecl, raw_ostream & Out ) |
pure virtual |
◆ mangleStaticGuardVariable()
virtual void clang::MangleContext::mangleStaticGuardVariable ( const VarDecl * D, raw_ostream & ) |
pure virtual |
◆ mangleStringLiteral()
virtual void clang::MangleContext::mangleStringLiteral ( const StringLiteral * SL, raw_ostream & ) |
pure virtual |
◆ mangleThunk()
virtual void clang::MangleContext::mangleThunk ( const CXXMethodDecl * MD, const ThunkInfo & Thunk, bool ElideOverrideInfo, raw_ostream & ) |
pure virtual |
◆ needsUniqueInternalLinkageNames()
virtual void clang::MangleContext::needsUniqueInternalLinkageNames ( ) |
inlinevirtual |
◆ shouldMangleCXXName()
virtual bool clang::MangleContext::shouldMangleCXXName ( const NamedDecl * D) |
pure virtual |
◆ shouldMangleDeclName()
Definition at line 104 of file Mangle.cpp.
References CCM_Other, clang::CPlusPlus, D, getASTContext(), getCallingConvMangling(), clang::Decl::getOwningModuleForLinkage(), clang::Decl::hasAttr(), clang::Decl::hasAttrs(), isUniqueInternalLinkageDecl(), and shouldMangleCXXName().
Referenced by getMangledNameImpl(), mangleBlock(), and mangleGlobalBlock().
◆ shouldMangleStringLiteral()
virtual bool clang::MangleContext::shouldMangleStringLiteral ( const StringLiteral * SL) |
pure virtual |
◆ startNewFunction()
virtual void clang::MangleContext::startNewFunction ( ) |
inlinevirtual |
The documentation for this class was generated from the following files: