From aa87b4eab1ad673ec2cb5189e2cfc5776b2b35c8 Mon Sep 17 00:00:00 2001 From: Anders Carlsson Date: Thu, 11 Mar 2010 00:21:21 +0000 Subject: [PATCH] Remove the IndirectPrimary parameter in LayoutVirtualBases; it's already there as a member variable. llvm-svn: 98211 --- clang/lib/AST/RecordLayoutBuilder.cpp | 14 +++++--------- clang/lib/AST/RecordLayoutBuilder.h | 3 +-- 2 files changed, 6 insertions(+), 11 deletions(-) diff --git a/clang/lib/AST/RecordLayoutBuilder.cpp b/clang/lib/AST/RecordLayoutBuilder.cpp index 0253327d09a3..12e9f0451263 100644 --- a/clang/lib/AST/RecordLayoutBuilder.cpp +++ b/clang/lib/AST/RecordLayoutBuilder.cpp @@ -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 &mark, - llvm::SmallSet &IndirectPrimary) { + llvm::SmallSet &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 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 diff --git a/clang/lib/AST/RecordLayoutBuilder.h b/clang/lib/AST/RecordLayoutBuilder.h index ede75dd8fa55..80bf49d05169 100644 --- a/clang/lib/AST/RecordLayoutBuilder.h +++ b/clang/lib/AST/RecordLayoutBuilder.h @@ -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 &mark, - llvm::SmallSet &IndirectPrimary); + llvm::SmallSet &mark); /// LayoutVirtualBase - Lays out a single virtual base. void LayoutVirtualBase(const CXXRecordDecl *RD);