|
clang
3.8.0
|
Holds information about the inheritance path to a virtual base or function table pointer. More...
#include <VTableBuilder.h>
Public Types | |
| typedef SmallVector< const CXXRecordDecl *, 1 > | BasePath |
Public Member Functions | |
| VPtrInfo (const CXXRecordDecl *RD) | |
| const CXXRecordDecl * | getVBaseWithVPtr () const |
| The vptr is stored inside the non-virtual component of this virtual base. More... | |
Public Attributes | |
| const CXXRecordDecl * | ReusingBase |
| The vtable will hold all of the virtual bases or virtual methods of ReusingBase. More... | |
| CharUnits | NonVirtualOffset |
| BaseWithVPtr is at this offset from its containing complete object or virtual base. More... | |
| const CXXRecordDecl * | BaseWithVPtr |
| The vptr is stored inside this subobject. More... | |
| BasePath | MangledPath |
| The bases from the inheritance path that got used to mangle the vbtable name. More... | |
| const CXXRecordDecl * | NextBaseToMangle |
| The next base to push onto the mangled path if this path is ambiguous in a derived class. More... | |
| BasePath | ContainingVBases |
| The set of possibly indirect vbases that contain this vbtable. More... | |
| BasePath | PathToBaseWithVPtr |
| This holds the base classes path from the complete type to the first base with the given vfptr offset, in the base-to-derived order. More... | |
| CharUnits | FullOffsetInMDC |
| Static offset from the top of the most derived class to this vfptr, including any virtual base offset. More... | |
Holds information about the inheritance path to a virtual base or function table pointer.
A record may contain as many vfptrs or vbptrs as there are base subobjects.
Definition at line 398 of file VTableBuilder.h.
| typedef SmallVector<const CXXRecordDecl *, 1> clang::VPtrInfo::BasePath |
Definition at line 399 of file VTableBuilder.h.
|
inline |
Definition at line 401 of file VTableBuilder.h.
|
inline |
The vptr is stored inside the non-virtual component of this virtual base.
Definition at line 442 of file VTableBuilder.h.
References ContainingVBases.
| const CXXRecordDecl* clang::VPtrInfo::BaseWithVPtr |
The vptr is stored inside this subobject.
Definition at line 415 of file VTableBuilder.h.
Referenced by selectBestPath().
| BasePath clang::VPtrInfo::ContainingVBases |
The set of possibly indirect vbases that contain this vbtable.
When a derived class indirectly inherits from the same vbase twice, we only keep vtables and their paths from the first instance.
Definition at line 430 of file VTableBuilder.h.
Referenced by getVBaseWithVPtr().
| CharUnits clang::VPtrInfo::FullOffsetInMDC |
Static offset from the top of the most derived class to this vfptr, including any virtual base offset.
Only used for vftables.
Definition at line 439 of file VTableBuilder.h.
| BasePath clang::VPtrInfo::MangledPath |
The bases from the inheritance path that got used to mangle the vbtable name.
This is not really a full path like a CXXBasePath. It holds the subset of records that need to be mangled into the vbtable symbol name in order to get a unique name.
Definition at line 421 of file VTableBuilder.h.
Referenced by extendPath(), mangleVFTableName(), and rebucketPaths().
| const CXXRecordDecl* clang::VPtrInfo::NextBaseToMangle |
The next base to push onto the mangled path if this path is ambiguous in a derived class.
If it's null, then it's already been pushed onto the path.
Definition at line 425 of file VTableBuilder.h.
Referenced by extendPath().
| CharUnits clang::VPtrInfo::NonVirtualOffset |
BaseWithVPtr is at this offset from its containing complete object or virtual base.
Definition at line 412 of file VTableBuilder.h.
| BasePath clang::VPtrInfo::PathToBaseWithVPtr |
This holds the base classes path from the complete type to the first base with the given vfptr offset, in the base-to-derived order.
Only used for vftables.
Definition at line 435 of file VTableBuilder.h.
| const CXXRecordDecl* clang::VPtrInfo::ReusingBase |
The vtable will hold all of the virtual bases or virtual methods of ReusingBase.
This may or may not be the same class as VPtrSubobject.Base. A derived class will reuse the vptr of the first non-virtual base subobject that has one.
Definition at line 408 of file VTableBuilder.h.
1.8.6