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