clang API Documentation
#include <Mangle.h>
Public Member Functions | |
| MangleContext (ASTContext &Context, DiagnosticsEngine &Diags) | |
| virtual | ~MangleContext () |
| ASTContext & | getASTContext () const |
| DiagnosticsEngine & | getDiags () const |
| virtual void | startNewFunction () |
| unsigned | getBlockId (const BlockDecl *BD, bool Local) |
Mangler Entry Points | |
| virtual bool | shouldMangleDeclName (const NamedDecl *D)=0 |
| virtual void | mangleName (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, raw_ostream &)=0 |
| virtual void | mangleCXXVTable (const CXXRecordDecl *RD, raw_ostream &)=0 |
| 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 | 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 |
| void | mangleGlobalBlock (const BlockDecl *BD, 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 | mangleBlock (const BlockDecl *BD, raw_ostream &Out) |
| void | mangleObjCMethodName (const ObjCMethodDecl *MD, raw_ostream &) |
| virtual void | mangleItaniumGuardVariable (const VarDecl *D, raw_ostream &) |
MangleContext - Context for tracking state which persists across multiple calls to the C++ name mangler.
| clang::MangleContext::MangleContext | ( | ASTContext & | Context, |
| DiagnosticsEngine & | Diags | ||
| ) | [inline, explicit] |
| virtual clang::MangleContext::~MangleContext | ( | ) | [inline, virtual] |
| ASTContext& clang::MangleContext::getASTContext | ( | ) | const [inline] |
| unsigned clang::MangleContext::getBlockId | ( | const BlockDecl * | BD, |
| bool | Local | ||
| ) | [inline] |
Definition at line 88 of file Mangle.h.
Referenced by mangleGlobalBlock().
| DiagnosticsEngine& clang::MangleContext::getDiags | ( | ) | const [inline] |
| void MangleContext::mangleBlock | ( | const DeclContext * | DC, |
| const BlockDecl * | BD, | ||
| raw_ostream & | Out | ||
| ) |
Definition at line 91 of file Mangle.cpp.
References clang::NamedDecl::getIdentifier(), clang::NamedDecl::getName(), mangleName(), and mangleObjCMethodName().
Referenced by clang::CodeGen::CodeGenModule::getBlockMangledName(), clang::CodeGen::CodeGenModule::getMangledName(), and mangleBlock().
| void MangleContext::mangleBlock | ( | const BlockDecl * | BD, |
| raw_ostream & | Out | ||
| ) |
Definition at line 133 of file Mangle.cpp.
References clang::Decl::getDeclContext(), clang::DeclContext::getParent(), clang::DeclContext::isFunctionOrMethod(), mangleBlock(), and mangleGlobalBlock().
| void MangleContext::mangleCtorBlock | ( | const CXXConstructorDecl * | CD, |
| CXXCtorType | CT, | ||
| const BlockDecl * | BD, | ||
| raw_ostream & | Out | ||
| ) |
Definition at line 69 of file Mangle.cpp.
References mangleCXXCtor().
Referenced by clang::CodeGen::CodeGenModule::getBlockMangledName().
| virtual void clang::MangleContext::mangleCXXCtor | ( | const CXXConstructorDecl * | D, |
| CXXCtorType | Type, | ||
| raw_ostream & | |||
| ) | [pure virtual] |
Referenced by clang::CodeGen::CodeGenModule::getMangledName(), and mangleCtorBlock().
| virtual void clang::MangleContext::mangleCXXCtorVTable | ( | const CXXRecordDecl * | RD, |
| int64_t | Offset, | ||
| const CXXRecordDecl * | Type, | ||
| raw_ostream & | |||
| ) | [pure virtual] |
| virtual void clang::MangleContext::mangleCXXDtor | ( | const CXXDestructorDecl * | D, |
| CXXDtorType | Type, | ||
| raw_ostream & | |||
| ) | [pure virtual] |
Referenced by clang::CodeGen::CodeGenModule::getMangledName(), and mangleDtorBlock().
| virtual void clang::MangleContext::mangleCXXDtorThunk | ( | const CXXDestructorDecl * | DD, |
| CXXDtorType | Type, | ||
| const ThisAdjustment & | ThisAdjustment, | ||
| raw_ostream & | |||
| ) | [pure virtual] |
Referenced by clang::CodeGen::CodeGenModule::GetAddrOfThunk().
| virtual void clang::MangleContext::mangleCXXRTTI | ( | QualType | T, |
| raw_ostream & | |||
| ) | [pure virtual] |
| virtual void clang::MangleContext::mangleCXXRTTIName | ( | QualType | T, |
| raw_ostream & | |||
| ) | [pure virtual] |
Referenced by clang::CodeGen::CodeGenTBAA::getTBAAInfo(), and maybeUpdateRTTILinkage().
| virtual void clang::MangleContext::mangleCXXVTable | ( | const CXXRecordDecl * | RD, |
| raw_ostream & | |||
| ) | [pure virtual] |
Referenced by clang::CodeGen::CodeGenVTables::GetAddrOfVTable().
| virtual void clang::MangleContext::mangleCXXVTT | ( | const CXXRecordDecl * | RD, |
| raw_ostream & | |||
| ) | [pure virtual] |
Referenced by clang::CodeGen::CodeGenVTables::GetAddrOfVTT().
| void MangleContext::mangleDtorBlock | ( | const CXXDestructorDecl * | CD, |
| CXXDtorType | DT, | ||
| const BlockDecl * | BD, | ||
| raw_ostream & | Out | ||
| ) |
Definition at line 80 of file Mangle.cpp.
References mangleCXXDtor().
Referenced by clang::CodeGen::CodeGenModule::getBlockMangledName().
| void MangleContext::mangleGlobalBlock | ( | const BlockDecl * | BD, |
| raw_ostream & | Out | ||
| ) |
Definition at line 64 of file Mangle.cpp.
References getBlockId().
Referenced by clang::CodeGen::CodeGenModule::getBlockMangledName(), and mangleBlock().
| virtual void clang::MangleContext::mangleItaniumGuardVariable | ( | const VarDecl * | D, |
| raw_ostream & | |||
| ) | [inline, virtual] |
| virtual void clang::MangleContext::mangleName | ( | const NamedDecl * | D, |
| raw_ostream & | |||
| ) | [pure virtual] |
Referenced by clang::CodeGen::CodeGenModule::getMangledName(), and mangleBlock().
| void MangleContext::mangleObjCMethodName | ( | const ObjCMethodDecl * | MD, |
| raw_ostream & | Out | ||
| ) |
Definition at line 117 of file Mangle.cpp.
References clang::Selector::getAsString(), clang::Decl::getDeclContext(), clang::NamedDecl::getName(), clang::ObjCMethodDecl::getSelector(), and clang::ObjCMethodDecl::isInstanceMethod().
Referenced by mangleBlock().
| virtual void clang::MangleContext::mangleReferenceTemporary | ( | const VarDecl * | D, |
| raw_ostream & | |||
| ) | [pure virtual] |
Referenced by CreateReferenceTemporary().
| virtual void clang::MangleContext::mangleThunk | ( | const CXXMethodDecl * | MD, |
| const ThunkInfo & | Thunk, | ||
| raw_ostream & | |||
| ) | [pure virtual] |
Referenced by clang::CodeGen::CodeGenModule::GetAddrOfThunk().
| virtual bool clang::MangleContext::shouldMangleDeclName | ( | const NamedDecl * | D | ) | [pure virtual] |
Referenced by clang::CodeGen::CodeGenModule::getMangledName().
| virtual void clang::MangleContext::startNewFunction | ( | ) | [inline, virtual] |
Definition at line 86 of file Mangle.h.
Referenced by clang::CodeGen::CodeGenFunction::CodeGenFunction().