clang-tools 20.0.0git
MakeSharedCheck.cpp
Go to the documentation of this file.
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
19 : MakeSmartPtrCheck(Name, Context, "std::make_shared") {}
20
23 return qualType(hasUnqualifiedDesugaredType(
24 recordType(hasDeclaration(classTemplateSpecializationDecl(
25 hasName("::std::shared_ptr"), templateArgumentCountIs(1),
26 hasTemplateArgument(0, templateArgument(refersToType(
27 qualType().bind(PointerType)))))))));
28}
29
30} // namespace clang::tidy::modernize
llvm::SmallString< 256U > Name
Every ClangTidyCheck reports errors through a DiagnosticsEngine provided by this context.
SmartPtrTypeMatcher getSmartPointerTypeMatcher() const override
Returns matcher that match with different smart pointer types.
MakeSharedCheck(StringRef Name, ClangTidyContext *Context)
Base class for MakeSharedCheck and MakeUniqueCheck.
ast_matchers::internal::BindableMatcher< QualType > SmartPtrTypeMatcher