clang-tools  12.0.0git
InefficientStringConcatenationCheck.h
Go to the documentation of this file.
1 //===--- InefficientStringConcatenationCheck.h - clang-tidy-----------*- C++
2 //-*-===//
3 //
4 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
5 // See https://llvm.org/LICENSE.txt for license information.
6 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
7 //
8 //===----------------------------------------------------------------------===//
9 
10 #ifndef LLVM_CLANG_TOOLS_EXTRA_CLANG_TIDY_PERFORMANCE_INEFFICIENTSTRINGCONCATENATION_H
11 #define LLVM_CLANG_TOOLS_EXTRA_CLANG_TIDY_PERFORMANCE_INEFFICIENTSTRINGCONCATENATION_H
12 
13 #include "../ClangTidyCheck.h"
14 
15 namespace clang {
16 namespace tidy {
17 namespace performance {
18 
19 /// This check is to warn about the performance overhead arising from
20 /// concatenating strings, using the operator+, instead of operator+=.
21 ///
22 /// For the user-facing documentation see:
23 /// http://clang.llvm.org/extra/clang-tidy/checks/performance-inefficient-string-concatenation.html
25 public:
27  ClangTidyContext *Context);
28  bool isLanguageVersionSupported(const LangOptions &LangOpts) const override {
29  return LangOpts.CPlusPlus;
30  }
31  void registerMatchers(ast_matchers::MatchFinder *Finder) override;
32  void check(const ast_matchers::MatchFinder::MatchResult &Result) override;
33  void storeOptions(ClangTidyOptions::OptionMap &Opts) override;
34 
35 private:
36  const bool StrictMode;
37 };
38 
39 } // namespace performance
40 } // namespace tidy
41 } // namespace clang
42 
43 #endif // LLVM_CLANG_TOOLS_EXTRA_CLANG_TIDY_PERFORMANCE_INEFFICIENTSTRINGCONCATENATION_H
void registerMatchers(ast_matchers::MatchFinder *Finder) override
Override this to register AST matchers with Finder.
Base class for all clang-tidy checks.
void storeOptions(ClangTidyOptions::OptionMap &Opts) override
Should store all options supported by this check with their current values or default values for opti...
This check is to warn about the performance overhead arising from concatenating strings, using the operator+, instead of operator+=.
static constexpr llvm::StringLiteral Name
===– Representation.cpp - ClangDoc Representation --------—*- C++ -*-===//
Every ClangTidyCheck reports errors through a DiagnosticsEngine provided by this context.
void check(const ast_matchers::MatchFinder::MatchResult &Result) override
ClangTidyChecks that register ASTMatchers should do the actual work in here.
std::map< std::string, ClangTidyValue > OptionMap
bool isLanguageVersionSupported(const LangOptions &LangOpts) const override
Override this to disable registering matchers and PP callbacks if an invalid language version is bein...