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 14 using namespace clang::ast_matchers; 15 16 namespace clang::tidy::modernize { 17 MakeSharedCheck(StringRef Name,ClangTidyContext * Context)18MakeSharedCheck::MakeSharedCheck(StringRef Name, ClangTidyContext *Context) 19 : MakeSmartPtrCheck(Name, Context, "std::make_shared") {} 20 21 MakeSharedCheck::SmartPtrTypeMatcher getSmartPointerTypeMatcher() const22MakeSharedCheck::getSmartPointerTypeMatcher() const { 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 31