clang API Documentation
#include <VTableBuilder.h>
Public Types | |
| typedef SmallVector< std::pair < uint64_t, ThunkInfo >, 1 > | VTableThunksTy |
| typedef SmallVector< ThunkInfo, 1 > | ThunkInfoVectorTy |
Public Member Functions | |
| VTableContext (ASTContext &Context) | |
| ~VTableContext () | |
| const VTableLayout & | getVTableLayout (const CXXRecordDecl *RD) |
| VTableLayout * | createConstructionVTableLayout (const CXXRecordDecl *MostDerivedClass, CharUnits MostDerivedClassOffset, bool MostDerivedClassIsVirtual, const CXXRecordDecl *LayoutClass) |
| const ThunkInfoVectorTy * | getThunkInfo (const CXXMethodDecl *MD) |
| uint64_t | getNumVirtualFunctionPointers (const CXXRecordDecl *RD) |
| uint64_t | getMethodVTableIndex (GlobalDecl GD) |
| CharUnits | getVirtualBaseOffsetOffset (const CXXRecordDecl *RD, const CXXRecordDecl *VBase) |
Definition at line 264 of file VTableBuilder.h.
| typedef SmallVector<ThunkInfo, 1> clang::VTableContext::ThunkInfoVectorTy |
Definition at line 270 of file VTableBuilder.h.
| typedef SmallVector<std::pair<uint64_t, ThunkInfo>, 1> clang::VTableContext::VTableThunksTy |
Definition at line 269 of file VTableBuilder.h.
| clang::VTableContext::VTableContext | ( | ASTContext & | Context | ) | [inline] |
Definition at line 309 of file VTableBuilder.h.
| VTableContext::~VTableContext | ( | ) |
Definition at line 2167 of file VTableBuilder.cpp.
| VTableLayout * VTableContext::createConstructionVTableLayout | ( | const CXXRecordDecl * | MostDerivedClass, |
| CharUnits | MostDerivedClassOffset, | ||
| bool | MostDerivedClassIsVirtual, | ||
| const CXXRecordDecl * | LayoutClass | ||
| ) |
Definition at line 2396 of file VTableBuilder.cpp.
References CreateVTableLayout().
Referenced by clang::CodeGen::CodeGenVTables::GenerateConstructionVTable().
| uint64_t VTableContext::getMethodVTableIndex | ( | GlobalDecl | GD | ) |
getMethodVTableIndex - Return the index (relative to the vtable address point) where the function pointer for the given virtual function is stored.
Definition at line 2302 of file VTableBuilder.cpp.
References clang::GlobalDecl::getDecl().
Referenced by clang::CodeGen::CodeGenFunction::BuildAppleKextVirtualCall(), clang::CodeGen::CodeGenFunction::BuildAppleKextVirtualDestructorCall(), and clang::CodeGen::CodeGenFunction::BuildVirtualCall().
| uint64_t VTableContext::getNumVirtualFunctionPointers | ( | const CXXRecordDecl * | RD | ) |
getNumVirtualFunctionPointers - Return the number of virtual function pointers in the vtable for a given record decl.
Definition at line 2289 of file VTableBuilder.cpp.
| const ThunkInfoVectorTy* clang::VTableContext::getThunkInfo | ( | const CXXMethodDecl * | MD | ) | [inline] |
Definition at line 325 of file VTableBuilder.h.
References clang::CXXMethodDecl::getParent().
Referenced by clang::CodeGen::CodeGenVTables::EmitThunks().
| CharUnits VTableContext::getVirtualBaseOffsetOffset | ( | const CXXRecordDecl * | RD, |
| const CXXRecordDecl * | VBase | ||
| ) |
getVirtualBaseOffsetOffset - Return the offset in chars (relative to the vtable address point) where the offset of the virtual base that contains the given base is stored, otherwise, if no virtual base contains the given class, return 0. Base must be a virtual base class or an unambigious base.
Definition at line 2317 of file VTableBuilder.cpp.
References clang::CharUnits::Zero().
Referenced by clang::CodeGen::CodeGenFunction::GetVirtualBaseClassOffset().
| const VTableLayout& clang::VTableContext::getVTableLayout | ( | const CXXRecordDecl * | RD | ) | [inline] |
Definition at line 312 of file VTableBuilder.h.
Referenced by clang::CodeGen::CodeGenFunction::BuildAppleKextVirtualCall(), clang::CodeGen::CodeGenFunction::BuildAppleKextVirtualDestructorCall(), clang::CodeGen::CodeGenVTables::EmitVTableDefinition(), clang::CodeGen::CodeGenVTables::EmitVTTDefinition(), clang::CodeGen::CodeGenVTables::GetAddrOfVTable(), and clang::CodeGen::CodeGenFunction::InitializeVTablePointer().