aboutsummaryrefslogtreecommitdiff
path: root/clang-tidy/performance
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
commit6fce394f709ce4f6ec9c7d0b01ecf859a58ecdff (patch)
tree864a19f42557522c648c714b1323c7a28734061d /clang-tidy/performance
parent68b67631e4f3b6723eb0741712a7e74110b4fe75 (diff)
[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 git-svn-id: https://llvm.org/svn/llvm-project/clang-tools-extra/trunk@269065 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'clang-tidy/performance')
-rw-r--r--clang-tidy/performance/FasterStringFindCheck.cpp22
1 files changed, 4 insertions, 18 deletions
diff --git a/clang-tidy/performance/FasterStringFindCheck.cpp b/clang-tidy/performance/FasterStringFindCheck.cpp
index ea43d352..893458f4 100644
--- a/clang-tidy/performance/FasterStringFindCheck.cpp
+++ b/clang-tidy/performance/FasterStringFindCheck.cpp
@@ -8,6 +8,7 @@
//===----------------------------------------------------------------------===//
#include "FasterStringFindCheck.h"
+#include "../utils/OptionsUtils.h"
#include "clang/AST/ASTContext.h"
#include "clang/ASTMatchers/ASTMatchFinder.h"
#include "llvm/ADT/Optional.h"
@@ -21,20 +22,6 @@ namespace performance {
namespace {
-static const char StringLikeClassesDelimiter[] = ";";
-
-std::vector<std::string> ParseClasses(StringRef Option) {
- SmallVector<StringRef, 4> Classes;
- Option.split(Classes, StringLikeClassesDelimiter);
- std::vector<std::string> Result;
- for (StringRef &Class : Classes) {
- Class = Class.trim();
- if (!Class.empty())
- Result.push_back(Class);
- }
- return Result;
-}
-
llvm::Optional<std::string> MakeCharacterLiteral(const StringLiteral *Literal) {
std::string Result;
{
@@ -64,14 +51,13 @@ AST_MATCHER_FUNCTION(ast_matchers::internal::Matcher<Expr>,
FasterStringFindCheck::FasterStringFindCheck(StringRef Name,
ClangTidyContext *Context)
: ClangTidyCheck(Name, Context),
- StringLikeClasses(
- ParseClasses(Options.get("StringLikeClasses", "std::basic_string"))) {
+ StringLikeClasses(utils::options::parseStringList(
+ Options.get("StringLikeClasses", "std::basic_string"))) {
}
void FasterStringFindCheck::storeOptions(ClangTidyOptions::OptionMap &Opts) {
Options.store(Opts, "StringLikeClasses",
- llvm::join(StringLikeClasses.begin(), StringLikeClasses.end(),
- StringLikeClassesDelimiter));
+ utils::options::serializeStringList(StringLikeClasses));
}
void FasterStringFindCheck::registerMatchers(MatchFinder *Finder) {