diff --git a/lib/CodeGen/CGRecordLayoutBuilder.cpp b/lib/CodeGen/CGRecordLayoutBuilder.cpp
index 5571e43..b9b8c9d 100644
--- a/lib/CodeGen/CGRecordLayoutBuilder.cpp
+++ b/lib/CodeGen/CGRecordLayoutBuilder.cpp
@@ -500,12 +500,12 @@
   const ASTRecordLayout &Layout = 
     Types.getContext().getASTRecordLayout(BaseDecl);
   
-  uint64_t NonVirtualSize = Layout.getNonVirtualSize();
+  CharUnits NonVirtualSize = Layout.getNonVirtualSize();
   
   AppendPadding(BaseOffset / 8, 1);
   
   // FIXME: Actually use a better type than [sizeof(BaseDecl) x i8] when we can.
-  AppendBytes(NonVirtualSize / 8);
+  AppendBytes(NonVirtualSize.getQuantity());
 }
 
 void
@@ -520,12 +520,12 @@
   const ASTRecordLayout &Layout = 
     Types.getContext().getASTRecordLayout(BaseDecl);
 
-  uint64_t NonVirtualSize = Layout.getNonVirtualSize();
+  CharUnits NonVirtualSize = Layout.getNonVirtualSize();
 
   AppendPadding(BaseOffset / 8, 1);
   
   // FIXME: Actually use a better type than [sizeof(BaseDecl) x i8] when we can.
-  AppendBytes(NonVirtualSize / 8);
+  AppendBytes(NonVirtualSize.getQuantity());
 
   // FIXME: Add the vbase field info.
 }
@@ -616,8 +616,9 @@
 CGRecordLayoutBuilder::ComputeNonVirtualBaseType(const CXXRecordDecl *RD) {
   const ASTRecordLayout &Layout = Types.getContext().getASTRecordLayout(RD);
 
+
   uint64_t AlignedNonVirtualTypeSize =
-    llvm::RoundUpToAlignment(Layout.getNonVirtualSize(),
+    llvm::RoundUpToAlignment(Layout.getNonVirtualSize().getQuantity() * 8,
                              Layout.getNonVirtualAlign()) / 8;
   
   
@@ -855,7 +856,7 @@
 
   if (BaseTy) {
     uint64_t AlignedNonVirtualTypeSizeInBits =
-      llvm::RoundUpToAlignment(Layout.getNonVirtualSize(),
+      llvm::RoundUpToAlignment(Layout.getNonVirtualSize().getQuantity() * 8,
                                Layout.getNonVirtualAlign());
 
     assert(AlignedNonVirtualTypeSizeInBits == 
