diff options
Diffstat (limited to 'clang/lib/AST/RecordLayoutBuilder.cpp')
-rw-r--r-- | clang/lib/AST/RecordLayoutBuilder.cpp | 15 |
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 << ", "; |