1 #ifndef CATA_TOOLS_CLANG_TIDY_PLUGIN_COMBINELOCALSINTOPOINTCHECK_H 2 #define CATA_TOOLS_CLANG_TIDY_PLUGIN_COMBINELOCALSINTOPOINTCHECK_H 3 4 #include <clang/ASTMatchers/ASTMatchFinder.h> 5 #include <llvm/ADT/StringRef.h> 6 #include <unordered_map> 7 #include <unordered_set> 8 9 #include "ClangTidy.h" 10 11 namespace clang 12 { 13 14 namespace tidy 15 { 16 class ClangTidyContext; 17 18 namespace cata 19 { 20 21 class CombineLocalsIntoPointCheck : public ClangTidyCheck 22 { 23 public: CombineLocalsIntoPointCheck(StringRef Name,ClangTidyContext * Context)24 CombineLocalsIntoPointCheck( StringRef Name, ClangTidyContext *Context ) 25 : ClangTidyCheck( Name, Context ) {} 26 void registerMatchers( ast_matchers::MatchFinder *Finder ) override; 27 void check( const ast_matchers::MatchFinder::MatchResult &Result ) override; 28 using ClangTidyCheck::getLangOpts; 29 30 std::unordered_map<const VarDecl *, std::string> usageReplacements; 31 std::unordered_set<const FunctionDecl *> alteredFunctions; 32 }; 33 34 } // namespace cata 35 } // namespace tidy 36 } // namespace clang 37 38 #endif // CATA_TOOLS_CLANG_TIDY_PLUGIN_COMBINELOCALSINTOPOINTCHECK_H 39