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 &) 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. |
MangleContext - Context for tracking state which persists across multiple calls to the C++ name mangler.
Definition at line 52 of file Mangle.h.
◆ ManglerKind
| Enumerator |
| MK_Itanium |
| MK_Microsoft |
Definition at line 54 of file Mangle.h.
◆ ~MangleContext()
| virtual clang::MangleContext::~MangleContext ( ) |
inlinevirtual |
◆ getAnonymousStructId()
◆ 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()
Definition at line 345 of file Mangle.cpp.
References clang::cast(), clang::Ctor_Complete, clang::Dtor_Complete, getBlockId(), clang::DeclContext::getParent(), clang::isa(), mangleCtorBlock(), mangleDtorBlock(), mangleFunctionBlock(), mangleName(), mangleObjCMethodNameAsSourceName(), clang::Method, and shouldMangleDeclName().
Referenced by clang::CodeGen::CodeGenModule::getBlockMangledName().
◆ 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 ) const |
virtual |
◆ mangleName()
| void MangleContext::mangleName |
( |
GlobalDecl |
GD, |
| raw_ostream & |
Out ) |
|
|
Definition at line 186 of file Mangle.cpp.
References clang::cast(), clang::Type::castAs(), CCM_Fast, CCM_Other, CCM_RegCall, CCM_Std, CCM_Vector, CCM_WasmMainArgcArgv, clang::Default, emitLLDBAsmLabel(), g_lldb_func_call_label_prefix, getASTContext(), clang::Decl::getAttr(), getCallingConvMangling(), clang::TargetInfo::getCXXABI(), clang::GlobalDecl::getDecl(), clang::NamedDecl::getIdentifier(), clang::IdentifierInfo::getName(), clang::TargetInfo::getPointerWidth(), clang::ASTContext::getTargetInfo(), clang::ValueDecl::getType(), clang::ASTContext::getTypeSize(), clang::TargetInfo::getUserLabelPrefix(), mangleCXXName(), mangleMSGuidDecl(), mangleObjCMethodNameAsSourceName(), and shouldMangleCXXName().
Referenced by getMangledNameImpl(), getMangledNameImpl(), mangleBlock(), mangleCtorBlock(), mangleDtorBlock(), and mangleGlobalBlock().
◆ mangleObjCMethodName()
| void MangleContext::mangleObjCMethodName |
( |
const ObjCMethodDecl * |
MD, |
| raw_ostream & |
OS, |
|
|
| bool |
includePrefixByte = true, |
|
|
| bool |
includeCategoryNamespace = true ) const |
|
|
Definition at line 380 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(), clang::mangleObjCMethodName(), and clang::Selector::print().
Referenced by mangleObjCMethodNameAsSourceName().
◆ mangleObjCMethodNameAsSourceName()
| void MangleContext::mangleObjCMethodNameAsSourceName |
( |
const ObjCMethodDecl * |
MD, |
| raw_ostream & |
Out ) const |
|
|
◆ 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 121 of file Mangle.cpp.
References CCM_Other, clang::CPlusPlus, getASTContext(), getCallingConvMangling(), clang::Decl::getOwningModuleForLinkage(), clang::Decl::hasAttr(), clang::Decl::hasAttrs(), clang::NamedDecl::hasExternalFormalLinkage(), clang::isa(), isUniqueInternalLinkageDecl(), and shouldMangleCXXName().
Referenced by getMangledNameImpl(), 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: