diff options
Diffstat (limited to 'clang-tools-extra/cpp11-migrate/AddOverride')
3 files changed, 11 insertions, 6 deletions
diff --git a/clang-tools-extra/cpp11-migrate/AddOverride/AddOverride.cpp b/clang-tools-extra/cpp11-migrate/AddOverride/AddOverride.cpp index f9a3a512675..1b77e128406 100644 --- a/clang-tools-extra/cpp11-migrate/AddOverride/AddOverride.cpp +++ b/clang-tools-extra/cpp11-migrate/AddOverride/AddOverride.cpp @@ -40,7 +40,9 @@ int AddOverrideTransform::apply(FileOverrides &InputStates, unsigned AcceptedChanges = 0; MatchFinder Finder; - AddOverrideFixer Fixer(getReplacements(), AcceptedChanges, DetectMacros); + + AddOverrideFixer Fixer(getReplacements(), AcceptedChanges, DetectMacros, + /*Owner=*/ *this); Finder.addMatcher(makeCandidateForOverrideAttrMatcher(), &Fixer); // Make Fixer available to handleBeginSource(). diff --git a/clang-tools-extra/cpp11-migrate/AddOverride/AddOverrideActions.cpp b/clang-tools-extra/cpp11-migrate/AddOverride/AddOverrideActions.cpp index 008e947410e..6407b86b9db 100644 --- a/clang-tools-extra/cpp11-migrate/AddOverride/AddOverrideActions.cpp +++ b/clang-tools-extra/cpp11-migrate/AddOverride/AddOverrideActions.cpp @@ -15,6 +15,7 @@ #include "AddOverrideActions.h" #include "AddOverrideMatchers.h" +#include "Core/Transform.h" #include "clang/Basic/CharInfo.h" #include "clang/AST/ASTContext.h" @@ -61,8 +62,7 @@ void AddOverrideFixer::run(const MatchFinder::MatchResult &Result) { if (const FunctionDecl *TemplateMethod = M->getTemplateInstantiationPattern()) M = cast<CXXMethodDecl>(TemplateMethod); - // Check that the method declaration is in the main file - if (!SM.isFromMainFile(M->getLocStart())) + if (!Owner.isFileModifiable(SM, M->getLocStart())) return; // First check that there isn't already an override attribute. diff --git a/clang-tools-extra/cpp11-migrate/AddOverride/AddOverrideActions.h b/clang-tools-extra/cpp11-migrate/AddOverride/AddOverrideActions.h index 831344344a1..1d125ebb7e1 100644 --- a/clang-tools-extra/cpp11-migrate/AddOverride/AddOverrideActions.h +++ b/clang-tools-extra/cpp11-migrate/AddOverride/AddOverrideActions.h @@ -15,18 +15,20 @@ #ifndef LLVM_TOOLS_CLANG_TOOLS_EXTRA_CPP11_MIGRATE_ADD_OVERRIDE_ACTIONS_H #define LLVM_TOOLS_CLANG_TOOLS_EXTRA_CPP11_MIGRATE_ADD_OVERRIDE_ACTIONS_H -#include "Core/Transform.h" #include "clang/ASTMatchers/ASTMatchFinder.h" #include "clang/Tooling/Refactoring.h" +class Transform; + /// \brief The callback to be used for add-override migration matchers. /// class AddOverrideFixer : public clang::ast_matchers::MatchFinder::MatchCallback { public: AddOverrideFixer(clang::tooling::Replacements &Replace, - unsigned &AcceptedChanges, bool DetectMacros) + unsigned &AcceptedChanges, bool DetectMacros, + const Transform &Owner) : Replace(Replace), AcceptedChanges(AcceptedChanges), - DetectMacros(DetectMacros) {} + DetectMacros(DetectMacros), Owner(Owner) {} /// \brief Entry point to the callback called when matches are made. virtual void run(const clang::ast_matchers::MatchFinder::MatchResult &Result); @@ -38,6 +40,7 @@ private: clang::tooling::Replacements &Replace; unsigned &AcceptedChanges; bool DetectMacros; + const Transform &Owner; }; #endif // LLVM_TOOLS_CLANG_TOOLS_EXTRA_CPP11_MIGRATE_ADD_OVERRIDE_ACTIONS_H |