From 74115602e82d0e758f8e311d545e127ce0a48cd7 Mon Sep 17 00:00:00 2001 From: Kazu Hirata Date: Wed, 17 Nov 2021 19:40:48 -0800 Subject: [PATCH] [clang] Use range-based for loops with llvm::reverse (NFC) --- clang/lib/Driver/SanitizerArgs.cpp | 14 +++++--------- clang/lib/Serialization/ASTWriter.cpp | 6 ++---- clang/lib/Serialization/ModuleManager.cpp | 8 +++----- clang/lib/StaticAnalyzer/Core/ExprEngine.cpp | 3 +-- clang/lib/StaticAnalyzer/Core/ExprEngineC.cpp | 5 ++--- clang/lib/StaticAnalyzer/Core/HTMLDiagnostics.cpp | 8 ++++---- 6 files changed, 17 insertions(+), 27 deletions(-) diff --git a/clang/lib/Driver/SanitizerArgs.cpp b/clang/lib/Driver/SanitizerArgs.cpp index de411a98ba701..d31529748b620 100644 --- a/clang/lib/Driver/SanitizerArgs.cpp +++ b/clang/lib/Driver/SanitizerArgs.cpp @@ -223,9 +223,7 @@ static SanitizerMask parseSanitizeTrapArgs(const Driver &D, SanitizerMask TrappingKinds; SanitizerMask TrappingSupportedWithGroups = setGroupBits(TrappingSupported); - for (ArgList::const_reverse_iterator I = Args.rbegin(), E = Args.rend(); - I != E; ++I) { - const auto *Arg = *I; + for (const llvm::opt::Arg *Arg : llvm::reverse(Args)) { if (Arg->getOption().matches(options::OPT_fsanitize_trap_EQ)) { Arg->claim(); SanitizerMask Add = parseArgValues(D, Arg, true); @@ -322,9 +320,7 @@ SanitizerArgs::SanitizerArgs(const ToolChain &TC, bool RemoveObjectSizeAtO0 = !OptLevel || OptLevel->getOption().matches(options::OPT_O0); - for (ArgList::const_reverse_iterator I = Args.rbegin(), E = Args.rend(); - I != E; ++I) { - const auto *Arg = *I; + for (const llvm::opt::Arg *Arg : llvm::reverse(Args)) { if (Arg->getOption().matches(options::OPT_fsanitize_EQ)) { Arg->claim(); SanitizerMask Add = parseArgValues(D, Arg, DiagnoseErrors); @@ -349,7 +345,7 @@ SanitizerArgs::SanitizerArgs(const ToolChain &TC, if (SanitizerMask KindsToDiagnose = Add & InvalidTrappingKinds & ~DiagnosedKinds) { if (DiagnoseErrors) { - std::string Desc = describeSanitizeArg(*I, KindsToDiagnose); + std::string Desc = describeSanitizeArg(Arg, KindsToDiagnose); D.Diag(diag::err_drv_argument_not_allowed_with) << Desc << "-fsanitize-trap=undefined"; } @@ -361,7 +357,7 @@ SanitizerArgs::SanitizerArgs(const ToolChain &TC, if (SanitizerMask KindsToDiagnose = Add & NotAllowedWithMinimalRuntime & ~DiagnosedKinds) { if (DiagnoseErrors) { - std::string Desc = describeSanitizeArg(*I, KindsToDiagnose); + std::string Desc = describeSanitizeArg(Arg, KindsToDiagnose); D.Diag(diag::err_drv_argument_not_allowed_with) << Desc << "-fsanitize-minimal-runtime"; } @@ -391,7 +387,7 @@ SanitizerArgs::SanitizerArgs(const ToolChain &TC, if (SanitizerMask KindsToDiagnose = Add & ~Supported & ~DiagnosedKinds) { if (DiagnoseErrors) { - std::string Desc = describeSanitizeArg(*I, KindsToDiagnose); + std::string Desc = describeSanitizeArg(Arg, KindsToDiagnose); D.Diag(diag::err_drv_unsupported_opt_for_target) << Desc << TC.getTriple().str(); } diff --git a/clang/lib/Serialization/ASTWriter.cpp b/clang/lib/Serialization/ASTWriter.cpp index 73f9ff280aa95..ec05ef724cc56 100644 --- a/clang/lib/Serialization/ASTWriter.cpp +++ b/clang/lib/Serialization/ASTWriter.cpp @@ -3429,11 +3429,9 @@ class ASTIdentifierTableTrait { // Only emit declarations that aren't from a chained PCH, though. SmallVector Decls(IdResolver.begin(II), IdResolver.end()); - for (SmallVectorImpl::reverse_iterator D = Decls.rbegin(), - DEnd = Decls.rend(); - D != DEnd; ++D) + for (NamedDecl *D : llvm::reverse(Decls)) LE.write( - Writer.getDeclID(getDeclForLocalLookup(PP.getLangOpts(), *D))); + Writer.getDeclID(getDeclForLocalLookup(PP.getLangOpts(), D))); } } }; diff --git a/clang/lib/Serialization/ModuleManager.cpp b/clang/lib/Serialization/ModuleManager.cpp index 2fe88cc4d35d2..f4882c7be3f7d 100644 --- a/clang/lib/Serialization/ModuleManager.cpp +++ b/clang/lib/Serialization/ModuleManager.cpp @@ -383,16 +383,14 @@ void ModuleManager::visit(llvm::function_ref Visitor, // For any module that this module depends on, push it on the // stack (if it hasn't already been marked as visited). - for (auto M = CurrentModule->Imports.rbegin(), - MEnd = CurrentModule->Imports.rend(); - M != MEnd; ++M) { + for (ModuleFile *M : llvm::reverse(CurrentModule->Imports)) { // Remove our current module as an impediment to visiting the // module we depend on. If we were the last unvisited module // that depends on this particular module, push it into the // queue to be visited. - unsigned &NumUnusedEdges = UnusedIncomingEdges[(*M)->Index]; + unsigned &NumUnusedEdges = UnusedIncomingEdges[M->Index]; if (NumUnusedEdges && (--NumUnusedEdges == 0)) - Queue.push_back(*M); + Queue.push_back(M); } } diff --git a/clang/lib/StaticAnalyzer/Core/ExprEngine.cpp b/clang/lib/StaticAnalyzer/Core/ExprEngine.cpp index df27069baaddb..12b005d43c554 100644 --- a/clang/lib/StaticAnalyzer/Core/ExprEngine.cpp +++ b/clang/lib/StaticAnalyzer/Core/ExprEngine.cpp @@ -393,8 +393,7 @@ ProgramStateRef ExprEngine::createTemporaryRegionIfNeeded( SVal BaseReg = Reg; // Make the necessary adjustments to obtain the sub-object. - for (auto I = Adjustments.rbegin(), E = Adjustments.rend(); I != E; ++I) { - const SubobjectAdjustment &Adj = *I; + for (const SubobjectAdjustment &Adj : llvm::reverse(Adjustments)) { switch (Adj.Kind) { case SubobjectAdjustment::DerivedToBaseAdjustment: Reg = StoreMgr.evalDerivedToBase(Reg, Adj.DerivedToBase.BasePath); diff --git a/clang/lib/StaticAnalyzer/Core/ExprEngineC.cpp b/clang/lib/StaticAnalyzer/Core/ExprEngineC.cpp index 929ba8d94950e..69d67cf9b465e 100644 --- a/clang/lib/StaticAnalyzer/Core/ExprEngineC.cpp +++ b/clang/lib/StaticAnalyzer/Core/ExprEngineC.cpp @@ -757,9 +757,8 @@ void ExprEngine::VisitInitListExpr(const InitListExpr *IE, return; } - for (InitListExpr::const_reverse_iterator it = IE->rbegin(), - ei = IE->rend(); it != ei; ++it) { - SVal V = state->getSVal(cast(*it), LCtx); + for (const Stmt *S : llvm::reverse(*IE)) { + SVal V = state->getSVal(cast(S), LCtx); vals = getBasicVals().prependSVal(V, vals); } diff --git a/clang/lib/StaticAnalyzer/Core/HTMLDiagnostics.cpp b/clang/lib/StaticAnalyzer/Core/HTMLDiagnostics.cpp index 81c1576471316..3b847d6f0d878 100644 --- a/clang/lib/StaticAnalyzer/Core/HTMLDiagnostics.cpp +++ b/clang/lib/StaticAnalyzer/Core/HTMLDiagnostics.cpp @@ -792,8 +792,8 @@ void HTMLDiagnostics::RewriteFile(Rewriter &R, const PathPieces &path, // Stores the different ranges where we have reported something. std::vector PopUpRanges; - for (auto I = path.rbegin(), E = path.rend(); I != E; ++I) { - const auto &Piece = *I->get(); + for (const PathDiagnosticPieceRef &I : llvm::reverse(path)) { + const auto &Piece = *I.get(); if (isa(Piece)) { ++IndexMap[NumRegularPieces]; @@ -835,8 +835,8 @@ void HTMLDiagnostics::RewriteFile(Rewriter &R, const PathPieces &path, // Secondary indexing if we are having multiple pop-ups between two notes. // (e.g. [(13) 'a' is 'true']; [(13.1) 'b' is 'false']; [(13.2) 'c' is...) NumRegularPieces = TotalRegularPieces; - for (auto I = path.rbegin(), E = path.rend(); I != E; ++I) { - const auto &Piece = *I->get(); + for (const PathDiagnosticPieceRef &I : llvm::reverse(path)) { + const auto &Piece = *I.get(); if (const auto *PopUpP = dyn_cast(&Piece)) { int PopUpPieceIndex = IndexMap[NumRegularPieces];