diff options
author | Edwin Vane <revane@gmail.com> | 2013-10-17 17:57:36 +0000 |
---|---|---|
committer | Edwin Vane <revane@gmail.com> | 2013-10-17 17:57:36 +0000 |
commit | dd8cc29ce5a8a392e12a584b03fbd15b8a8625b6 (patch) | |
tree | 9fd1d324d604a8f351d6829480cc95bd980947fa /clang-tools-extra/clang-modernize | |
parent | fd541f001b25c72301e47a9ea72bd3676cb3a28d (diff) | |
download | bcm5719-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')
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); |