diff options
| author | Dmitri Gribenko <gribozavr@gmail.com> | 2019-09-26 13:47:29 +0000 |
|---|---|---|
| committer | Dmitri Gribenko <gribozavr@gmail.com> | 2019-09-26 13:47:29 +0000 |
| commit | 5338ffcfa1d2c38be79634bf6f58d47f1df72252 (patch) | |
| tree | a7c1e8c84de66a190b45d8c74e5843e4b9432dd5 | |
| parent | c15cd009ac150f5034dcec249a3f5fb2d8ab0b1c (diff) | |
| download | bcm5719-llvm-5338ffcfa1d2c38be79634bf6f58d47f1df72252.tar.gz bcm5719-llvm-5338ffcfa1d2c38be79634bf6f58d47f1df72252.zip | |
Use std::unique_ptr in ClangTidyCheckFactories
I had to explicitly define some destructors that could only be defined
in the corresponding .cpp files.
llvm-svn: 372978
5 files changed, 11 insertions, 4 deletions
diff --git a/clang-tools-extra/clang-tidy/ClangTidyModule.h b/clang-tools-extra/clang-tidy/ClangTidyModule.h index 894093d95b9..b92971f30fd 100644 --- a/clang-tools-extra/clang-tidy/ClangTidyModule.h +++ b/clang-tools-extra/clang-tidy/ClangTidyModule.h @@ -13,6 +13,7 @@ #include "llvm/ADT/StringRef.h" #include <functional> #include <map> +#include <memory> #include <string> #include <utility> @@ -25,9 +26,8 @@ namespace tidy { /// this object. class ClangTidyCheckFactories { public: - typedef std::function<ClangTidyCheck *(StringRef Name, - ClangTidyContext *Context)> - CheckFactory; + using CheckFactory = std::function<std::unique_ptr<ClangTidyCheck>( + StringRef Name, ClangTidyContext *Context)>; /// Registers check \p Factory with name \p Name. /// @@ -58,7 +58,7 @@ public: template <typename CheckType> void registerCheck(StringRef CheckName) { registerCheckFactory(CheckName, [](StringRef Name, ClangTidyContext *Context) { - return new CheckType(Name, Context); + return std::make_unique<CheckType>(Name, Context); }); } diff --git a/clang-tools-extra/clang-tidy/google/TodoCommentCheck.cpp b/clang-tools-extra/clang-tidy/google/TodoCommentCheck.cpp index 787c30548d4..ec099f0e400 100644 --- a/clang-tools-extra/clang-tidy/google/TodoCommentCheck.cpp +++ b/clang-tools-extra/clang-tidy/google/TodoCommentCheck.cpp @@ -55,6 +55,8 @@ TodoCommentCheck::TodoCommentCheck(StringRef Name, ClangTidyContext *Context) Handler(std::make_unique<TodoCommentHandler>( *this, Context->getOptions().User)) {} +TodoCommentCheck::~TodoCommentCheck() = default; + void TodoCommentCheck::registerPPCallbacks(const SourceManager &SM, Preprocessor *PP, Preprocessor *ModuleExpanderPP) { diff --git a/clang-tools-extra/clang-tidy/google/TodoCommentCheck.h b/clang-tools-extra/clang-tidy/google/TodoCommentCheck.h index d1343b74fdb..8c32dddc283 100644 --- a/clang-tools-extra/clang-tidy/google/TodoCommentCheck.h +++ b/clang-tools-extra/clang-tidy/google/TodoCommentCheck.h @@ -22,6 +22,8 @@ namespace readability { class TodoCommentCheck : public ClangTidyCheck { public: TodoCommentCheck(StringRef Name, ClangTidyContext *Context); + ~TodoCommentCheck(); + void registerPPCallbacks(const SourceManager &SM, Preprocessor *PP, Preprocessor *ModuleExpanderPP) override; diff --git a/clang-tools-extra/clang-tidy/readability/IdentifierNamingCheck.cpp b/clang-tools-extra/clang-tidy/readability/IdentifierNamingCheck.cpp index dc24f663ae3..32289404132 100644 --- a/clang-tools-extra/clang-tidy/readability/IdentifierNamingCheck.cpp +++ b/clang-tools-extra/clang-tidy/readability/IdentifierNamingCheck.cpp @@ -193,6 +193,8 @@ IdentifierNamingCheck::IdentifierNamingCheck(StringRef Name, IgnoreFailedSplit = Options.get("IgnoreFailedSplit", 0); } +IdentifierNamingCheck::~IdentifierNamingCheck() = default; + void IdentifierNamingCheck::storeOptions(ClangTidyOptions::OptionMap &Opts) { auto const toString = [](CaseType Type) { switch (Type) { diff --git a/clang-tools-extra/clang-tidy/readability/IdentifierNamingCheck.h b/clang-tools-extra/clang-tidy/readability/IdentifierNamingCheck.h index 5d5f0560494..250dc361ff7 100644 --- a/clang-tools-extra/clang-tidy/readability/IdentifierNamingCheck.h +++ b/clang-tools-extra/clang-tidy/readability/IdentifierNamingCheck.h @@ -34,6 +34,7 @@ namespace readability { class IdentifierNamingCheck : public ClangTidyCheck { public: IdentifierNamingCheck(StringRef Name, ClangTidyContext *Context); + ~IdentifierNamingCheck(); void storeOptions(ClangTidyOptions::OptionMap &Opts) override; void registerMatchers(ast_matchers::MatchFinder *Finder) override; |

