CGRecordLayout types are always struct types.

llvm-svn: 120106
This commit is contained in:
Anders Carlsson 2010-11-24 19:37:16 +00:00
parent 02dd5544c4
commit 36e2fa8209
2 changed files with 11 additions and 11 deletions

View File

@ -14,7 +14,7 @@
#include "clang/AST/Decl.h"
namespace llvm {
class raw_ostream;
class Type;
class StructType;
}
namespace clang {
@ -173,11 +173,11 @@ class CGRecordLayout {
private:
/// The LLVM type corresponding to this record layout.
const llvm::Type *LLVMType;
const llvm::StructType *LLVMType;
/// The LLVM type for the non-virtual part of this record layout, used for
/// laying out the record as a base.
const llvm::Type *NonVirtualBaseLLVMType;
const llvm::StructType *NonVirtualBaseLLVMType;
/// Map from (non-bit-field) struct field to the corresponding llvm struct
/// type field no. This info is populated by record builder.
@ -196,18 +196,18 @@ private:
bool IsZeroInitializable : 1;
public:
CGRecordLayout(const llvm::Type *LLVMType,
const llvm::Type *NonVirtualBaseLLVMType,
CGRecordLayout(const llvm::StructType *LLVMType,
const llvm::StructType *NonVirtualBaseLLVMType,
bool IsZeroInitializable)
: LLVMType(LLVMType), NonVirtualBaseLLVMType(NonVirtualBaseLLVMType),
IsZeroInitializable(IsZeroInitializable) {}
/// \brief Return the LLVM type associated with this record.
const llvm::Type *getLLVMType() const {
const llvm::StructType *getLLVMType() const {
return LLVMType;
}
const llvm::Type *getNonVirtualBaseLLVMType() const {
const llvm::StructType *getNonVirtualBaseLLVMType() const {
return NonVirtualBaseLLVMType;
}

View File

@ -733,11 +733,11 @@ CGRecordLayout *CodeGenTypes::ComputeRecordLayout(const RecordDecl *D) {
Builder.Layout(D);
const llvm::Type *Ty = llvm::StructType::get(getLLVMContext(),
Builder.FieldTypes,
Builder.Packed);
const llvm::StructType *Ty = llvm::StructType::get(getLLVMContext(),
Builder.FieldTypes,
Builder.Packed);
const llvm::Type *BaseTy = 0;
const llvm::StructType *BaseTy = 0;
if (isa<CXXRecordDecl>(D)) {
if (Builder.NonVirtualBaseTypeIsSameAsCompleteType)
BaseTy = Ty;