]> granicus.if.org Git - clang/commitdiff
Cleanup.
authorAnders Carlsson <andersca@mac.com>
Sat, 29 May 2010 21:10:24 +0000 (21:10 +0000)
committerAnders Carlsson <andersca@mac.com>
Sat, 29 May 2010 21:10:24 +0000 (21:10 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@105114 91177308-0d34-0410-b5e6-96231b3b80d8

lib/AST/RecordLayoutBuilder.cpp

index b58891a40ed56193cc8c41e480cf22b8f59deb14..eaf47b6f89cc52f42e81839514d02b0c8b69acc1 100644 (file)
@@ -198,12 +198,12 @@ EmptySubobjectMap::CanPlaceBaseSubobjectAtOffset(const BaseSubobjectInfo *Info,
     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 @@ EmptySubobjectMap::CanPlaceBaseSubobjectAtOffset(const BaseSubobjectInfo *Info,
     }
   }
   
-  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 @@ EmptySubobjectMap::CanPlaceBaseSubobjectAtOffset(const BaseSubobjectInfo *Info,
 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 @@ void EmptySubobjectMap::UpdateEmptyBaseSubobjects(const BaseSubobjectInfo *Info,
       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);
   }
 }