summaryrefslogtreecommitdiffstats
path: root/clang-tools-extra/cpp11-migrate/AddOverride
diff options
context:
space:
mode:
Diffstat (limited to 'clang-tools-extra/cpp11-migrate/AddOverride')
-rw-r--r--clang-tools-extra/cpp11-migrate/AddOverride/AddOverride.cpp4
-rw-r--r--clang-tools-extra/cpp11-migrate/AddOverride/AddOverrideActions.cpp4
-rw-r--r--clang-tools-extra/cpp11-migrate/AddOverride/AddOverrideActions.h9
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
OpenPOWER on IntegriCloud