]> granicus.if.org Git - clang/commitdiff
Convert NonVirtualSize to CharUnits from bits. No change in functionality
authorKen Dyck <kd@kendyck.com>
Wed, 16 Feb 2011 01:52:01 +0000 (01:52 +0000)
committerKen Dyck <kd@kendyck.com>
Wed, 16 Feb 2011 01:52:01 +0000 (01:52 +0000)
intended.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@125639 91177308-0d34-0410-b5e6-96231b3b80d8

lib/AST/RecordLayoutBuilder.cpp

index a32b7814fb88febf4a6b650577f5ce941dc6b35e..17e3fe69f4a62c601b5aaed8547b83cc69ceaf08 100644 (file)
@@ -577,7 +577,7 @@ protected:
   /// DataSize - The data size of the record being laid out.
   uint64_t DataSize;
 
-  uint64_t NonVirtualSize;
+  CharUnits NonVirtualSize;
   CharUnits NonVirtualAlignment;
 
   /// PrimaryBase - the primary base class (if one exists) of the class
@@ -613,8 +613,9 @@ protected:
     : Context(Context), EmptySubobjects(EmptySubobjects), Size(0), Alignment(8),
       UnpackedAlignment(Alignment), Packed(false), IsUnion(false),
       IsMac68kAlign(false), UnfilledBitsInLastByte(0), MaxFieldAlignment(0),
-      DataSize(0), NonVirtualSize(0), NonVirtualAlignment(CharUnits::One()), 
-      PrimaryBase(0), PrimaryBaseIsVirtual(false), FirstNearlyEmptyVBase(0) { }
+      DataSize(0), NonVirtualSize(CharUnits::Zero()), 
+      NonVirtualAlignment(CharUnits::One()), PrimaryBase(0), 
+      PrimaryBaseIsVirtual(false), FirstNearlyEmptyVBase(0) { }
 
   void Layout(const RecordDecl *D);
   void Layout(const CXXRecordDecl *D);
@@ -1163,7 +1164,7 @@ void RecordLayoutBuilder::Layout(const CXXRecordDecl *RD) {
 
   LayoutFields(RD);
 
-  NonVirtualSize = Size;
+  NonVirtualSize = Context.toCharUnitsFromBits(Size);
   NonVirtualAlignment = Context.toCharUnitsFromBits(Alignment);
 
   // Lay out the virtual bases and add the primary virtual base offsets.
@@ -1677,8 +1678,9 @@ ASTContext::getASTRecordLayout(const RecordDecl *D) const {
     // FIXME: This should be done in FinalizeLayout.
     uint64_t DataSize =
       IsPODForThePurposeOfLayout ? Builder->Size : Builder->DataSize;
-    uint64_t NonVirtualSize =
-      IsPODForThePurposeOfLayout ? DataSize : Builder->NonVirtualSize;
+    CharUnits NonVirtualSize =
+      IsPODForThePurposeOfLayout ? 
+        toCharUnitsFromBits(DataSize) : Builder->NonVirtualSize;
 
     CharUnits RecordSize = toCharUnitsFromBits(Builder->Size);
     NewEntry =
@@ -1687,7 +1689,7 @@ ASTContext::getASTRecordLayout(const RecordDecl *D) const {
                                   toCharUnitsFromBits(DataSize), 
                                   Builder->FieldOffsets.data(),
                                   Builder->FieldOffsets.size(),
-                                  toCharUnitsFromBits(NonVirtualSize),
+                                  NonVirtualSize,
                                   Builder->NonVirtualAlignment,
                                   EmptySubobjects.SizeOfLargestEmptySubobject,
                                   Builder->PrimaryBase,