Convert RecordLayout::Alignment to CharUnits from bit units. No change in
functionality intended. 

llvm-svn: 125549
diff --git a/clang/lib/AST/ASTContext.cpp b/clang/lib/AST/ASTContext.cpp
index dcbfd9d..94f3b33 100644
--- a/clang/lib/AST/ASTContext.cpp
+++ b/clang/lib/AST/ASTContext.cpp
@@ -632,7 +632,7 @@
       const ASTRecordLayout &layout = getASTRecordLayout(field->getParent());
 
       // Start with the record's overall alignment.
-      unsigned fieldAlign = layout.getAlignment();
+      unsigned fieldAlign = toBits(layout.getAlignment());
 
       // Use the GCD of that and the offset within the record.
       uint64_t offset = layout.getFieldOffset(field->getFieldIndex());
@@ -848,7 +848,7 @@
     const ObjCInterfaceType *ObjCI = cast<ObjCInterfaceType>(T);
     const ASTRecordLayout &Layout = getASTObjCInterfaceLayout(ObjCI->getDecl());
     Width = toBits(Layout.getSize());
-    Align = Layout.getAlignment();
+    Align = toBits(Layout.getAlignment());
     break;
   }
   case Type::Record:
@@ -867,7 +867,7 @@
     const RecordType *RT = cast<RecordType>(TT);
     const ASTRecordLayout &Layout = getASTRecordLayout(RT->getDecl());
     Width = toBits(Layout.getSize());
-    Align = Layout.getAlignment();
+    Align = toBits(Layout.getAlignment());
     break;
   }
 
diff --git a/clang/lib/AST/RecordLayout.cpp b/clang/lib/AST/RecordLayout.cpp
index a6e31a7..035c48f 100644
--- a/clang/lib/AST/RecordLayout.cpp
+++ b/clang/lib/AST/RecordLayout.cpp
@@ -28,7 +28,7 @@
 }
 
 ASTRecordLayout::ASTRecordLayout(const ASTContext &Ctx, CharUnits size,
-                                 unsigned alignment, CharUnits datasize,
+                                 CharUnits alignment, CharUnits datasize,
                                  const uint64_t *fieldoffsets,
                                  unsigned fieldcount)
   : Size(size), DataSize(datasize), FieldOffsets(0), Alignment(alignment),
@@ -41,7 +41,7 @@
 
 // Constructor for C++ records.
 ASTRecordLayout::ASTRecordLayout(const ASTContext &Ctx,
-                                 CharUnits size, unsigned alignment,
+                                 CharUnits size, CharUnits alignment,
                                  CharUnits datasize,
                                  const uint64_t *fieldoffsets,
                                  unsigned fieldcount,
diff --git a/clang/lib/AST/RecordLayoutBuilder.cpp b/clang/lib/AST/RecordLayoutBuilder.cpp
index 7117a02..a9f9f10 100644
--- a/clang/lib/AST/RecordLayoutBuilder.cpp
+++ b/clang/lib/AST/RecordLayoutBuilder.cpp
@@ -1203,7 +1203,7 @@
   if (ObjCInterfaceDecl *SD = D->getSuperClass()) {
     const ASTRecordLayout &SL = Context.getASTObjCInterfaceLayout(SD);
 
-    UpdateAlignment(SL.getAlignment());
+    UpdateAlignment(Context.toBits(SL.getAlignment()));
 
     // We start laying out ivars not at the end of the superclass
     // structure, but at the next byte following the last field.
@@ -1683,7 +1683,8 @@
 
     CharUnits RecordSize = toCharUnitsFromBits(Builder->Size);
     NewEntry =
-      new (*this) ASTRecordLayout(*this, RecordSize, Builder->Alignment,
+      new (*this) ASTRecordLayout(*this, RecordSize, 
+                                  toCharUnitsFromBits(Builder->Alignment),
                                   toCharUnitsFromBits(DataSize), 
                                   Builder->FieldOffsets.data(),
                                   Builder->FieldOffsets.size(),
@@ -1700,7 +1701,8 @@
     CharUnits RecordSize = toCharUnitsFromBits(Builder.Size);
 
     NewEntry =
-      new (*this) ASTRecordLayout(*this, RecordSize, Builder.Alignment,
+      new (*this) ASTRecordLayout(*this, RecordSize, 
+                                  toCharUnitsFromBits(Builder.Alignment),
                                   toCharUnitsFromBits(Builder.Size),
                                   Builder.FieldOffsets.data(),
                                   Builder.FieldOffsets.size());
@@ -1760,7 +1762,8 @@
   CharUnits RecordSize = toCharUnitsFromBits(Builder.Size);
 
   const ASTRecordLayout *NewEntry =
-    new (*this) ASTRecordLayout(*this, RecordSize, Builder.Alignment,
+    new (*this) ASTRecordLayout(*this, RecordSize, 
+                                toCharUnitsFromBits(Builder.Alignment),
                                 toCharUnitsFromBits(Builder.DataSize),
                                 Builder.FieldOffsets.data(),
                                 Builder.FieldOffsets.size());
@@ -1859,7 +1862,7 @@
 
   OS << "  sizeof=" << Layout.getSize().getQuantity();
   OS << ", dsize=" << Layout.getDataSize().getQuantity();
-  OS << ", align=" << Layout.getAlignment() / 8 << '\n';
+  OS << ", align=" << Layout.getAlignment().getQuantity() << '\n';
   OS << "  nvsize=" << Layout.getNonVirtualSize().getQuantity();
   OS << ", nvalign=" << Layout.getNonVirtualAlign().getQuantity() << '\n';
   OS << '\n';
@@ -1880,7 +1883,7 @@
   OS << "<ASTRecordLayout\n";
   OS << "  Size:" << toBits(Info.getSize()) << "\n";
   OS << "  DataSize:" << toBits(Info.getDataSize()) << "\n";
-  OS << "  Alignment:" << Info.getAlignment() << "\n";
+  OS << "  Alignment:" << toBits(Info.getAlignment()) << "\n";
   OS << "  FieldOffsets: [";
   for (unsigned i = 0, e = Info.getFieldCount(); i != e; ++i) {
     if (i) OS << ", ";