31 lines · cpp
1//===----------------------------------------------------------------------===//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-exception6//7//===----------------------------------------------------------------------===//8 9#include "MakeSharedCheck.h"10 11// FixItHint - Hint to check documentation script to mark this check as12// 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::SmartPtrTypeMatcher22MakeSharedCheck::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::modernize31