clang API Documentation

Classes | Public Types | Public Member Functions | Friends
clang::ASTRecordLayout Class Reference

#include <RecordLayout.h>

List of all members.

Classes

struct  CXXRecordLayoutInfo
 CXXRecordLayoutInfo - Contains C++ specific layout information.
struct  VBaseInfo

Public Types

typedef llvm::DenseMap< const
CXXRecordDecl *, VBaseInfo
VBaseOffsetsMapTy

Public Member Functions

CharUnits getAlignment () const
 getAlignment - Get the record alignment in characters.
CharUnits getSize () const
 getSize - Get the record size in characters.
unsigned getFieldCount () const
 getFieldCount - Get the number of fields in the layout.
uint64_t getFieldOffset (unsigned FieldNo) const
CharUnits getDataSize () const
CharUnits getNonVirtualSize () const
CharUnits getNonVirtualAlignment () const
const CXXRecordDeclgetPrimaryBase () const
 getPrimaryBase - Get the primary base for this record.
bool isPrimaryBaseVirtual () const
CharUnits getBaseClassOffset (const CXXRecordDecl *Base) const
 getBaseClassOffset - Get the offset, in chars, for the given base class.
CharUnits getVBaseClassOffset (const CXXRecordDecl *VBase) const
 getVBaseClassOffset - Get the offset, in chars, for the given base class.
CharUnits getSizeOfLargestEmptySubobject () const
bool hasOwnVFPtr () const
bool hasExtendableVFPtr () const
bool hasOwnVBPtr () const
bool hasVBPtr () const
 hasVBPtr - Does this class have a virtual function table pointer.
CharUnits getRequiredAlignment () const
bool hasZeroSizedSubObject () const
bool leadsWithZeroSizedBase () const
CharUnits getVBPtrOffset () const
const CXXRecordDeclgetBaseSharingVBPtr () const
const VBaseOffsetsMapTygetVBaseOffsetsMap () const

Friends

class ASTContext

Detailed Description

ASTRecordLayout - This class contains layout information for one RecordDecl, which is a struct/union/class. The decl represented must be a definition, not a forward declaration. This class is also used to contain layout information for one ObjCInterfaceDecl. FIXME - Find appropriate name. These objects are managed by ASTContext.

Definition at line 34 of file RecordLayout.h.


Member Typedef Documentation

Definition at line 57 of file RecordLayout.h.


Member Function Documentation

getAlignment - Get the record alignment in characters.

Definition at line 171 of file RecordLayout.h.

Referenced by DumpCXXRecordLayout(), clang::ASTContext::DumpRecordLayout(), and clang::ASTContext::getDeclAlign().

Definition at line 302 of file RecordLayout.h.

getDataSize() - Get the record data size, which is the record size without tail padding, in characters.

Definition at line 188 of file RecordLayout.h.

Referenced by DumpCXXRecordLayout(), clang::ASTContext::DumpRecordLayout(), and clang::ASTContext::getTypeInfoDataSizeInChars().

getFieldCount - Get the number of fields in the layout.

Definition at line 177 of file RecordLayout.h.

Referenced by clang::CodeGen::CodeGenTypes::ComputeRecordLayout(), clang::ASTContext::DumpRecordLayout(), and clang::CodeGen::CodeGenFunction::EmitAsanPrologueOrEpilogue().

uint64_t clang::ASTRecordLayout::getFieldOffset ( unsigned  FieldNo) const [inline]

getNonVirtualSize - Get the non-virtual alignment (in chars) of an object, which is the alignment of the object without virtual bases.

Definition at line 202 of file RecordLayout.h.

Referenced by DumpCXXRecordLayout(), and EmitNullBaseClassInitialization().

getNonVirtualSize - Get the non-virtual size (in chars) of an object, which is the size of the object without virtual bases.

Definition at line 194 of file RecordLayout.h.

Referenced by clang::CodeGen::CodeGenTypes::ComputeRecordLayout(), DumpCXXRecordLayout(), clang::CodeGen::CodeGenFunction::EmitAsanPrologueOrEpilogue(), and EmitNullBaseClassInitialization().

getPrimaryBase - Get the primary base for this record.

Definition at line 209 of file RecordLayout.h.

Referenced by AddIndirectPrimaryBases(), DumpCXXRecordLayout(), and clang::CodeGen::CodeGenFunction::InitializeVTablePointers().

Definition at line 282 of file RecordLayout.h.

getSize - Get the record size in characters.

Definition at line 174 of file RecordLayout.h.

Referenced by clang::CodeGen::CodeGenTypes::ComputeRecordLayout(), DumpCXXRecordLayout(), and clang::ASTContext::DumpRecordLayout().

Definition at line 239 of file RecordLayout.h.

Definition at line 307 of file RecordLayout.h.

Referenced by DumpCXXRecordLayout().

getVBPtrOffset - Get the offset for virtual base table pointer. This is only meaningful with the Microsoft ABI.

Definition at line 297 of file RecordLayout.h.

Referenced by DumpCXXRecordLayout().

hasVFPtr - Does this class have a virtual function table pointer that can be extended by a derived class? This is synonymous with this class having a VFPtr at offset zero.

Definition at line 259 of file RecordLayout.h.

Referenced by performBaseAdjustment().

hasOwnVBPtr - Does this class provide its own virtual-base table pointer, rather than inheriting one from a primary base class?

This implies that the ABI has no primary base class, meaning that it has no base classes that are suitable under the conditions of the ABI.

Definition at line 271 of file RecordLayout.h.

References hasVBPtr().

Referenced by DumpCXXRecordLayout().

hasOwnVFPtr - Does this class provide its own virtual-function table pointer, rather than inheriting one from a primary base class? If so, it is at offset zero.

This implies that the ABI has no primary base class, meaning that it has no base classes that are suitable under the conditions of the ABI.

Definition at line 251 of file RecordLayout.h.

Referenced by DumpCXXRecordLayout().

hasVBPtr - Does this class have a virtual function table pointer.

Definition at line 277 of file RecordLayout.h.

Referenced by hasOwnVBPtr().

Definition at line 286 of file RecordLayout.h.

isPrimaryBaseVirtual - Get whether the primary base for this record is virtual or not.

Definition at line 217 of file RecordLayout.h.

Referenced by AddIndirectPrimaryBases().

Definition at line 290 of file RecordLayout.h.


Friends And Related Function Documentation

friend class ASTContext [friend]

Definition at line 136 of file RecordLayout.h.


The documentation for this class was generated from the following files: