[cfe-commits] r105114 - /cfe/trunk/lib/AST/RecordLayoutBuilder.cpp
Anders Carlsson
andersca at mac.com
Sat May 29 14:10:24 PDT 2010
Author: andersca
Date: Sat May 29 16:10:24 2010
New Revision: 105114
URL: http://llvm.org/viewvc/llvm-project?rev=105114&view=rev
Log:
Cleanup.
Modified:
cfe/trunk/lib/AST/RecordLayoutBuilder.cpp
Modified: cfe/trunk/lib/AST/RecordLayoutBuilder.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/AST/RecordLayoutBuilder.cpp?rev=105114&r1=105113&r2=105114&view=diff
==============================================================================
--- cfe/trunk/lib/AST/RecordLayoutBuilder.cpp (original)
+++ cfe/trunk/lib/AST/RecordLayoutBuilder.cpp Sat May 29 16:10:24 2010
@@ -198,12 +198,12 @@
return false;
// Traverse all non-virtual bases.
+ const ASTRecordLayout &Layout = Context.getASTRecordLayout(Info->Class);
for (unsigned I = 0, E = Info->Bases.size(); I != E; ++I) {
BaseSubobjectInfo* Base = Info->Bases[I];
if (Base->IsVirtual)
continue;
- const ASTRecordLayout &Layout = Context.getASTRecordLayout(Info->Class);
uint64_t BaseOffset = Offset + Layout.getBaseClassOffset(Base->Class);
if (!CanPlaceBaseSubobjectAtOffset(Base, BaseOffset))
@@ -219,16 +219,13 @@
}
}
- const ASTRecordLayout &Layout = Context.getASTRecordLayout(Info->Class);
-
// Traverse all member variables.
unsigned FieldNo = 0;
for (CXXRecordDecl::field_iterator I = Info->Class->field_begin(),
E = Info->Class->field_end(); I != E; ++I, ++FieldNo) {
const FieldDecl *FD = *I;
-
+
uint64_t FieldOffset = Offset + Layout.getFieldOffset(FieldNo);
-
if (!CanPlaceFieldSubobjectAtOffset(FD, FieldOffset))
return false;
}
@@ -239,16 +236,15 @@
void EmptySubobjectMap::UpdateEmptyBaseSubobjects(const BaseSubobjectInfo *Info,
uint64_t Offset) {
AddSubobjectAtOffset(Info->Class, Offset);
-
+
// Traverse all non-virtual bases.
+ const ASTRecordLayout &Layout = Context.getASTRecordLayout(Info->Class);
for (unsigned I = 0, E = Info->Bases.size(); I != E; ++I) {
BaseSubobjectInfo* Base = Info->Bases[I];
if (Base->IsVirtual)
continue;
-
- const ASTRecordLayout &Layout = Context.getASTRecordLayout(Info->Class);
+
uint64_t BaseOffset = Offset + Layout.getBaseClassOffset(Base->Class);
-
UpdateEmptyBaseSubobjects(Base, BaseOffset);
}
@@ -259,16 +255,13 @@
UpdateEmptyBaseSubobjects(PrimaryVirtualBaseInfo, Offset);
}
- const ASTRecordLayout &Layout = Context.getASTRecordLayout(Info->Class);
-
// Traverse all member variables.
unsigned FieldNo = 0;
for (CXXRecordDecl::field_iterator I = Info->Class->field_begin(),
E = Info->Class->field_end(); I != E; ++I, ++FieldNo) {
const FieldDecl *FD = *I;
-
+
uint64_t FieldOffset = Offset + Layout.getFieldOffset(FieldNo);
-
UpdateEmptyFieldSubobjects(FD, FieldOffset);
}
}
More information about the cfe-commits
mailing list