Author: aaronballman Date: Fri Mar 7 12:11:58 2014 New Revision: 203261 URL: http://llvm.org/viewvc/llvm-project?rev=203261&view=rev Log: [C++11] Replacing IndirectFieldDecl iterators chain_begin() and chain_end() with iterator_range chains(). Updating all of the usages of the iterators with range-based for loops.
Modified: cfe/trunk/include/clang/AST/Decl.h cfe/trunk/include/clang/StaticAnalyzer/Core/PathSensitive/ProgramState.h cfe/trunk/lib/AST/ASTImporter.cpp cfe/trunk/lib/AST/ExprConstant.cpp cfe/trunk/lib/AST/RecordLayoutBuilder.cpp cfe/trunk/lib/CodeGen/CGClass.cpp cfe/trunk/lib/Sema/SemaDecl.cpp cfe/trunk/lib/Sema/SemaDeclCXX.cpp cfe/trunk/lib/Sema/SemaExpr.cpp cfe/trunk/lib/Sema/SemaTemplateInstantiateDecl.cpp cfe/trunk/lib/Serialization/ASTWriterDecl.cpp Modified: cfe/trunk/include/clang/AST/Decl.h URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/AST/Decl.h?rev=203261&r1=203260&r2=203261&view=diff ============================================================================== --- cfe/trunk/include/clang/AST/Decl.h (original) +++ cfe/trunk/include/clang/AST/Decl.h Fri Mar 7 12:11:58 2014 @@ -2331,8 +2331,13 @@ public: static IndirectFieldDecl *CreateDeserialized(ASTContext &C, unsigned ID); typedef NamedDecl * const *chain_iterator; - chain_iterator chain_begin() const { return Chaining; } - chain_iterator chain_end() const { return Chaining+ChainingSize; } + typedef llvm::iterator_range<chain_iterator> chain_range; + + chain_range chains() const { + return chain_range(Chaining, Chaining + ChainingSize); + } + chain_iterator chain_begin() const { return chains().begin(); } + chain_iterator chain_end() const { return chains().end(); } unsigned getChainingSize() const { return ChainingSize; } Modified: cfe/trunk/include/clang/StaticAnalyzer/Core/PathSensitive/ProgramState.h URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/StaticAnalyzer/Core/PathSensitive/ProgramState.h?rev=203261&r1=203260&r2=203261&view=diff ============================================================================== --- cfe/trunk/include/clang/StaticAnalyzer/Core/PathSensitive/ProgramState.h (original) +++ cfe/trunk/include/clang/StaticAnalyzer/Core/PathSensitive/ProgramState.h Fri Mar 7 12:11:58 2014 @@ -676,10 +676,8 @@ inline SVal ProgramState::getLValue(cons inline SVal ProgramState::getLValue(const IndirectFieldDecl *D, SVal Base) const { StoreManager &SM = *getStateManager().StoreMgr; - for (IndirectFieldDecl::chain_iterator I = D->chain_begin(), - E = D->chain_end(); - I != E; ++I) { - Base = SM.getLValueField(cast<FieldDecl>(*I), Base); + for (const auto *I : D->chains()) { + Base = SM.getLValueField(cast<FieldDecl>(I), Base); } return Base; Modified: cfe/trunk/lib/AST/ASTImporter.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/AST/ASTImporter.cpp?rev=203261&r1=203260&r2=203261&view=diff ============================================================================== --- cfe/trunk/lib/AST/ASTImporter.cpp (original) +++ cfe/trunk/lib/AST/ASTImporter.cpp Fri Mar 7 12:11:58 2014 @@ -2967,9 +2967,8 @@ Decl *ASTNodeImporter::VisitIndirectFiel new (Importer.getToContext())NamedDecl*[D->getChainingSize()]; unsigned i = 0; - for (IndirectFieldDecl::chain_iterator PI = D->chain_begin(), - PE = D->chain_end(); PI != PE; ++PI) { - Decl* D = Importer.Import(*PI); + for (auto *PI : D->chains()) { + Decl *D = Importer.Import(PI); if (!D) return 0; NamedChain[i++] = cast<NamedDecl>(D); Modified: cfe/trunk/lib/AST/ExprConstant.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/AST/ExprConstant.cpp?rev=203261&r1=203260&r2=203261&view=diff ============================================================================== --- cfe/trunk/lib/AST/ExprConstant.cpp (original) +++ cfe/trunk/lib/AST/ExprConstant.cpp Fri Mar 7 12:11:58 2014 @@ -1832,9 +1832,8 @@ static bool HandleLValueMember(EvalInfo static bool HandleLValueIndirectMember(EvalInfo &Info, const Expr *E, LValue &LVal, const IndirectFieldDecl *IFD) { - for (IndirectFieldDecl::chain_iterator C = IFD->chain_begin(), - CE = IFD->chain_end(); C != CE; ++C) - if (!HandleLValueMember(Info, E, LVal, cast<FieldDecl>(*C))) + for (const auto *C : IFD->chains()) + if (!HandleLValueMember(Info, E, LVal, cast<FieldDecl>(C))) return false; return true; } @@ -3721,10 +3720,8 @@ static bool HandleConstructorCall(Source } else if (IndirectFieldDecl *IFD = (*I)->getIndirectMember()) { // Walk the indirect field decl's chain to find the object to initialize, // and make sure we've initialized every step along it. - for (IndirectFieldDecl::chain_iterator C = IFD->chain_begin(), - CE = IFD->chain_end(); - C != CE; ++C) { - FD = cast<FieldDecl>(*C); + for (auto *C : IFD->chains()) { + FD = cast<FieldDecl>(C); CXXRecordDecl *CD = cast<CXXRecordDecl>(FD->getParent()); // Switch the union field if it differs. This happens if we had // preceding zero-initialization, and we're now initializing a union Modified: cfe/trunk/lib/AST/RecordLayoutBuilder.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/AST/RecordLayoutBuilder.cpp?rev=203261&r1=203260&r2=203261&view=diff ============================================================================== --- cfe/trunk/lib/AST/RecordLayoutBuilder.cpp (original) +++ cfe/trunk/lib/AST/RecordLayoutBuilder.cpp Fri Mar 7 12:11:58 2014 @@ -3002,10 +3002,8 @@ uint64_t ASTContext::getFieldOffset(cons const IndirectFieldDecl *IFD = cast<IndirectFieldDecl>(VD); OffsetInBits = 0; - for (IndirectFieldDecl::chain_iterator CI = IFD->chain_begin(), - CE = IFD->chain_end(); - CI != CE; ++CI) - OffsetInBits += ::getFieldOffset(*this, cast<FieldDecl>(*CI)); + for (const auto *CI : IFD->chains()) + OffsetInBits += ::getFieldOffset(*this, cast<FieldDecl>(CI)); } return OffsetInBits; Modified: cfe/trunk/lib/CodeGen/CGClass.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CGClass.cpp?rev=203261&r1=203260&r2=203261&view=diff ============================================================================== --- cfe/trunk/lib/CodeGen/CGClass.cpp (original) +++ cfe/trunk/lib/CodeGen/CGClass.cpp Fri Mar 7 12:11:58 2014 @@ -549,10 +549,8 @@ static void EmitMemberInitializer(CodeGe // If we are initializing an anonymous union field, drill down to // the field. IndirectFieldDecl *IndirectField = MemberInit->getIndirectMember(); - IndirectFieldDecl::chain_iterator I = IndirectField->chain_begin(), - IEnd = IndirectField->chain_end(); - for ( ; I != IEnd; ++I) - LHS = CGF.EmitLValueForFieldInitialization(LHS, cast<FieldDecl>(*I)); + for (const auto *I : IndirectField->chains()) + LHS = CGF.EmitLValueForFieldInitialization(LHS, cast<FieldDecl>(I)); FieldType = MemberInit->getIndirectMember()->getAnonField()->getType(); } else { LHS = CGF.EmitLValueForFieldInitialization(LHS, Field); Modified: cfe/trunk/lib/Sema/SemaDecl.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Sema/SemaDecl.cpp?rev=203261&r1=203260&r2=203261&view=diff ============================================================================== --- cfe/trunk/lib/Sema/SemaDecl.cpp (original) +++ cfe/trunk/lib/Sema/SemaDecl.cpp Fri Mar 7 12:11:58 2014 @@ -3487,9 +3487,8 @@ static bool InjectAnonymousStructOrUnion // anonymous union is declared. unsigned OldChainingSize = Chaining.size(); if (IndirectFieldDecl *IF = dyn_cast<IndirectFieldDecl>(VD)) - for (IndirectFieldDecl::chain_iterator PI = IF->chain_begin(), - PE = IF->chain_end(); PI != PE; ++PI) - Chaining.push_back(*PI); + for (auto *PI : IF->chains()) + Chaining.push_back(PI); else Chaining.push_back(VD); Modified: cfe/trunk/lib/Sema/SemaDeclCXX.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Sema/SemaDeclCXX.cpp?rev=203261&r1=203260&r2=203261&view=diff ============================================================================== --- cfe/trunk/lib/Sema/SemaDeclCXX.cpp (original) +++ cfe/trunk/lib/Sema/SemaDeclCXX.cpp Fri Mar 7 12:11:58 2014 @@ -3413,10 +3413,8 @@ struct BaseAndFieldInfo { if (!Indirect) return isInactiveUnionMember(Field); - for (IndirectFieldDecl::chain_iterator C = Indirect->chain_begin(), - CEnd = Indirect->chain_end(); - C != CEnd; ++C) { - FieldDecl *Field = dyn_cast<FieldDecl>(*C); + for (auto *C : Indirect->chains()) { + FieldDecl *Field = dyn_cast<FieldDecl>(C); if (Field && isInactiveUnionMember(Field)) return true; } @@ -3564,10 +3562,8 @@ bool Sema::SetCtorInitializers(CXXConstr Info.AllBaseFields[Member->getAnyMember()] = Member; if (IndirectFieldDecl *F = Member->getIndirectMember()) { - for (IndirectFieldDecl::chain_iterator C = F->chain_begin(), - CEnd = F->chain_end(); - C != CEnd; ++C) { - FieldDecl *FD = dyn_cast<FieldDecl>(*C); + for (auto *C : F->chains()) { + FieldDecl *FD = dyn_cast<FieldDecl>(C); if (FD && FD->getParent()->isUnion()) Info.ActiveUnionMember.insert(std::make_pair( FD->getParent()->getCanonicalDecl(), FD->getCanonicalDecl())); Modified: cfe/trunk/lib/Sema/SemaExpr.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Sema/SemaExpr.cpp?rev=203261&r1=203260&r2=203261&view=diff ============================================================================== --- cfe/trunk/lib/Sema/SemaExpr.cpp (original) +++ cfe/trunk/lib/Sema/SemaExpr.cpp Fri Mar 7 12:11:58 2014 @@ -10229,12 +10229,10 @@ ExprResult Sema::BuildBuiltinOffsetOf(So } if (IndirectMemberDecl) { - for (IndirectFieldDecl::chain_iterator FI = - IndirectMemberDecl->chain_begin(), - FEnd = IndirectMemberDecl->chain_end(); FI != FEnd; FI++) { - assert(isa<FieldDecl>(*FI)); + for (auto *FI : IndirectMemberDecl->chains()) { + assert(isa<FieldDecl>(FI)); Comps.push_back(OffsetOfNode(OC.LocStart, - cast<FieldDecl>(*FI), OC.LocEnd)); + cast<FieldDecl>(FI), OC.LocEnd)); } } else Comps.push_back(OffsetOfNode(OC.LocStart, MemberDecl, OC.LocEnd)); Modified: cfe/trunk/lib/Sema/SemaTemplateInstantiateDecl.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Sema/SemaTemplateInstantiateDecl.cpp?rev=203261&r1=203260&r2=203261&view=diff ============================================================================== --- cfe/trunk/lib/Sema/SemaTemplateInstantiateDecl.cpp (original) +++ cfe/trunk/lib/Sema/SemaTemplateInstantiateDecl.cpp Fri Mar 7 12:11:58 2014 @@ -562,10 +562,8 @@ Decl *TemplateDeclInstantiator::VisitInd new (SemaRef.Context)NamedDecl*[D->getChainingSize()]; int i = 0; - for (IndirectFieldDecl::chain_iterator PI = - D->chain_begin(), PE = D->chain_end(); - PI != PE; ++PI) { - NamedDecl *Next = SemaRef.FindInstantiatedDecl(D->getLocation(), *PI, + for (auto *PI : D->chains()) { + NamedDecl *Next = SemaRef.FindInstantiatedDecl(D->getLocation(), PI, TemplateArgs); if (!Next) return 0; Modified: cfe/trunk/lib/Serialization/ASTWriterDecl.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Serialization/ASTWriterDecl.cpp?rev=203261&r1=203260&r2=203261&view=diff ============================================================================== --- cfe/trunk/lib/Serialization/ASTWriterDecl.cpp (original) +++ cfe/trunk/lib/Serialization/ASTWriterDecl.cpp Fri Mar 7 12:11:58 2014 @@ -686,10 +686,8 @@ void ASTDeclWriter::VisitIndirectFieldDe VisitValueDecl(D); Record.push_back(D->getChainingSize()); - for (IndirectFieldDecl::chain_iterator - P = D->chain_begin(), - PEnd = D->chain_end(); P != PEnd; ++P) - Writer.AddDeclRef(*P, Record); + for (const auto *P : D->chains()) + Writer.AddDeclRef(P, Record); Code = serialization::DECL_INDIRECTFIELD; } _______________________________________________ cfe-commits mailing list cfe-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits