diff --git a/lib/CodeGen/CGRecordLayout.h b/lib/CodeGen/CGRecordLayout.h
index ffdbc29..b7efe5a 100644
--- a/lib/CodeGen/CGRecordLayout.h
+++ b/lib/CodeGen/CGRecordLayout.h
@@ -14,7 +14,7 @@
 #include "clang/AST/Decl.h"
 namespace llvm {
   class raw_ostream;
-  class Type;
+  class StructType;
 }
 
 namespace clang {
@@ -173,11 +173,11 @@
 
 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 @@
   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;
   }
 
diff --git a/lib/CodeGen/CGRecordLayoutBuilder.cpp b/lib/CodeGen/CGRecordLayoutBuilder.cpp
index 9e45df8..ce42a6a 100644
--- a/lib/CodeGen/CGRecordLayoutBuilder.cpp
+++ b/lib/CodeGen/CGRecordLayoutBuilder.cpp
@@ -733,11 +733,11 @@
 
   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;
