summaryrefslogtreecommitdiffstats
path: root/clang-tools-extra/clang-tidy/modernize/MakeSharedCheck.cpp
diff options
context:
space:
mode:
authorPiotr Padlewski <piotr.padlewski@gmail.com>2016-05-02 16:56:39 +0000
committerPiotr Padlewski <piotr.padlewski@gmail.com>2016-05-02 16:56:39 +0000
commitce18ade406a58aac9cfdea74479a6412f30d920f (patch)
tree8ebc5fe184c2fee2c287e9a356b3b9d2437d21b6 /clang-tools-extra/clang-tidy/modernize/MakeSharedCheck.cpp
parent45c7b3ecb574c84a559b6d00983dd19ec5041bc3 (diff)
downloadbcm5719-llvm-ce18ade406a58aac9cfdea74479a6412f30d920f.tar.gz
bcm5719-llvm-ce18ade406a58aac9cfdea74479a6412f30d920f.zip
[clang-tidy] Add modernize-make-shared check
Because modernize-make-shared do almost the same job as modernize-make-unique, I refactored common code to MakeSmartPtrCheck. http://reviews.llvm.org/D19183 llvm-svn: 268253
Diffstat (limited to 'clang-tools-extra/clang-tidy/modernize/MakeSharedCheck.cpp')
-rw-r--r--clang-tools-extra/clang-tidy/modernize/MakeSharedCheck.cpp31
1 files changed, 31 insertions, 0 deletions
diff --git a/clang-tools-extra/clang-tidy/modernize/MakeSharedCheck.cpp b/clang-tools-extra/clang-tidy/modernize/MakeSharedCheck.cpp
new file mode 100644
index 00000000000..8d3020c6d35
--- /dev/null
+++ b/clang-tools-extra/clang-tidy/modernize/MakeSharedCheck.cpp
@@ -0,0 +1,31 @@
+//===--- MakeSharedCheck.cpp - clang-tidy----------------------------------===//
+//
+// The LLVM Compiler Infrastructure
+//
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+
+#include "MakeSharedCheck.h"
+
+using namespace clang::ast_matchers;
+
+namespace clang {
+namespace tidy {
+namespace modernize {
+
+MakeSharedCheck::MakeSharedCheck(StringRef Name, ClangTidyContext *Context)
+ : MakeSmartPtrCheck(Name, Context, "std::make_shared") {}
+
+MakeSharedCheck::SmartPtrTypeMatcher
+MakeSharedCheck::getSmartPointerTypeMatcher() const {
+ return qualType(hasDeclaration(classTemplateSpecializationDecl(
+ matchesName("::std::shared_ptr"), templateArgumentCountIs(1),
+ hasTemplateArgument(
+ 0, templateArgument(refersToType(qualType().bind(PointerType)))))));
+}
+
+} // namespace modernize
+} // namespace tidy
+} // namespace clang
OpenPOWER on IntegriCloud