|
clang 23.0.0git
|
This class organizes the cross-module state that is used while lowering AST types to CIR types. More...
#include "/work/as-worker-4/publish-doxygen-docs/llvm-project/clang/lib/CIR/CodeGen/CIRGenTypes.h"
Public Types | |
| using | TypeCacheTy = llvm::DenseMap<const clang::Type *, mlir::Type> |
| This map of clang::Type to mlir::Type (which includes CIR type) is a cache of types that have already been processed. | |
Public Member Functions | |
| CIRGenTypes (CIRGenModule &cgm) | |
| ~CIRGenTypes () | |
| CIRGenBuilderTy & | getBuilder () const |
| CIRGenModule & | getCGModule () const |
| bool | isFuncTypeConvertible (const clang::FunctionType *ft) |
| Utility to check whether a function type can be converted to a CIR type (i.e. | |
| bool | isFuncParamTypeConvertible (clang::QualType type) |
| Return true if the specified type in a function parameter or result position can be converted to a CIR type at this point. | |
| clang::CanQualType | deriveThisType (const clang::CXXRecordDecl *rd, const clang::CXXMethodDecl *md) |
| Derives the 'this' type for CIRGen purposes, i.e. | |
| mlir::MLIRContext & | getMLIRContext () const |
| clang::ASTContext & | getASTContext () const |
| bool | isRecordLayoutComplete (const clang::Type *ty) const |
| Return true if the specified type is already completely laid out. | |
| bool | noRecordsBeingLaidOut () const |
| bool | isRecordBeingLaidOut (const clang::Type *ty) const |
| bool | isCachedSafeToConvert (const clang::Type *key) const |
| Check if a record type key is in the safe-to-convert cache. | |
| void | cacheSafeToConvert (const clang::Type *key) |
| Add a record type key to the safe-to-convert cache. | |
| const ABIInfo & | getABIInfo () const |
| mlir::Type | convertType (clang::QualType type) |
| Convert a Clang type into a mlir::Type. | |
| mlir::Type | convertRecordDeclType (const clang::RecordDecl *recordDecl) |
| Lay out a tagged decl type like struct or union. | |
| std::unique_ptr< CIRGenRecordLayout > | computeRecordLayout (const clang::RecordDecl *rd, cir::RecordType *ty) |
| std::string | getRecordTypeName (const clang::RecordDecl *, llvm::StringRef suffix) |
| const CIRGenRecordLayout & | getCIRGenRecordLayout (const clang::RecordDecl *rd) |
| Return record layout info for the given record decl. | |
| mlir::Type | convertTypeForMem (clang::QualType, bool forBitField=false) |
| Convert type T into an mlir::Type. | |
| cir::FuncType | getFunctionType (const CIRGenFunctionInfo &info) |
| Get the CIR function type for. | |
| cir::FuncType | getFunctionType (clang::GlobalDecl gd) |
| bool | inheritingCtorHasParams (const InheritedConstructor &inherited, CXXCtorType type) |
| Determine if a C++ inheriting constructor should have parameters matching those of its inherited constructor. | |
| const CIRGenFunctionInfo & | arrangeGlobalDeclaration (GlobalDecl gd) |
| void | updateCompletedType (const clang::TagDecl *td) |
| UpdateCompletedType - when we find the full definition for a TagDecl, replace the 'opaque' type we previously made for it if applicable. | |
| const CIRGenFunctionInfo & | arrangeFunctionDeclaration (const clang::FunctionDecl *fd) |
| Free functions are functions that are compatible with an ordinary C function pointer type. | |
| bool | isZeroInitializable (clang::QualType ty) |
| Return whether a type can be zero-initialized (in the C++ sense) with an LLVM zeroinitializer. | |
| bool | isZeroInitializable (const RecordDecl *rd) |
| const CIRGenFunctionInfo & | arrangeCXXConstructorCall (const CallArgList &args, const clang::CXXConstructorDecl *d, clang::CXXCtorType ctorKind, unsigned extraPrefixArgs, unsigned extraSuffixArgs, bool passProtoArgs=true) |
| Arrange a call to a C++ method, passing the given arguments. | |
| const CIRGenFunctionInfo & | arrangeCXXMethodCall (const CallArgList &args, const clang::FunctionProtoType *type, RequiredArgs required, unsigned numPrefixArgs) |
| Arrange a call to a C++ method, passing the given arguments. | |
| const CIRGenFunctionInfo & | arrangeCXXMethodDeclaration (const clang::CXXMethodDecl *md) |
| C++ methods have some special rules and also have implicit parameters. | |
| const CIRGenFunctionInfo & | arrangeCXXStructorDeclaration (clang::GlobalDecl gd) |
| const CIRGenFunctionInfo & | arrangeCXXMethodType (const clang::CXXRecordDecl *rd, const clang::FunctionProtoType *ftp, const clang::CXXMethodDecl *md) |
| Arrange the argument and result information for a call to an unknown C++ non-static member function of the given abstract type. | |
| const CIRGenFunctionInfo & | arrangeFreeFunctionCall (const CallArgList &args, const FunctionType *fnType) |
| const CIRGenFunctionInfo & | arrangeCIRFunctionInfo (CanQualType returnType, bool isInstanceMethod, llvm::ArrayRef< CanQualType > argTypes, FunctionType::ExtInfo info, RequiredArgs required) |
| const CIRGenFunctionInfo & | arrangeFreeFunctionType (CanQual< FunctionProtoType > fpt) |
| const CIRGenFunctionInfo & | arrangeFreeFunctionType (CanQual< FunctionNoProtoType > fnpt) |
| unsigned | getTargetAddressSpace (QualType ty) const |
Public Attributes | |
| TypeCacheTy | typeCache |
This class organizes the cross-module state that is used while lowering AST types to CIR types.
Definition at line 50 of file CIRGenTypes.h.
| using clang::CIRGen::CIRGenTypes::TypeCacheTy = llvm::DenseMap<const clang::Type *, mlir::Type> |
This map of clang::Type to mlir::Type (which includes CIR type) is a cache of types that have already been processed.
Definition at line 104 of file CIRGenTypes.h.
| CIRGenTypes::CIRGenTypes | ( | CIRGenModule & | cgm | ) |
Definition at line 19 of file CIRGenTypes.cpp.
References getABIInfo(), getASTContext(), and getBuilder().
| CIRGenTypes::~CIRGenTypes | ( | ) |
Definition at line 24 of file CIRGenTypes.cpp.
| const CIRGenFunctionInfo & CIRGenTypes::arrangeCIRFunctionInfo | ( | CanQualType | returnType, |
| bool | isInstanceMethod, | ||
| llvm::ArrayRef< CanQualType > | argTypes, | ||
| FunctionType::ExtInfo | info, | ||
| RequiredArgs | required ) |
Definition at line 714 of file CIRGenTypes.cpp.
References clang::CIRGen::CIRGenFunctionInfo::argTypesBegin(), clang::CIRGen::CIRGenFunctionInfo::argTypesEnd(), clang::CIRGen::CIRGenFunctionInfo::create(), clang::CIRGen::CIRGenFunctionInfo::getReturnType(), clang::CanQual< T >::isCanonicalAsParam(), clang::isInstanceMethod(), cir::MissingFeatures::opCallCallConv(), and clang::CIRGen::CIRGenFunctionInfo::Profile().
Referenced by arrangeCIRFunctionInfo(), arrangeCXXConstructorCall(), arrangeCXXMethodCall(), arrangeCXXStructorDeclaration(), arrangeFreeFunctionLikeCall(), arrangeFreeFunctionType(), and arrangeFunctionDeclaration().
| const CIRGenFunctionInfo & CIRGenTypes::arrangeCXXConstructorCall | ( | const CallArgList & | args, |
| const clang::CXXConstructorDecl * | d, | ||
| clang::CXXCtorType | ctorKind, | ||
| unsigned | extraPrefixArgs, | ||
| unsigned | extraSuffixArgs, | ||
| bool | passProtoArgs = true ) |
Arrange a call to a C++ method, passing the given arguments.
extraPrefixArgs is the number of ABI-specific args passed after the this parameter. passProtoArgs indicates whether args has args for the parameters in the given CXXConstructorDecl.
Definition at line 946 of file CIRGenCall.cpp.
References clang::CIRGen::RequiredArgs::All, arrangeCIRFunctionInfo(), getFormalType(), clang::CIRGen::RequiredArgs::getFromProtoWithExtraSlots(), clang::FunctionDecl::getSourceRange(), cir::MissingFeatures::opCallCIRGenFuncInfoExtParamInfo(), and cir::MissingFeatures::opCallFnInfoOpts().
| const CIRGenFunctionInfo & CIRGenTypes::arrangeCXXMethodCall | ( | const CallArgList & | args, |
| const clang::FunctionProtoType * | type, | ||
| RequiredArgs | required, | ||
| unsigned | numPrefixArgs ) |
Arrange a call to a C++ method, passing the given arguments.
numPrefixArgs is the number of the ABI-specific prefix arguments we have. It does not count this.
Definition at line 984 of file CIRGenCall.cpp.
References arrangeCIRFunctionInfo(), clang::Type::getCanonicalTypeUnqualified(), clang::FunctionType::getExtInfo(), clang::FunctionType::getReturnType(), cir::MissingFeatures::opCallExtParameterInfo(), and cir::MissingFeatures::opCallFnInfoOpts().
| const CIRGenFunctionInfo & CIRGenTypes::arrangeCXXMethodDeclaration | ( | const clang::CXXMethodDecl * | md | ) |
C++ methods have some special rules and also have implicit parameters.
Arrange the argument and result information for a declaration or definition of the given C++ non-static member function.
The member function must be an ordinary function, i.e. not a constructor or destructor.
Definition at line 1012 of file CIRGenCall.cpp.
References arrangeCXXMethodType(), arrangeFreeFunctionType(), cir::MissingFeatures::cudaSupport(), clang::CanQual< T >::getAs(), clang::Type::getCanonicalTypeUnqualified(), clang::ValueDecl::getType(), clang::isa(), and clang::CXXMethodDecl::isInstance().
Referenced by arrangeFunctionDeclaration(), clang::CIRGen::CIRGenModule::emitMemberPointerConstant(), and clang::CIRGen::CIRGenModule::getAddrOfGlobal().
| const CIRGenFunctionInfo & CIRGenTypes::arrangeCXXMethodType | ( | const clang::CXXRecordDecl * | rd, |
| const clang::FunctionProtoType * | ftp, | ||
| const clang::CXXMethodDecl * | md ) |
Arrange the argument and result information for a call to an unknown C++ non-static member function of the given abstract type.
(A null RD means we don't have any meaningful "this" argument type, so fall back to a generic pointer type). The member fucntion must be an ordinary function, i.e. not a constructor or destructor.
Definition at line 1035 of file CIRGenCall.cpp.
References deriveThisType(), clang::CanQual< T >::getAs(), clang::Type::getCanonicalTypeUnqualified(), and cir::MissingFeatures::opCallFnInfoOpts().
Referenced by arrangeCXXMethodDeclaration().
| const CIRGenFunctionInfo & CIRGenTypes::arrangeCXXStructorDeclaration | ( | clang::GlobalDecl | gd | ) |
Definition at line 796 of file CIRGenCall.cpp.
References clang::CIRGen::RequiredArgs::All, appendParameterTypes(), arrangeCIRFunctionInfo(), clang::cast(), deriveThisType(), clang::GlobalDecl::getCtorType(), clang::GlobalDecl::getDecl(), getFormalType(), inheritingCtorHasParams(), cir::MissingFeatures::opCallCIRGenFuncInfoExtParamInfo(), and cir::MissingFeatures::opCallFnInfoOpts().
Referenced by arrangeGlobalDeclaration(), clang::CIRGen::CIRGenModule::codegenCXXStructor(), clang::CIRGen::CIRGenModule::emitAliasForGlobal(), and clang::CIRGen::CIRGenModule::getAddrAndTypeOfCXXStructor().
| const CIRGenFunctionInfo & CIRGenTypes::arrangeFreeFunctionCall | ( | const CallArgList & | args, |
| const FunctionType * | fnType ) |
Definition at line 1003 of file CIRGenCall.cpp.
References arrangeFreeFunctionLikeCall().
Referenced by emitNewDeleteCall().
| const CIRGenFunctionInfo & CIRGenTypes::arrangeFreeFunctionType | ( | CanQual< FunctionNoProtoType > | fnpt | ) |
Definition at line 1133 of file CIRGenCall.cpp.
References arrangeCIRFunctionInfo(), clang::CanQual< T >::getUnqualifiedType(), and cir::MissingFeatures::opCallFnInfoOpts().
| const CIRGenFunctionInfo & CIRGenTypes::arrangeFreeFunctionType | ( | CanQual< FunctionProtoType > | fpt | ) |
Definition at line 1125 of file CIRGenCall.cpp.
References cir::MissingFeatures::opCallFnInfoOpts().
Referenced by arrangeCXXMethodDeclaration(), and arrangeFunctionDeclaration().
| const CIRGenFunctionInfo & CIRGenTypes::arrangeFunctionDeclaration | ( | const clang::FunctionDecl * | fd | ) |
Free functions are functions that are compatible with an ordinary C function pointer type.
Arrange the argument and result information for the declaration or definition of the given function.
Definition at line 1052 of file CIRGenCall.cpp.
References clang::CIRGen::RequiredArgs::All, arrangeCIRFunctionInfo(), arrangeCXXMethodDeclaration(), arrangeFreeFunctionType(), clang::CanQual< T >::castAs(), cir::MissingFeatures::cudaSupport(), clang::CanQual< T >::getAs(), clang::Type::getCanonicalTypeUnqualified(), clang::ValueDecl::getType(), clang::isa(), cir::MissingFeatures::opCallCIRGenFuncInfoExtParamInfo(), and cir::MissingFeatures::opCallFnInfoOpts().
Referenced by arrangeGlobalDeclaration().
| const CIRGenFunctionInfo & CIRGenTypes::arrangeGlobalDeclaration | ( | GlobalDecl | gd | ) |
Definition at line 747 of file CIRGenTypes.cpp.
References arrangeCXXStructorDeclaration(), arrangeFunctionDeclaration(), clang::cast(), clang::GlobalDecl::getDecl(), and clang::isa().
Referenced by clang::CIRGen::CIRGenModule::emitGlobalFunctionDefinition(), clang::CIRGen::CIRGenModule::getAddrOfGlobal(), and getFunctionType().
|
inline |
Add a record type key to the safe-to-convert cache.
Definition at line 122 of file CIRGenTypes.h.
Referenced by isSafeToConvert().
| std::unique_ptr< CIRGenRecordLayout > CIRGenTypes::computeRecordLayout | ( | const clang::RecordDecl * | rd, |
| cir::RecordType * | ty ) |
Definition at line 683 of file CIRGenRecordLayoutBuilder.cpp.
References cir::MissingFeatures::astRecordDeclAttr(), convertRecordArgPassingKind(), clang::Decl::dump(), clang::RecordDecl::getArgPassingRestrictions(), getASTContext(), clang::ASTRecordLayout::getNonVirtualSize(), getRecordTypeName(), clang::ASTRecordLayout::getSize(), clang::Decl::hasAttr(), and clang::TagDecl::isUnion().
Referenced by convertRecordDeclType().
| mlir::Type CIRGenTypes::convertRecordDeclType | ( | const clang::RecordDecl * | recordDecl | ) |
Lay out a tagged decl type like struct or union.
Definition at line 230 of file CIRGenTypes.cpp.
References computeRecordLayout(), convertRecordDeclType(), clang::ast_matchers::cxxRecordDecl, clang::RecordDecl::getDefinition(), getRecordTypeName(), clang::TagDecl::isCompleteDefinition(), isSafeToConvert(), and clang::CIRGen::Type.
Referenced by convertRecordDeclType(), convertType(), getCIRGenRecordLayout(), and updateCompletedType().
| mlir::Type CIRGenTypes::convertType | ( | clang::QualType | type | ) |
Convert a Clang type into a mlir::Type.
Definition at line 294 of file CIRGenTypes.cpp.
References clang::cast(), clang::Type::castAsEnumDecl(), convertRecordDeclType(), convertType(), convertTypeForMem(), clang::QualType::getAddressSpace(), clang::NestedNameSpecifier::getAsRecordDecl(), clang::NestedNameSpecifier::getAsType(), clang::ArrayType::getElementType(), clang::VectorType::getElementType(), getFunctionType(), clang::ArrayType::getIndexTypeCVRQualifiers(), getKind(), getMLIRContext(), clang::VectorType::getNumElements(), clang::PointerType::getPointeeType(), clang::ReferenceType::getPointeeType(), clang::ConstantArrayType::getSize(), clang::Type::getTypeClass(), clang::Type::isConstantMatrixType(), cir::isSized(), clang::ast_matchers::recordType, clang::CIRGen::Type, clang::ast_matchers::type, and typeCache.
Referenced by convertType(), convertTypeForMem(), getFunctionType(), and updateCompletedType().
| mlir::Type CIRGenTypes::convertTypeForMem | ( | clang::QualType | qualType, |
| bool | forBitField = false ) |
Convert type T into an mlir::Type.
This differs from convertType in that it is used to convert to the memory representation for a type. For example, the scalar representation for bool is i1, but the memory representation is usually i8 or i32, depending on the target.
Definition at line 644 of file CIRGenTypes.cpp.
References convertType(), and clang::ast_matchers::qualType.
Referenced by convertType(), determineNoUndef(), clang::CIRGen::CIRGenFunction::emitDeclRefLValue(), clang::CIRGen::CIRGenModule::getAddrOfGlobalTemporary(), clang::CIRGen::CIRGenModule::getAddrOfGlobalVar(), clang::CIRGen::CIRGenModule::getAddrOfGlobalVarAttr(), clang::CIRGen::CIRGenModule::getOrCreateCIRGlobal(), and clang::CIRGen::CIRGenModule::getOrCreateStaticVarDecl().
| CanQualType CIRGenTypes::deriveThisType | ( | const clang::CXXRecordDecl * | rd, |
| const clang::CXXMethodDecl * | md ) |
Derives the 'this' type for CIRGen purposes, i.e.
ignoring method CVR qualification.
ignoring method CVR qualification. Either or both of rd and md may be null. A null rd indicates that there is no meaningful 'this' type, and a null md can occur when calling a method pointer.
Definition at line 844 of file CIRGenCall.cpp.
References clang::CanQual< Type >::CreateUnsafe(), clang::Qualifiers::getAddressSpace(), getASTContext(), clang::ASTContext::getCanonicalTagType(), clang::CXXMethodDecl::getMethodQualifiers(), clang::ASTContext::getPointerType(), and clang::ASTContext::VoidTy.
Referenced by arrangeCXXMethodType(), arrangeCXXStructorDeclaration(), and commonBuildCXXMemberOrOperatorCall().
|
inline |
Definition at line 126 of file CIRGenTypes.h.
Referenced by CIRGenTypes().
|
inline |
Definition at line 108 of file CIRGenTypes.h.
Referenced by arrangeFreeFunctionLikeCall(), CIRGenTypes(), computeRecordLayout(), deriveThisType(), getTargetAddressSpace(), inheritingCtorHasParams(), isSafeToConvert(), and isSafeToConvert().
|
inline |
Definition at line 89 of file CIRGenTypes.h.
Referenced by CIRGenTypes().
|
inline |
Definition at line 90 of file CIRGenTypes.h.
Referenced by appendParameterTypes().
| const CIRGenRecordLayout & CIRGenTypes::getCIRGenRecordLayout | ( | const clang::RecordDecl * | rd | ) |
Return record layout info for the given record decl.
Definition at line 665 of file CIRGenTypes.cpp.
References convertRecordDeclType().
Referenced by emitNullConstant(), emitNullConstantForBase(), and isZeroInitializable().
| cir::FuncType CIRGenTypes::getFunctionType | ( | clang::GlobalDecl | gd | ) |
Definition at line 53 of file CIRGenCall.cpp.
References arrangeGlobalDeclaration(), and getFunctionType().
| cir::FuncType CIRGenTypes::getFunctionType | ( | const CIRGenFunctionInfo & | info | ) |
Get the CIR function type for.
Definition at line 58 of file CIRGenCall.cpp.
References convertType(), clang::CIRGen::CIRGenFunctionInfo::getNumRequiredArgs(), clang::CIRGen::CIRGenFunctionInfo::getReturnType(), clang::CIRGen::CIRGenFunctionInfo::isVariadic(), and clang::CIRGen::CIRGenFunctionInfo::requiredArguments().
Referenced by clang::CIRGen::CIRGenModule::codegenCXXStructor(), convertType(), clang::CIRGen::CIRGenModule::emitAliasForGlobal(), clang::CIRGen::CIRGenFunction::emitCall(), clang::CIRGen::CIRGenFunction::emitCall(), clang::CIRGen::CIRGenModule::emitGlobalFunctionDefinition(), clang::CIRGen::CIRGenModule::emitMemberPointerConstant(), clang::CIRGen::CIRGenModule::getAddrAndTypeOfCXXStructor(), clang::CIRGen::CIRGenModule::getAddrOfGlobal(), and getFunctionType().
| mlir::MLIRContext & CIRGenTypes::getMLIRContext | ( | ) | const |
Definition at line 29 of file CIRGenTypes.cpp.
Referenced by convertType().
| std::string CIRGenTypes::getRecordTypeName | ( | const clang::RecordDecl * | , |
| llvm::StringRef | suffix ) |
Definition at line 99 of file CIRGenTypes.cpp.
References clang::PrintingPolicy::AlwaysIncludeTypeForTemplateArgument, clang::PrintingPolicy::None, clang::QualType::print(), clang::PrintingPolicy::PrintAsCanonical, clang::ast_matchers::recordDecl, clang::PrintingPolicy::SuppressInlineNamespace, clang::PrintingPolicy::SuppressTagKeyword, and clang::ast_matchers::typedefNameDecl.
Referenced by computeRecordLayout(), and convertRecordDeclType().
Definition at line 798 of file CIRGenTypes.cpp.
References clang::QualType::getAddressSpace(), getASTContext(), clang::ASTContext::getTargetAddressSpace(), clang::QualType::hasAddressSpace(), and clang::Type::isFunctionType().
| bool CIRGenTypes::inheritingCtorHasParams | ( | const InheritedConstructor & | inherited, |
| CXXCtorType | type ) |
Determine if a C++ inheriting constructor should have parameters matching those of its inherited constructor.
Definition at line 1521 of file CIRGenCall.cpp.
References clang::ConstructorUsingShadowDecl::constructsVirtualBase(), clang::Ctor_Complete, getASTContext(), clang::TargetInfo::getCXXABI(), clang::InheritedConstructor::getShadowDecl(), clang::ASTContext::getTargetInfo(), clang::TargetCXXABI::hasConstructorVariants(), and clang::ast_matchers::type.
Referenced by arrangeCXXStructorDeclaration(), clang::CIRGen::CIRGenFunction::buildFunctionArgList(), and clang::CIRGen::CIRGenFunction::emitCXXConstructorCall().
|
inline |
Check if a record type key is in the safe-to-convert cache.
Definition at line 117 of file CIRGenTypes.h.
Referenced by isSafeToConvert().
| bool CIRGenTypes::isFuncParamTypeConvertible | ( | clang::QualType | type | ) |
Return true if the specified type in a function parameter or result position can be converted to a CIR type at this point.
This boils down to being whether it is complete, as well as whether we've temporarily deferred expanding the type because we're in a recursive context.
Definition at line 37 of file CIRGenTypes.cpp.
References clang::ast_matchers::tagType, and clang::ast_matchers::type.
Referenced by isFuncTypeConvertible().
| bool CIRGenTypes::isFuncTypeConvertible | ( | const clang::FunctionType * | ft | ) |
Utility to check whether a function type can be converted to a CIR type (i.e.
Code to verify a given function type is complete, i.e.
doesn't depend on an incomplete tag type).
the return type and all of the parameter types are complete. Also check to see if we are in a RS_StructPointer context, and if so whether any struct types have been pended. If so, we don't want to ask the ABI lowering code to handle a type that cannot be converted to a CIR type.
Definition at line 58 of file CIRGenTypes.cpp.
References clang::FunctionType::getReturnType(), and isFuncParamTypeConvertible().
|
inline |
Definition at line 112 of file CIRGenTypes.h.
Referenced by isSafeToConvert().
| bool CIRGenTypes::isRecordLayoutComplete | ( | const clang::Type * | ty | ) | const |
Return true if the specified type is already completely laid out.
Definition at line 126 of file CIRGenTypes.cpp.
References clang::CIRGen::Type.
Referenced by isSafeToConvert().
| bool CIRGenTypes::isZeroInitializable | ( | clang::QualType | ty | ) |
Return whether a type can be zero-initialized (in the C++ sense) with an LLVM zeroinitializer.
Definition at line 684 of file CIRGenTypes.cpp.
References clang::Type::getAs(), clang::Type::getAsRecordDecl(), clang::isa(), and isZeroInitializable().
Referenced by isZeroInitializable().
| bool CIRGenTypes::isZeroInitializable | ( | const RecordDecl * | rd | ) |
Definition at line 710 of file CIRGenTypes.cpp.
References getCIRGenRecordLayout(), and clang::CIRGen::CIRGenRecordLayout::isZeroInitializable().
|
inline |
Definition at line 111 of file CIRGenTypes.h.
Referenced by isSafeToConvert().
| void CIRGenTypes::updateCompletedType | ( | const clang::TagDecl * | td | ) |
UpdateCompletedType - when we find the full definition for a TagDecl, replace the 'opaque' type we previously made for it if applicable.
Definition at line 761 of file CIRGenTypes.cpp.
References clang::cast(), convertRecordDeclType(), convertType(), cir::MissingFeatures::generateDebugInfo(), and typeCache.
| TypeCacheTy clang::CIRGen::CIRGenTypes::typeCache |
Definition at line 105 of file CIRGenTypes.h.
Referenced by convertType(), and updateCompletedType().