diff --git a/lib/IRGen/GenStruct.cpp b/lib/IRGen/GenStruct.cpp index 1c5bd5eaf50c7..b8c647fbefc6d 100644 --- a/lib/IRGen/GenStruct.cpp +++ b/lib/IRGen/GenStruct.cpp @@ -52,7 +52,7 @@ using namespace irgen; enum class StructTypeInfoKind { LoadableStructTypeInfo, FixedStructTypeInfo, - ClangRecordTypeInfo, + LoadableClangRecordTypeInfo, NonFixedStructTypeInfo, ResilientStructTypeInfo }; @@ -292,17 +292,17 @@ namespace { }; /// A type implementation for loadable record types imported from Clang. - class ClangRecordTypeInfo final : - public StructTypeInfoBase { const clang::RecordDecl *ClangDecl; public: - ClangRecordTypeInfo(ArrayRef fields, + LoadableClangRecordTypeInfo(ArrayRef fields, unsigned explosionSize, llvm::Type *storageType, Size size, SpareBitVector &&spareBits, Alignment align, const clang::RecordDecl *clangDecl) - : StructTypeInfoBase(StructTypeInfoKind::ClangRecordTypeInfo, + : StructTypeInfoBase(StructTypeInfoKind::LoadableClangRecordTypeInfo, fields, explosionSize, storageType, size, std::move(spareBits), align, IsPOD, IsFixedSize), @@ -318,7 +318,7 @@ namespace { void initializeFromParams(IRGenFunction &IGF, Explosion ¶ms, Address addr, SILType T, bool isOutlined) const override { - ClangRecordTypeInfo::initialize(IGF, params, addr, isOutlined); + LoadableClangRecordTypeInfo::initialize(IGF, params, addr, isOutlined); } void addToAggLowering(IRGenModule &IGM, SwiftAggLowering &lowering, @@ -680,7 +680,7 @@ class ClangRecordLowering { const TypeInfo *createTypeInfo(llvm::StructType *llvmType) { llvmType->setBody(LLVMFields, /*packed*/ true); - return ClangRecordTypeInfo::create(FieldInfos, NextExplosionIndex, + return LoadableClangRecordTypeInfo::create(FieldInfos, NextExplosionIndex, llvmType, TotalStride, std::move(SpareBits), TotalAlignment, ClangDecl); @@ -865,8 +865,8 @@ class ClangRecordLowering { #define FOR_STRUCT_IMPL(IGF, type, op, ...) do { \ auto &structTI = IGF.getTypeInfo(type); \ switch (getStructTypeInfoKind(structTI)) { \ - case StructTypeInfoKind::ClangRecordTypeInfo: \ - return structTI.as().op(IGF, __VA_ARGS__); \ + case StructTypeInfoKind::LoadableClangRecordTypeInfo: \ + return structTI.as().op(IGF, __VA_ARGS__); \ case StructTypeInfoKind::LoadableStructTypeInfo: \ return structTI.as().op(IGF, __VA_ARGS__); \ case StructTypeInfoKind::FixedStructTypeInfo: \