summaryrefslogtreecommitdiffstats
path: root/clang-tools-extra/clang-tidy/misc/DanglingHandleCheck.cpp
diff options
context:
space:
mode:
authorEtienne Bergeron <etienneb@google.com>2016-05-10 15:31:15 +0000
committerEtienne Bergeron <etienneb@google.com>2016-05-10 15:31:15 +0000
commitde1ec037793fbbc44553c2bb45a3d9aa46bb2202 (patch)
treed3bc506c8e1cd4f5970851c35113750ec3968d5d /clang-tools-extra/clang-tidy/misc/DanglingHandleCheck.cpp
parentbf9473b2d8dfeaebcfa25370d16a0f753afa57f8 (diff)
downloadbcm5719-llvm-de1ec037793fbbc44553c2bb45a3d9aa46bb2202.tar.gz
bcm5719-llvm-de1ec037793fbbc44553c2bb45a3d9aa46bb2202.zip
[clang-tidy] Lift parsing of sequence of names functions to utils.
Summary: Lift some common code used by multiple checkers. This function is also used by checkers that are coming. It is quite common for a checker to parse a list of names. Reviewers: alexfh Subscribers: cfe-commits Differential Revision: http://reviews.llvm.org/D19846 llvm-svn: 269065
Diffstat (limited to 'clang-tools-extra/clang-tidy/misc/DanglingHandleCheck.cpp')
-rw-r--r--clang-tools-extra/clang-tidy/misc/DanglingHandleCheck.cpp20
1 files changed, 3 insertions, 17 deletions
diff --git a/clang-tools-extra/clang-tidy/misc/DanglingHandleCheck.cpp b/clang-tools-extra/clang-tidy/misc/DanglingHandleCheck.cpp
index 4b7eaed3612..d9040ad0ed7 100644
--- a/clang-tools-extra/clang-tidy/misc/DanglingHandleCheck.cpp
+++ b/clang-tools-extra/clang-tidy/misc/DanglingHandleCheck.cpp
@@ -8,6 +8,7 @@
//===----------------------------------------------------------------------===//
#include "DanglingHandleCheck.h"
+#include "../utils/OptionsUtils.h"
#include "clang/AST/ASTContext.h"
#include "clang/ASTMatchers/ASTMatchFinder.h"
@@ -19,20 +20,6 @@ namespace misc {
namespace {
-static const char HandleClassesDelimiter[] = ";";
-
-std::vector<std::string> parseClasses(StringRef Option) {
- SmallVector<StringRef, 4> Classes;
- Option.split(Classes, HandleClassesDelimiter);
- std::vector<std::string> Result;
- for (StringRef &Class : Classes) {
- Class = Class.trim();
- if (!Class.empty())
- Result.push_back(Class);
- }
- return Result;
-}
-
ast_matchers::internal::BindableMatcher<Stmt>
handleFrom(ast_matchers::internal::Matcher<RecordDecl> IsAHandle,
ast_matchers::internal::Matcher<Expr> Arg) {
@@ -97,7 +84,7 @@ makeContainerMatcher(ast_matchers::internal::Matcher<RecordDecl> IsAHandle) {
DanglingHandleCheck::DanglingHandleCheck(StringRef Name,
ClangTidyContext *Context)
: ClangTidyCheck(Name, Context),
- HandleClasses(parseClasses(Options.get(
+ HandleClasses(utils::options::parseStringList(Options.get(
"HandleClasses",
"std::basic_string_view;std::experimental::basic_string_view"))),
IsAHandle(cxxRecordDecl(hasAnyName(std::vector<StringRef>(
@@ -106,8 +93,7 @@ DanglingHandleCheck::DanglingHandleCheck(StringRef Name,
void DanglingHandleCheck::storeOptions(ClangTidyOptions::OptionMap &Opts) {
Options.store(Opts, "HandleClasses",
- llvm::join(HandleClasses.begin(), HandleClasses.end(),
- HandleClassesDelimiter));
+ utils::options::serializeStringList(HandleClasses));
}
void DanglingHandleCheck::registerMatchersForVariables(MatchFinder *Finder) {
OpenPOWER on IntegriCloud