]> granicus.if.org Git - clang/commitdiff
Remove the IndirectPrimary parameter in LayoutVirtualBases; it's already there as...
authorAnders Carlsson <andersca@mac.com>
Thu, 11 Mar 2010 00:21:21 +0000 (00:21 +0000)
committerAnders Carlsson <andersca@mac.com>
Thu, 11 Mar 2010 00:21:21 +0000 (00:21 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98211 91177308-0d34-0410-b5e6-96231b3b80d8

lib/AST/RecordLayoutBuilder.cpp
lib/AST/RecordLayoutBuilder.h

index 0253327d09a3871e2a62a111787a2ba16aa17ca2..12e9f04512632431b807fd9c92499bc119c6f39a 100644 (file)
@@ -181,7 +181,6 @@ ASTRecordLayoutBuilder::LayoutNonVirtualBases(const CXXRecordDecl *RD) {
   
   // If we have a primary base class, lay it out.
   if (const CXXRecordDecl *Base = PrimaryBase.getBase()) {
-    printf("found primary base %s\n", Base->getQualifiedNameAsString().c_str());
     if (PrimaryBase.isVirtual()) {
       // We have a virtual primary base, insert it as an indirect primary base.
       IndirectPrimaryBases.insert(Base);
@@ -223,8 +222,7 @@ void ASTRecordLayoutBuilder::LayoutVirtualBases(const CXXRecordDecl *Class,
                                                 const CXXRecordDecl *RD,
                                                 const CXXRecordDecl *PB,
                                                 uint64_t Offset,
-                                 llvm::SmallSet<const CXXRecordDecl*, 32> &mark,
-                    llvm::SmallSet<const CXXRecordDecl*, 32> &IndirectPrimary) {
+                               llvm::SmallSet<const CXXRecordDecl*, 32> &mark) {
   for (CXXRecordDecl::base_class_const_iterator i = RD->bases_begin(),
          e = RD->bases_end(); i != e; ++i) {
     assert(!i->getType()->isDependentType() &&
@@ -239,9 +237,9 @@ void ASTRecordLayoutBuilder::LayoutVirtualBases(const CXXRecordDecl *Class,
           continue;
         // Mark it so we don't lay it out twice.
         mark.insert(Base);
-        assert (IndirectPrimary.count(Base) && "IndirectPrimary was wrong");
+        assert (IndirectPrimaryBases.count(Base) && "IndirectPrimary was wrong");
         VBases.push_back(std::make_pair(Base, Offset));
-      } else if (IndirectPrimary.count(Base)) {
+      } else if (IndirectPrimaryBases.count(Base)) {
         // Someone else will eventually lay this out.
         ;
       } else {
@@ -265,8 +263,7 @@ void ASTRecordLayoutBuilder::LayoutVirtualBases(const CXXRecordDecl *Class,
     if (Base->getNumVBases()) {
       const ASTRecordLayout &Layout = Ctx.getASTRecordLayout(Base);
       const CXXRecordDecl *PrimaryBase = Layout.getPrimaryBaseInfo().getBase();
-      LayoutVirtualBases(Class, Base, PrimaryBase, BaseOffset, mark, 
-                         IndirectPrimary);
+      LayoutVirtualBases(Class, Base, PrimaryBase, BaseOffset, mark);
     }
   }
 }
@@ -490,8 +487,7 @@ void ASTRecordLayoutBuilder::Layout(const RecordDecl *D) {
 
   if (RD) {
     llvm::SmallSet<const CXXRecordDecl*, 32> mark;
-    LayoutVirtualBases(RD, RD, PrimaryBase.getBase(), 
-                       0, mark, IndirectPrimaryBases);
+    LayoutVirtualBases(RD, RD, PrimaryBase.getBase(), 0, mark);
   }
 
   // Finally, round the size of the total struct up to the alignment of the
index ede75dd8fa55389277e02873bf9a9530896d4d98..80bf49d05169d77832cff7b95faa1f43e9bd4b3e 100644 (file)
@@ -114,8 +114,7 @@ class ASTRecordLayoutBuilder {
   /// LayoutVirtualBases - Lays out all the virtual bases.
   void LayoutVirtualBases(const CXXRecordDecl *Class, const CXXRecordDecl *RD,
                           const CXXRecordDecl *PB, uint64_t Offset, 
-                          llvm::SmallSet<const CXXRecordDecl*, 32> &mark,
-                     llvm::SmallSet<const CXXRecordDecl*, 32> &IndirectPrimary);
+                          llvm::SmallSet<const CXXRecordDecl*, 32> &mark);
 
   /// LayoutVirtualBase - Lays out a single virtual base.
   void LayoutVirtualBase(const CXXRecordDecl *RD);