summaryrefslogtreecommitdiffstats
path: root/clang-tools-extra/clang-modernize
diff options
context:
space:
mode:
authorEdwin Vane <revane@gmail.com>2013-10-17 17:57:36 +0000
committerEdwin Vane <revane@gmail.com>2013-10-17 17:57:36 +0000
commitdd8cc29ce5a8a392e12a584b03fbd15b8a8625b6 (patch)
tree9fd1d324d604a8f351d6829480cc95bd980947fa /clang-tools-extra/clang-modernize
parentfd541f001b25c72301e47a9ea72bd3676cb3a28d (diff)
downloadbcm5719-llvm-dd8cc29ce5a8a392e12a584b03fbd15b8a8625b6.tar.gz
bcm5719-llvm-dd8cc29ce5a8a392e12a584b03fbd15b8a8625b6.zip
Refactoring transform-specific options
Making the user null macros command-line option visible to the UseNullptrTransform class instead of being visible only to the match callback. llvm-svn: 192905
Diffstat (limited to 'clang-tools-extra/clang-modernize')
-rw-r--r--clang-tools-extra/clang-modernize/UseNullptr/NullptrActions.cpp15
-rw-r--r--clang-tools-extra/clang-modernize/UseNullptr/NullptrActions.h3
-rw-r--r--clang-tools-extra/clang-modernize/UseNullptr/UseNullptr.cpp14
3 files changed, 19 insertions, 13 deletions
diff --git a/clang-tools-extra/clang-modernize/UseNullptr/NullptrActions.cpp b/clang-tools-extra/clang-modernize/UseNullptr/NullptrActions.cpp
index 23a8fd3a476..1aca261a7f3 100644
--- a/clang-tools-extra/clang-modernize/UseNullptr/NullptrActions.cpp
+++ b/clang-tools-extra/clang-modernize/UseNullptr/NullptrActions.cpp
@@ -32,12 +32,6 @@ namespace {
const char *NullMacroName = "NULL";
-static cl::opt<std::string>
-UserNullMacroNames("user-null-macros",
- cl::desc("Comma-separated list of user-defined "
- "macro names that behave like NULL"),
- cl::cat(TransformsOptionsCategory), cl::init(""));
-
bool isReplaceableRange(SourceLocation StartLoc, SourceLocation EndLoc,
const SourceManager &SM, const Transform &Owner) {
return SM.isWrittenInSameFile(StartLoc, EndLoc) &&
@@ -428,13 +422,12 @@ private:
};
} // namespace
-NullptrFixer::NullptrFixer(unsigned &AcceptedChanges, RiskLevel,
+NullptrFixer::NullptrFixer(unsigned &AcceptedChanges,
+ llvm::ArrayRef<llvm::StringRef> UserMacros,
Transform &Owner)
: AcceptedChanges(AcceptedChanges), Owner(Owner) {
- if (!UserNullMacroNames.empty()) {
- llvm::StringRef S = UserNullMacroNames;
- S.split(UserNullMacros, ",");
- }
+ UserNullMacros.insert(UserNullMacros.begin(), UserMacros.begin(),
+ UserMacros.end());
UserNullMacros.insert(UserNullMacros.begin(), llvm::StringRef(NullMacroName));
}
diff --git a/clang-tools-extra/clang-modernize/UseNullptr/NullptrActions.h b/clang-tools-extra/clang-modernize/UseNullptr/NullptrActions.h
index 763fc8717cf..4e2d9b6311f 100644
--- a/clang-tools-extra/clang-modernize/UseNullptr/NullptrActions.h
+++ b/clang-tools-extra/clang-modernize/UseNullptr/NullptrActions.h
@@ -27,7 +27,8 @@ typedef llvm::SmallVector<llvm::StringRef, 1> UserMacroNames;
///
class NullptrFixer : public clang::ast_matchers::MatchFinder::MatchCallback {
public:
- NullptrFixer(unsigned &AcceptedChanges, RiskLevel, Transform &Owner);
+ NullptrFixer(unsigned &AcceptedChanges,
+ llvm::ArrayRef<llvm::StringRef> UserMacros, Transform &Owner);
/// \brief Entry point to the callback called when matches are made.
virtual void run(const clang::ast_matchers::MatchFinder::MatchResult &Result);
diff --git a/clang-tools-extra/clang-modernize/UseNullptr/UseNullptr.cpp b/clang-tools-extra/clang-modernize/UseNullptr/UseNullptr.cpp
index cca73929252..1ddc991e0c4 100644
--- a/clang-tools-extra/clang-modernize/UseNullptr/UseNullptr.cpp
+++ b/clang-tools-extra/clang-modernize/UseNullptr/UseNullptr.cpp
@@ -23,6 +23,13 @@
using clang::ast_matchers::MatchFinder;
using namespace clang::tooling;
using namespace clang;
+namespace cl = llvm::cl;
+
+static cl::opt<std::string>
+UserNullMacroNames("user-null-macros",
+ cl::desc("Comma-separated list of user-defined "
+ "macro names that behave like NULL"),
+ cl::cat(TransformsOptionsCategory), cl::init(""));
int UseNullptrTransform::apply(const CompilationDatabase &Database,
const std::vector<std::string> &SourcePaths) {
@@ -30,8 +37,13 @@ int UseNullptrTransform::apply(const CompilationDatabase &Database,
unsigned AcceptedChanges = 0;
+ llvm::SmallVector<llvm::StringRef, 1> MacroNames;
+ if (!UserNullMacroNames.empty()) {
+ llvm::StringRef S = UserNullMacroNames;
+ S.split(MacroNames, ",");
+ }
MatchFinder Finder;
- NullptrFixer Fixer(AcceptedChanges, Options().MaxRiskLevel, /*Owner=*/ *this);
+ NullptrFixer Fixer(AcceptedChanges, MacroNames, /*Owner=*/ *this);
Finder.addMatcher(makeCastSequenceMatcher(), &Fixer);
OpenPOWER on IntegriCloud