clang API Documentation

Public Member Functions | Friends
clang::CodeGen::CGRecordLayout Class Reference

#include <CGRecordLayout.h>

List of all members.

Public Member Functions

 CGRecordLayout (llvm::StructType *CompleteObjectType, llvm::StructType *BaseSubobjectType, bool IsZeroInitializable, bool IsZeroInitializableAsBase)
llvm::StructType * getLLVMType () const
 Return the "complete object" LLVM type associated with this record.
llvm::StructType * getBaseSubobjectLLVMType () const
 Return the "base subobject" LLVM type associated with this record.
bool isZeroInitializable () const
 Check whether this struct can be C++ zero-initialized with a zeroinitializer.
bool isZeroInitializableAsBase () const
 Check whether this struct can be C++ zero-initialized with a zeroinitializer when considered as a base subobject.
unsigned getLLVMFieldNo (const FieldDecl *FD) const
 Return llvm::StructType element number that corresponds to the field FD.
unsigned getNonVirtualBaseLLVMFieldNo (const CXXRecordDecl *RD) const
unsigned getVirtualBaseIndex (const CXXRecordDecl *base) const
 Return the LLVM field index corresponding to the given virtual base. Only valid when operating on the complete object.
const CGBitFieldInfogetBitFieldInfo (const FieldDecl *FD) const
 Return the BitFieldInfo that corresponds to the field FD.
void print (raw_ostream &OS) const
void dump () const

Friends

class CodeGenTypes

Detailed Description

CGRecordLayout - This class handles struct and union layout info while lowering AST types to LLVM types.

These layout objects are only created on demand as IR generation requires.

Definition at line 109 of file CGRecordLayout.h.


Constructor & Destructor Documentation

clang::CodeGen::CGRecordLayout::CGRecordLayout ( llvm::StructType *  CompleteObjectType,
llvm::StructType *  BaseSubobjectType,
bool  IsZeroInitializable,
bool  IsZeroInitializableAsBase 
) [inline]

Definition at line 150 of file CGRecordLayout.h.


Member Function Documentation

void CGRecordLayout::dump ( ) const

Definition at line 829 of file CGRecordLayoutBuilder.cpp.

llvm::StructType* clang::CodeGen::CGRecordLayout::getBaseSubobjectLLVMType ( ) const [inline]

Return the "base subobject" LLVM type associated with this record.

Definition at line 167 of file CGRecordLayout.h.

Referenced by EmitNullConstant().

Return the BitFieldInfo that corresponds to the field FD.

Definition at line 204 of file CGRecordLayout.h.

References clang::FieldDecl::getCanonicalDecl(), and clang::FieldDecl::isBitField().

Referenced by clang::CodeGen::CodeGenTypes::ComputeRecordLayout(), and clang::CodeGen::CodeGenFunction::EmitLValueForField().

llvm::StructType* clang::CodeGen::CGRecordLayout::getLLVMType ( ) const [inline]

Return the "complete object" LLVM type associated with this record.

Definition at line 161 of file CGRecordLayout.h.

Referenced by clang::CodeGen::CodeGenTypes::ComputeRecordLayout(), and EmitNullConstant().

Definition at line 191 of file CGRecordLayout.h.

Referenced by EmitNullConstant().

Return the LLVM field index corresponding to the given virtual base. Only valid when operating on the complete object.

Definition at line 198 of file CGRecordLayout.h.

Referenced by EmitNullConstant().

Check whether this struct can be C++ zero-initialized with a zeroinitializer.

Definition at line 173 of file CGRecordLayout.h.

Referenced by clang::CodeGen::CodeGenTypes::isZeroInitializable().

Check whether this struct can be C++ zero-initialized with a zeroinitializer when considered as a base subobject.

Definition at line 179 of file CGRecordLayout.h.

Referenced by EmitNullConstantForBase().

void CGRecordLayout::print ( raw_ostream &  OS) const

Friends And Related Function Documentation

friend class CodeGenTypes [friend]

Definition at line 110 of file CGRecordLayout.h.


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