]> granicus.if.org Git - clang/commitdiff
Convert the RecordSize parameter of AppendTailPadding() to CharUnits to
authorKen Dyck <kd@kendyck.com>
Fri, 11 Mar 2011 02:17:05 +0000 (02:17 +0000)
committerKen Dyck <kd@kendyck.com>
Fri, 11 Mar 2011 02:17:05 +0000 (02:17 +0000)
avoid converting to bits and back again. No change in functionality
intended.

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

lib/CodeGen/CGExprConstant.cpp

index a4e054d06e4c5653b21a5cf91e3fc66016d6ad52..99554753c98a6f4face41a25f4a4c7bc106f71ba 100644 (file)
@@ -58,7 +58,7 @@ private:
 
   void AppendPadding(uint64_t NumBytes);
 
-  void AppendTailPadding(uint64_t RecordSize);
+  void AppendTailPadding(CharUnits RecordSize);
 
   void ConvertStructToPacked();
                               
@@ -280,13 +280,11 @@ void ConstStructBuilder::AppendPadding(uint64_t NumBytes) {
   NextFieldOffsetInBytes += getSizeInBytes(C);
 }
 
-void ConstStructBuilder::AppendTailPadding(uint64_t RecordSize) {
-  assert(RecordSize % 8 == 0 && "Invalid record size!");
+void ConstStructBuilder::AppendTailPadding(CharUnits RecordSize) {
+  assert(NextFieldOffsetInBytes <= RecordSize.getQuantity() && 
+         "Size mismatch!");
 
-  uint64_t RecordSizeInBytes = RecordSize / 8;
-  assert(NextFieldOffsetInBytes <= RecordSizeInBytes && "Size mismatch!");
-
-  unsigned NumPadBytes = RecordSizeInBytes - NextFieldOffsetInBytes;
+  unsigned NumPadBytes = RecordSize.getQuantity() - NextFieldOffsetInBytes;
   AppendPadding(NumPadBytes);
 }
 
@@ -394,7 +392,7 @@ bool ConstStructBuilder::Build(InitListExpr *ILE) {
   }
 
   // Append tail padding if necessary.
-  AppendTailPadding(CGM.getContext().toBits(Layout.getSize()));
+  AppendTailPadding(Layout.getSize());
 
   assert(Layout.getSize().getQuantity() == NextFieldOffsetInBytes &&
          "Tail padding mismatch!");