summaryrefslogtreecommitdiffstats
path: root/clang/lib/AST/RecordLayoutBuilder.cpp
diff options
context:
space:
mode:
authorKen Dyck <kd@kendyck.com>2011-02-16 01:43:15 +0000
committerKen Dyck <kd@kendyck.com>2011-02-16 01:43:15 +0000
commita2d3dda0410adfa57f0623003fb9bf8fc1455663 (patch)
tree33828b9d560fd0669050e82ff5e9b38070e6330e /clang/lib/AST/RecordLayoutBuilder.cpp
parent034d68e97d74e0727a7e6f2e0a7c9ed611ffcd2b (diff)
downloadbcm5719-llvm-a2d3dda0410adfa57f0623003fb9bf8fc1455663.tar.gz
bcm5719-llvm-a2d3dda0410adfa57f0623003fb9bf8fc1455663.zip
Convert NonVirtualAlignment to CharUnits. No change in functionality
intended. llvm-svn: 125638
Diffstat (limited to 'clang/lib/AST/RecordLayoutBuilder.cpp')
-rw-r--r--clang/lib/AST/RecordLayoutBuilder.cpp11
1 files changed, 5 insertions, 6 deletions
diff --git a/clang/lib/AST/RecordLayoutBuilder.cpp b/clang/lib/AST/RecordLayoutBuilder.cpp
index a9f9f108e70..a32b7814fb8 100644
--- a/clang/lib/AST/RecordLayoutBuilder.cpp
+++ b/clang/lib/AST/RecordLayoutBuilder.cpp
@@ -578,7 +578,7 @@ protected:
uint64_t DataSize;
uint64_t NonVirtualSize;
- unsigned NonVirtualAlignment;
+ CharUnits NonVirtualAlignment;
/// PrimaryBase - the primary base class (if one exists) of the class
/// we're laying out.
@@ -613,8 +613,8 @@ protected:
: Context(Context), EmptySubobjects(EmptySubobjects), Size(0), Alignment(8),
UnpackedAlignment(Alignment), Packed(false), IsUnion(false),
IsMac68kAlign(false), UnfilledBitsInLastByte(0), MaxFieldAlignment(0),
- DataSize(0), NonVirtualSize(0), NonVirtualAlignment(8), PrimaryBase(0),
- PrimaryBaseIsVirtual(false), FirstNearlyEmptyVBase(0) { }
+ DataSize(0), NonVirtualSize(0), NonVirtualAlignment(CharUnits::One()),
+ PrimaryBase(0), PrimaryBaseIsVirtual(false), FirstNearlyEmptyVBase(0) { }
void Layout(const RecordDecl *D);
void Layout(const CXXRecordDecl *D);
@@ -1164,7 +1164,7 @@ void RecordLayoutBuilder::Layout(const CXXRecordDecl *RD) {
LayoutFields(RD);
NonVirtualSize = Size;
- NonVirtualAlignment = Alignment;
+ NonVirtualAlignment = Context.toCharUnitsFromBits(Alignment);
// Lay out the virtual bases and add the primary virtual base offsets.
LayoutVirtualBases(RD, RD);
@@ -1679,7 +1679,6 @@ ASTContext::getASTRecordLayout(const RecordDecl *D) const {
IsPODForThePurposeOfLayout ? Builder->Size : Builder->DataSize;
uint64_t NonVirtualSize =
IsPODForThePurposeOfLayout ? DataSize : Builder->NonVirtualSize;
- uint64_t NonVirtualAlign = Builder->NonVirtualAlignment;
CharUnits RecordSize = toCharUnitsFromBits(Builder->Size);
NewEntry =
@@ -1689,7 +1688,7 @@ ASTContext::getASTRecordLayout(const RecordDecl *D) const {
Builder->FieldOffsets.data(),
Builder->FieldOffsets.size(),
toCharUnitsFromBits(NonVirtualSize),
- toCharUnitsFromBits(NonVirtualAlign),
+ Builder->NonVirtualAlignment,
EmptySubobjects.SizeOfLargestEmptySubobject,
Builder->PrimaryBase,
Builder->PrimaryBaseIsVirtual,
OpenPOWER on IntegriCloud