|
clang 24.0.0git
|
CGRecordLayout - This class handles struct and union layout info while lowering AST types to LLVM types. More...
#include "/work/as-worker-4/publish-doxygen-docs/llvm-project/clang/lib/CodeGen/CGRecordLayout.h"
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. | |
| bool | containsFieldDecl (const FieldDecl *FD) const |
| unsigned | getLLVMFieldNo (const FieldDecl *FD) const |
| Return llvm::StructType element number that corresponds to the field FD. | |
| bool | hasNonVirtualBaseLLVMField (const CXXRecordDecl *RD) const |
| unsigned | getNonVirtualBaseLLVMFieldNo (const CXXRecordDecl *RD) const |
| unsigned | getVirtualBaseIndex (const CXXRecordDecl *base) const |
| Return the LLVM field index corresponding to the given virtual base. | |
| const CGBitFieldInfo & | getBitFieldInfo (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 |
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 131 of file CGRecordLayout.h.
|
inline |
Definition at line 172 of file CGRecordLayout.h.
Definition at line 205 of file CGRecordLayout.h.
| LLVM_DUMP_METHOD void CGRecordLayout::dump | ( | ) | const |
Definition at line 1205 of file CGRecordLayoutBuilder.cpp.
References print().
|
inline |
Return the "base subobject" LLVM type associated with this record.
Definition at line 189 of file CGRecordLayout.h.
Referenced by EmitNullConstant().
|
inline |
Return the BitFieldInfo that corresponds to the field FD.
Definition at line 236 of file CGRecordLayout.h.
References clang::FieldDecl::getCanonicalDecl(), and clang::FieldDecl::isBitField().
Referenced by clang::CodeGen::CodeGenFunction::EmitLValueForField(), and setUsedBits().
Return llvm::StructType element number that corresponds to the field FD.
Definition at line 211 of file CGRecordLayout.h.
References clang::FieldDecl::getCanonicalDecl().
Referenced by clang::CodeGen::CodeGenFunction::EmitLValueForField(), EmitNullConstant(), emitPreserveStructAccess(), emitRawAddrOfFieldStorage(), clang::CodeGen::CodeGenFunction::FlattenAccessAndTypeLValue(), and clang::CodeGen::getLLVMFieldNumber().
|
inline |
Return the "complete object" LLVM type associated with this record.
Definition at line 183 of file CGRecordLayout.h.
Referenced by EmitNullConstant(), and emitRawAddrOfFieldStorage().
|
inline |
Definition at line 223 of file CGRecordLayout.h.
Referenced by EmitNullConstant().
|
inline |
Return the LLVM field index corresponding to the given virtual base.
Only valid when operating on the complete object.
Definition at line 230 of file CGRecordLayout.h.
Referenced by EmitNullConstant().
|
inline |
Definition at line 219 of file CGRecordLayout.h.
|
inline |
Check whether this struct can be C++ zero-initialized with a zeroinitializer.
Definition at line 195 of file CGRecordLayout.h.
Referenced by clang::CodeGen::CodeGenTypes::isZeroInitializable().
|
inline |
Check whether this struct can be C++ zero-initialized with a zeroinitializer when considered as a base subobject.
Definition at line 201 of file CGRecordLayout.h.
Referenced by EmitNullConstantForBase().
| void CGRecordLayout::print | ( | raw_ostream & | OS | ) | const |
Definition at line 1177 of file CGRecordLayoutBuilder.cpp.
References clang::RecordDecl::field_begin(), and clang::DeclContext::getParent().
|
friend |
Definition at line 132 of file CGRecordLayout.h.
References CodeGenTypes.
Referenced by CodeGenTypes.