summaryrefslogtreecommitdiffstats
path: root/clang
diff options
context:
space:
mode:
authorAnders Carlsson <andersca@mac.com>2009-09-26 01:34:51 +0000
committerAnders Carlsson <andersca@mac.com>2009-09-26 01:34:51 +0000
commit47680d8040b7a752960c60ce33addfb25d13e76f (patch)
tree8f2fe7c9dcd7d24c9a0df90873f4cc7f120f3a9f /clang
parent7f78d85be4fc2f8ccda63cba546dad7c9ec8267b (diff)
downloadbcm5719-llvm-47680d8040b7a752960c60ce33addfb25d13e76f.tar.gz
bcm5719-llvm-47680d8040b7a752960c60ce33addfb25d13e76f.zip
Rename NextOffset to DataSize.
llvm-svn: 82832
Diffstat (limited to 'clang')
-rw-r--r--clang/lib/AST/RecordLayoutBuilder.cpp24
-rw-r--r--clang/lib/AST/RecordLayoutBuilder.h9
2 files changed, 20 insertions, 13 deletions
diff --git a/clang/lib/AST/RecordLayoutBuilder.cpp b/clang/lib/AST/RecordLayoutBuilder.cpp
index 1b06bceef9b..ec0210b36a9 100644
--- a/clang/lib/AST/RecordLayoutBuilder.cpp
+++ b/clang/lib/AST/RecordLayoutBuilder.cpp
@@ -23,7 +23,7 @@ using namespace clang;
ASTRecordLayoutBuilder::ASTRecordLayoutBuilder(ASTContext &Ctx)
: Ctx(Ctx), Size(0), Alignment(8), Packed(false), MaxFieldAlignment(0),
- NextOffset(0), IsUnion(false), NonVirtualSize(0), NonVirtualAlignment(8),
+ DataSize(0), IsUnion(false), NonVirtualSize(0), NonVirtualAlignment(8),
PrimaryBase(0), PrimaryBaseWasVirtual(false) {}
/// LayoutVtable - Lay out the vtable and set PrimaryBase.
@@ -38,7 +38,7 @@ void ASTRecordLayoutBuilder::LayoutVtable(const CXXRecordDecl *RD) {
int AS = 0;
UpdateAlignment(Ctx.Target.getPointerAlign(AS));
Size += Ctx.Target.getPointerWidth(AS);
- NextOffset = Size;
+ DataSize = Size;
}
}
@@ -377,7 +377,7 @@ uint64_t ASTRecordLayoutBuilder::LayoutBase(const CXXRecordDecl *RD) {
unsigned BaseAlign = BaseInfo.getNonVirtualAlign();
// Round up the current record size to the base's alignment boundary.
- uint64_t Offset = llvm::RoundUpToAlignment(NextOffset, BaseAlign);
+ uint64_t Offset = llvm::RoundUpToAlignment(DataSize, BaseAlign);
// Try to place the base.
while (true) {
@@ -388,10 +388,10 @@ uint64_t ASTRecordLayoutBuilder::LayoutBase(const CXXRecordDecl *RD) {
}
if (!RD->isEmpty()) {
- // Remember the next available offset.
- NextOffset = Offset + BaseInfo.getNonVirtualSize();
+ // Update the data size.
+ DataSize = Offset + BaseInfo.getNonVirtualSize();
- Size = std::max(Size, NextOffset);
+ Size = std::max(Size, DataSize);
} else
Size = std::max(Size, Offset + BaseInfo.getSize());
@@ -480,7 +480,7 @@ void ASTRecordLayoutBuilder::Layout(const ObjCInterfaceDecl *D,
// We start laying out ivars not at the end of the superclass
// structure, but at the next byte following the last field.
Size = llvm::RoundUpToAlignment(SL.getDataSize(), 8);
- NextOffset = Size;
+ DataSize = Size;
}
Packed = D->hasAttr<PackedAttr>();
@@ -513,7 +513,7 @@ void ASTRecordLayoutBuilder::LayoutFields(const RecordDecl *D) {
void ASTRecordLayoutBuilder::LayoutField(const FieldDecl *D) {
bool FieldPacked = Packed;
- uint64_t FieldOffset = IsUnion ? 0 : NextOffset;
+ uint64_t FieldOffset = IsUnion ? 0 : DataSize;
uint64_t FieldSize;
unsigned FieldAlign;
@@ -598,8 +598,8 @@ void ASTRecordLayoutBuilder::LayoutField(const FieldDecl *D) {
else
Size = FieldOffset + FieldSize;
- // Remember the next available offset.
- NextOffset = Size;
+ // Update the data size.
+ DataSize = Size;
// Remember max struct/class alignment.
UpdateAlignment(FieldAlign);
@@ -642,7 +642,7 @@ ASTRecordLayoutBuilder::ComputeLayout(ASTContext &Ctx,
// FIXME: This should be done in FinalizeLayout.
uint64_t DataSize =
- IsPODForThePurposeOfLayout ? Builder.Size : Builder.NextOffset;
+ IsPODForThePurposeOfLayout ? Builder.Size : Builder.DataSize;
uint64_t NonVirtualSize =
IsPODForThePurposeOfLayout ? DataSize : Builder.NonVirtualSize;
@@ -668,7 +668,7 @@ ASTRecordLayoutBuilder::ComputeLayout(ASTContext &Ctx,
Builder.Layout(D, Impl);
return new ASTRecordLayout(Builder.Size, Builder.Alignment,
- Builder.NextOffset,
+ Builder.DataSize,
Builder.FieldOffsets.data(),
Builder.FieldOffsets.size());
}
diff --git a/clang/lib/AST/RecordLayoutBuilder.h b/clang/lib/AST/RecordLayoutBuilder.h
index 82b64fe568a..6e4cdd2fe2e 100644
--- a/clang/lib/AST/RecordLayoutBuilder.h
+++ b/clang/lib/AST/RecordLayoutBuilder.h
@@ -31,9 +31,16 @@ class ASTRecordLayoutBuilder {
unsigned Alignment;
llvm::SmallVector<uint64_t, 16> FieldOffsets;
+ /// Packed - Whether the record is packed or not.
bool Packed;
+
+ /// MaxFieldAlignment - The maximum allowed field alignment. This is set by
+ /// #pragma pack.
unsigned MaxFieldAlignment;
- uint64_t NextOffset;
+
+ /// DataSize - The data size of the record being laid out.
+ uint64_t DataSize;
+
bool IsUnion;
uint64_t NonVirtualSize;
OpenPOWER on IntegriCloud