diff options
Diffstat (limited to 'clang-tools-extra/cpp11-migrate/LoopConvert')
4 files changed, 27 insertions, 24 deletions
diff --git a/clang-tools-extra/cpp11-migrate/LoopConvert/LoopActions.cpp b/clang-tools-extra/cpp11-migrate/LoopConvert/LoopActions.cpp index 0ba49d8ad4f..da9d7b56557 100644 --- a/clang-tools-extra/cpp11-migrate/LoopConvert/LoopActions.cpp +++ b/clang-tools-extra/cpp11-migrate/LoopConvert/LoopActions.cpp @@ -815,9 +815,9 @@ void LoopFixer::doConversion(ASTContext *Context, // the declaration of the alias variable. This is probably a bug. ReplacementText = ";"; - Owner.addReplacementForCurrentTU(Replacement( - Context->getSourceManager(), - CharSourceRange::getTokenRange(ReplaceRange), ReplacementText)); + Replace->insert(Replacement(Context->getSourceManager(), + CharSourceRange::getTokenRange(ReplaceRange), + ReplacementText)); // No further replacements are made to the loop, since the iterator or index // was used exactly once - in the initialization of AliasVar. } else { @@ -830,9 +830,10 @@ void LoopFixer::doConversion(ASTContext *Context, I != E; ++I) { std::string ReplaceText = I->IsArrow ? VarName + "." : VarName; ReplacedVarRanges->insert(std::make_pair(TheLoop, IndexVar)); - Owner.addReplacementForCurrentTU( + Replace->insert( Replacement(Context->getSourceManager(), - CharSourceRange::getTokenRange(I->Range), ReplaceText)); + CharSourceRange::getTokenRange(I->Range), + ReplaceText)); } } @@ -861,9 +862,9 @@ void LoopFixer::doConversion(ASTContext *Context, std::string TypeString = AutoRefType.getAsString(); std::string Range = ("(" + TypeString + " " + VarName + " : " + MaybeDereference + ContainerString + ")").str(); - Owner.addReplacementForCurrentTU( - Replacement(Context->getSourceManager(), - CharSourceRange::getTokenRange(ParenRange), Range)); + Replace->insert(Replacement(Context->getSourceManager(), + CharSourceRange::getTokenRange(ParenRange), + Range)); GeneratedDecls->insert(make_pair(TheLoop, VarName)); } diff --git a/clang-tools-extra/cpp11-migrate/LoopConvert/LoopActions.h b/clang-tools-extra/cpp11-migrate/LoopConvert/LoopActions.h index b72576bde82..95c1b021576 100644 --- a/clang-tools-extra/cpp11-migrate/LoopConvert/LoopActions.h +++ b/clang-tools-extra/cpp11-migrate/LoopConvert/LoopActions.h @@ -41,11 +41,12 @@ enum LoopFixerKind { class LoopFixer : public clang::ast_matchers::MatchFinder::MatchCallback { public: LoopFixer(StmtAncestorASTVisitor *ParentFinder, + clang::tooling::Replacements *Replace, StmtGeneratedVarNameMap *GeneratedDecls, ReplacedVarsMap *ReplacedVarRanges, unsigned *AcceptedChanges, unsigned *DeferredChanges, unsigned *RejectedChanges, - RiskLevel MaxRisk, LoopFixerKind FixerKind, Transform &Owner) - : ParentFinder(ParentFinder), + RiskLevel MaxRisk, LoopFixerKind FixerKind, const Transform &Owner) + : ParentFinder(ParentFinder), Replace(Replace), GeneratedDecls(GeneratedDecls), ReplacedVarRanges(ReplacedVarRanges), AcceptedChanges(AcceptedChanges), DeferredChanges(DeferredChanges), RejectedChanges(RejectedChanges), MaxRisk(MaxRisk), @@ -56,6 +57,7 @@ class LoopFixer : public clang::ast_matchers::MatchFinder::MatchCallback { private: StmtAncestorASTVisitor *ParentFinder; + clang::tooling::Replacements *Replace; StmtGeneratedVarNameMap *GeneratedDecls; ReplacedVarsMap *ReplacedVarRanges; unsigned *AcceptedChanges; @@ -63,7 +65,7 @@ class LoopFixer : public clang::ast_matchers::MatchFinder::MatchCallback { unsigned *RejectedChanges; RiskLevel MaxRisk; LoopFixerKind FixerKind; - Transform &Owner; + const Transform &Owner; /// \brief Computes the changes needed to convert a given for loop, and /// applies it. diff --git a/clang-tools-extra/cpp11-migrate/LoopConvert/LoopConvert.cpp b/clang-tools-extra/cpp11-migrate/LoopConvert/LoopConvert.cpp index 2dfa4562929..73c2560e796 100644 --- a/clang-tools-extra/cpp11-migrate/LoopConvert/LoopConvert.cpp +++ b/clang-tools-extra/cpp11-migrate/LoopConvert/LoopConvert.cpp @@ -24,7 +24,7 @@ using clang::ast_matchers::MatchFinder; using namespace clang::tooling; using namespace clang; -int LoopConvertTransform::apply(const FileOverrides &InputStates, +int LoopConvertTransform::apply(FileOverrides &InputStates, const CompilationDatabase &Database, const std::vector<std::string> &SourcePaths) { ClangTool LoopTool(Database, SourcePaths); @@ -37,20 +37,20 @@ int LoopConvertTransform::apply(const FileOverrides &InputStates, unsigned RejectedChanges = 0; MatchFinder Finder; - LoopFixer ArrayLoopFixer(&ParentFinder, &GeneratedDecls, &ReplacedVars, - &AcceptedChanges, &DeferredChanges, &RejectedChanges, - Options().MaxRiskLevel, LFK_Array, + LoopFixer ArrayLoopFixer(&ParentFinder, &getReplacements(), &GeneratedDecls, + &ReplacedVars, &AcceptedChanges, &DeferredChanges, + &RejectedChanges, Options().MaxRiskLevel, LFK_Array, /*Owner=*/ *this); Finder.addMatcher(makeArrayLoopMatcher(), &ArrayLoopFixer); - LoopFixer IteratorLoopFixer(&ParentFinder, &GeneratedDecls, &ReplacedVars, - &AcceptedChanges, &DeferredChanges, - &RejectedChanges, Options().MaxRiskLevel, - LFK_Iterator, /*Owner=*/ *this); + LoopFixer IteratorLoopFixer( + &ParentFinder, &getReplacements(), &GeneratedDecls, &ReplacedVars, + &AcceptedChanges, &DeferredChanges, &RejectedChanges, + Options().MaxRiskLevel, LFK_Iterator, /*Owner=*/ *this); Finder.addMatcher(makeIteratorLoopMatcher(), &IteratorLoopFixer); - LoopFixer PseudoarrrayLoopFixer(&ParentFinder, &GeneratedDecls, &ReplacedVars, - &AcceptedChanges, &DeferredChanges, - &RejectedChanges, Options().MaxRiskLevel, - LFK_PseudoArray, /*Owner=*/ *this); + LoopFixer PseudoarrrayLoopFixer( + &ParentFinder, &getReplacements(), &GeneratedDecls, &ReplacedVars, + &AcceptedChanges, &DeferredChanges, &RejectedChanges, + Options().MaxRiskLevel, LFK_PseudoArray, /*Owner=*/ *this); Finder.addMatcher(makePseudoArrayLoopMatcher(), &PseudoarrrayLoopFixer); setOverrides(InputStates); diff --git a/clang-tools-extra/cpp11-migrate/LoopConvert/LoopConvert.h b/clang-tools-extra/cpp11-migrate/LoopConvert/LoopConvert.h index b45d9555b3d..af287652485 100644 --- a/clang-tools-extra/cpp11-migrate/LoopConvert/LoopConvert.h +++ b/clang-tools-extra/cpp11-migrate/LoopConvert/LoopConvert.h @@ -28,7 +28,7 @@ public: : Transform("LoopConvert", Options) {} /// \see Transform::run(). - virtual int apply(const FileOverrides &InputStates, + virtual int apply(FileOverrides &InputStates, const clang::tooling::CompilationDatabase &Database, const std::vector<std::string> &SourcePaths) LLVM_OVERRIDE; }; |