1ce18ade4SPiotr Padlewski //===--- MakeSharedCheck.h - clang-tidy--------------------------*- C++ -*-===// 2ce18ade4SPiotr Padlewski // 32946cd70SChandler Carruth // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 42946cd70SChandler Carruth // See https://llvm.org/LICENSE.txt for license information. 52946cd70SChandler Carruth // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6ce18ade4SPiotr Padlewski // 7ce18ade4SPiotr Padlewski //===----------------------------------------------------------------------===// 8ce18ade4SPiotr Padlewski 9ce18ade4SPiotr Padlewski #ifndef LLVM_CLANG_TOOLS_EXTRA_CLANG_TIDY_MODERNIZE_MAKE_SHARED_H 10ce18ade4SPiotr Padlewski #define LLVM_CLANG_TOOLS_EXTRA_CLANG_TIDY_MODERNIZE_MAKE_SHARED_H 11ce18ade4SPiotr Padlewski 12ce18ade4SPiotr Padlewski #include "MakeSmartPtrCheck.h" 13ce18ade4SPiotr Padlewski 14*4718da50SCarlos Galvez namespace clang::tidy::modernize { 15ce18ade4SPiotr Padlewski 16ce18ade4SPiotr Padlewski /// Replace the pattern: 17ce18ade4SPiotr Padlewski /// \code 18ce18ade4SPiotr Padlewski /// std::shared_ptr<type>(new type(args...)) 19ce18ade4SPiotr Padlewski /// \endcode 20ce18ade4SPiotr Padlewski /// 21ce18ade4SPiotr Padlewski /// With the safer version: 22ce18ade4SPiotr Padlewski /// \code 23ce18ade4SPiotr Padlewski /// std::make_shared<type>(args...) 24ce18ade4SPiotr Padlewski /// \endcode 25ce18ade4SPiotr Padlewski /// 26ce18ade4SPiotr Padlewski /// For the user-facing documentation see: 276e566bc5SRichard /// http://clang.llvm.org/extra/clang-tidy/checks/modernize/make-shared.html 28ce18ade4SPiotr Padlewski class MakeSharedCheck : public MakeSmartPtrCheck { 29ce18ade4SPiotr Padlewski public: 30ce18ade4SPiotr Padlewski MakeSharedCheck(StringRef Name, ClangTidyContext *Context); 31ce18ade4SPiotr Padlewski 32ce18ade4SPiotr Padlewski protected: 33ce18ade4SPiotr Padlewski SmartPtrTypeMatcher getSmartPointerTypeMatcher() const override; 34ce18ade4SPiotr Padlewski }; 35ce18ade4SPiotr Padlewski 36*4718da50SCarlos Galvez } // namespace clang::tidy::modernize 37ce18ade4SPiotr Padlewski 38ce18ade4SPiotr Padlewski #endif // LLVM_CLANG_TOOLS_EXTRA_CLANG_TIDY_MODERNIZE_MAKE_SHARED_H 39