9 #ifndef LLVM_CLANG_TOOLS_EXTRA_CLANG_TIDY_MODERNIZE_MAKE_SMART_PTR_H
10 #define LLVM_CLANG_TOOLS_EXTRA_CLANG_TIDY_MODERNIZE_MAKE_SMART_PTR_H
12 #include "../ClangTidyCheck.h"
13 #include "../utils/IncludeInserter.h"
14 #include "clang/ASTMatchers/ASTMatchFinder.h"
15 #include "clang/ASTMatchers/ASTMatchersInternal.h"
16 #include "llvm/ADT/StringRef.h"
27 StringRef MakeSmartPtrFunctionName);
30 Preprocessor *ModuleExpanderPP)
override;
31 void check(
const ast_matchers::MatchFinder::MatchResult &Result)
final;
49 std::unique_ptr<utils::IncludeInserter> Inserter;
51 const std::string MakeSmartPtrFunctionHeader;
52 const std::string MakeSmartPtrFunctionName;
53 const bool IgnoreMacros;
55 void checkConstruct(SourceManager &SM, ASTContext *
Ctx,
56 const CXXConstructExpr *Construct,
const QualType *
Type,
57 const CXXNewExpr *New);
58 void checkReset(SourceManager &SM, ASTContext *
Ctx,
59 const CXXMemberCallExpr *Member,
const CXXNewExpr *New);
62 bool replaceNew(DiagnosticBuilder &Diag,
const CXXNewExpr *New,
63 SourceManager &SM, ASTContext *
Ctx);
64 void insertHeader(DiagnosticBuilder &Diag, FileID FD);
71 #endif // LLVM_CLANG_TOOLS_EXTRA_CLANG_TIDY_MODERNIZE_MAKE_SMART_PTR_H