summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDmitri Gribenko <gribozavr@gmail.com>2019-09-26 13:47:29 +0000
committerDmitri Gribenko <gribozavr@gmail.com>2019-09-26 13:47:29 +0000
commit5338ffcfa1d2c38be79634bf6f58d47f1df72252 (patch)
treea7c1e8c84de66a190b45d8c74e5843e4b9432dd5
parentc15cd009ac150f5034dcec249a3f5fb2d8ab0b1c (diff)
downloadbcm5719-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
-rw-r--r--clang-tools-extra/clang-tidy/ClangTidyModule.h8
-rw-r--r--clang-tools-extra/clang-tidy/google/TodoCommentCheck.cpp2
-rw-r--r--clang-tools-extra/clang-tidy/google/TodoCommentCheck.h2
-rw-r--r--clang-tools-extra/clang-tidy/readability/IdentifierNamingCheck.cpp2
-rw-r--r--clang-tools-extra/clang-tidy/readability/IdentifierNamingCheck.h1
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;
OpenPOWER on IntegriCloud