diff options
author | Edwin Vane <edwin.vane@intel.com> | 2013-06-18 15:44:58 +0000 |
---|---|---|
committer | Edwin Vane <edwin.vane@intel.com> | 2013-06-18 15:44:58 +0000 |
commit | ba6b32d1ce34dacaca5df11dfb5e460b1445914a (patch) | |
tree | 25b663f04bcef53af13f02efa948e48f296ae65a /clang-tools-extra/cpp11-migrate/UseAuto | |
parent | 75d8fa51c9894df24e224b61c8b1f2cfbf6fc89d (diff) | |
download | bcm5719-llvm-ba6b32d1ce34dacaca5df11dfb5e460b1445914a.tar.gz bcm5719-llvm-ba6b32d1ce34dacaca5df11dfb5e460b1445914a.zip |
cpp11-migrate: Transforms honour header modification flag
Transforms will now make changes to headers if header modifications have been
enabled.
FIXME: Only UseNullptr contains a cursory header modification test. Other
transforms should have them too.
llvm-svn: 184197
Diffstat (limited to 'clang-tools-extra/cpp11-migrate/UseAuto')
3 files changed, 10 insertions, 10 deletions
diff --git a/clang-tools-extra/cpp11-migrate/UseAuto/UseAuto.cpp b/clang-tools-extra/cpp11-migrate/UseAuto/UseAuto.cpp index 0a8d0d2e3a8..b85f54712a7 100644 --- a/clang-tools-extra/cpp11-migrate/UseAuto/UseAuto.cpp +++ b/clang-tools-extra/cpp11-migrate/UseAuto/UseAuto.cpp @@ -29,9 +29,9 @@ int UseAutoTransform::apply(FileOverrides &InputStates, MatchFinder Finder; IteratorReplacer ReplaceIterators(getReplacements(), AcceptedChanges, - Options().MaxRiskLevel); + Options().MaxRiskLevel, /*Owner=*/ *this); NewReplacer ReplaceNew(getReplacements(), AcceptedChanges, - Options().MaxRiskLevel); + Options().MaxRiskLevel, /*Owner=*/ *this); Finder.addMatcher(makeIteratorDeclMatcher(), &ReplaceIterators); Finder.addMatcher(makeDeclWithNewMatcher(), &ReplaceNew); diff --git a/clang-tools-extra/cpp11-migrate/UseAuto/UseAutoActions.cpp b/clang-tools-extra/cpp11-migrate/UseAuto/UseAutoActions.cpp index 47050a7b84d..e20affa5e2b 100644 --- a/clang-tools-extra/cpp11-migrate/UseAuto/UseAutoActions.cpp +++ b/clang-tools-extra/cpp11-migrate/UseAuto/UseAutoActions.cpp @@ -25,7 +25,7 @@ void IteratorReplacer::run(const MatchFinder::MatchResult &Result) { assert(D && "Bad Callback. No node provided"); SourceManager &SM = *Result.SourceManager; - if (!SM.isFromMainFile(D->getLocStart())) + if (!Owner.isFileModifiable(SM, D->getLocStart())) return; for (clang::DeclStmt::const_decl_iterator DI = D->decl_begin(), @@ -81,7 +81,7 @@ void NewReplacer::run(const MatchFinder::MatchResult &Result) { assert(D && "Bad Callback. No node provided"); SourceManager &SM = *Result.SourceManager; - if (!SM.isFromMainFile(D->getLocStart())) + if (!Owner.isFileModifiable(SM, D->getLocStart())) return; const VarDecl *FirstDecl = cast<VarDecl>(*D->decl_begin()); diff --git a/clang-tools-extra/cpp11-migrate/UseAuto/UseAutoActions.h b/clang-tools-extra/cpp11-migrate/UseAuto/UseAutoActions.h index 31c41fb53ec..01170a68d23 100644 --- a/clang-tools-extra/cpp11-migrate/UseAuto/UseAutoActions.h +++ b/clang-tools-extra/cpp11-migrate/UseAuto/UseAutoActions.h @@ -25,9 +25,8 @@ class IteratorReplacer : public clang::ast_matchers::MatchFinder::MatchCallback { public: IteratorReplacer(clang::tooling::Replacements &Replace, - unsigned &AcceptedChanges, RiskLevel) - : Replace(Replace), AcceptedChanges(AcceptedChanges) { - } + unsigned &AcceptedChanges, RiskLevel, const Transform &Owner) + : Replace(Replace), AcceptedChanges(AcceptedChanges), Owner(Owner) {} /// \brief Entry point to the callback called when matches are made. virtual void run(const clang::ast_matchers::MatchFinder::MatchResult &Result) @@ -36,6 +35,7 @@ public: private: clang::tooling::Replacements &Replace; unsigned &AcceptedChanges; + const Transform &Owner; }; /// \brief The callback used when replacing type specifiers of variable @@ -43,9 +43,8 @@ private: class NewReplacer : public clang::ast_matchers::MatchFinder::MatchCallback { public: NewReplacer(clang::tooling::Replacements &Replace, unsigned &AcceptedChanges, - RiskLevel) - : Replace(Replace), AcceptedChanges(AcceptedChanges) { - } + RiskLevel, const Transform &Owner) + : Replace(Replace), AcceptedChanges(AcceptedChanges), Owner(Owner) {} /// \brief Entry point to the callback called when matches are made. virtual void run(const clang::ast_matchers::MatchFinder::MatchResult &Result) @@ -54,6 +53,7 @@ public: private: clang::tooling::Replacements &Replace; unsigned &AcceptedChanges; + const Transform &Owner; }; #endif // LLVM_TOOLS_CLANG_TOOLS_EXTRA_CPP11_MIGRATE_USE_AUTO_ACTIONS_H |