1//===--- MakeSharedCheck.cpp - clang-tidy----------------------------------===//
2//
3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4// See https://llvm.org/LICENSE.txt for license information.
5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6//
7//===----------------------------------------------------------------------===//
8
9#include "MakeSharedCheck.h"
10
11// FixItHint - Hint to check documentation script to mark this check as
12// providing a FixIt.
13
14using namespace clang::ast_matchers;
15
16namespace clang::tidy::modernize {
17
18MakeSharedCheck::MakeSharedCheck(StringRef Name, ClangTidyContext *Context)
19 : MakeSmartPtrCheck(Name, Context, "std::make_shared") {}
20
21MakeSharedCheck::SmartPtrTypeMatcher
22MakeSharedCheck::getSmartPointerTypeMatcher() const {
23 return qualType(hasUnqualifiedDesugaredType(
24 InnerMatcher: recordType(hasDeclaration(InnerMatcher: classTemplateSpecializationDecl(
25 hasName(Name: "::std::shared_ptr"), templateArgumentCountIs(N: 1),
26 hasTemplateArgument(N: 0, InnerMatcher: templateArgument(refersToType(
27 InnerMatcher: qualType().bind(ID: PointerType)))))))));
28}
29
30} // namespace clang::tidy::modernize
31

source code of clang-tools-extra/clang-tidy/modernize/MakeSharedCheck.cpp