summaryrefslogtreecommitdiffstats
path: root/clang/lib/AST/RecordLayoutBuilder.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'clang/lib/AST/RecordLayoutBuilder.cpp')
-rw-r--r--clang/lib/AST/RecordLayoutBuilder.cpp15
1 files changed, 9 insertions, 6 deletions
diff --git a/clang/lib/AST/RecordLayoutBuilder.cpp b/clang/lib/AST/RecordLayoutBuilder.cpp
index 7117a02d659..a9f9f108e70 100644
--- a/clang/lib/AST/RecordLayoutBuilder.cpp
+++ b/clang/lib/AST/RecordLayoutBuilder.cpp
@@ -1203,7 +1203,7 @@ void RecordLayoutBuilder::Layout(const ObjCInterfaceDecl *D) {
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 @@ ASTContext::getASTRecordLayout(const RecordDecl *D) const {
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 @@ ASTContext::getASTRecordLayout(const RecordDecl *D) const {
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 @@ ASTContext::getObjCLayout(const ObjCInterfaceDecl *D,
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 @@ static void DumpCXXRecordLayout(llvm::raw_ostream &OS,
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 @@ void ASTContext::DumpRecordLayout(const RecordDecl *RD,
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 << ", ";
OpenPOWER on IntegriCloud