]> granicus.if.org Git - clang/commitdiff
Use CharUnits for argument passed to AppendPadding() from AppendBitField().
authorKen Dyck <kd@kendyck.com>
Sat, 12 Mar 2011 12:03:11 +0000 (12:03 +0000)
committerKen Dyck <kd@kendyck.com>
Sat, 12 Mar 2011 12:03:11 +0000 (12:03 +0000)
No change in functionality intended.

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

lib/CodeGen/CGExprConstant.cpp

index 01af80c84d9885cefd00fbdb6b2d7585857c74fc..0975d256ba7a5b7a60e282e04b0ff8a3ed76d2d9 100644 (file)
@@ -124,17 +124,18 @@ AppendField(const FieldDecl *Field, uint64_t FieldOffset,
 void ConstStructBuilder::AppendBitField(const FieldDecl *Field,
                                         uint64_t FieldOffset,
                                         llvm::ConstantInt *CI) {
+  const ASTContext &Context = CGM.getContext();
   if (FieldOffset > NextFieldOffsetInBytes * 8) {
     // We need to add padding.
-    uint64_t NumBytes =
-      llvm::RoundUpToAlignment(FieldOffset -
-                               NextFieldOffsetInBytes * 8, 8) / 8;
+    CharUnits PadSize = Context.toCharUnitsFromBits(
+      llvm::RoundUpToAlignment(FieldOffset - NextFieldOffsetInBytes * 8, 
+                               Context.Target.getCharAlign()));
 
-    AppendPadding(CharUnits::fromQuantity(NumBytes));
+    AppendPadding(PadSize);
   }
 
   uint64_t FieldSize =
-    Field->getBitWidth()->EvaluateAsInt(CGM.getContext()).getZExtValue();
+    Field->getBitWidth()->EvaluateAsInt(Context).getZExtValue();
 
   llvm::APInt FieldValue = CI->getValue();