xref: /llvm-project/clang-tools-extra/clang-tidy/cppcoreguidelines/InitVariablesCheck.h (revision 4718da506091a37ca4863d979bc541e359b79b10)
1b879fd05SAaron Ballman //===--- InitVariablesCheck.h - clang-tidy ----------------------*- C++ -*-===//
2b879fd05SAaron Ballman //
3b879fd05SAaron Ballman // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4b879fd05SAaron Ballman // See https://llvm.org/LICENSE.txt for license information.
5b879fd05SAaron Ballman // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6b879fd05SAaron Ballman //
7b879fd05SAaron Ballman //===----------------------------------------------------------------------===//
8b879fd05SAaron Ballman 
9b879fd05SAaron Ballman #ifndef LLVM_CLANG_TOOLS_EXTRA_CLANG_TIDY_CPPCOREGUIDELINES_INITVARIABLESCHECK_H
10b879fd05SAaron Ballman #define LLVM_CLANG_TOOLS_EXTRA_CLANG_TIDY_CPPCOREGUIDELINES_INITVARIABLESCHECK_H
11b879fd05SAaron Ballman 
12b879fd05SAaron Ballman #include "../ClangTidyCheck.h"
13b879fd05SAaron Ballman #include "../utils/IncludeInserter.h"
14b879fd05SAaron Ballman #include "../utils/OptionsUtils.h"
15b879fd05SAaron Ballman 
16*4718da50SCarlos Galvez namespace clang::tidy::cppcoreguidelines {
17b879fd05SAaron Ballman 
18b879fd05SAaron Ballman /// Find uninitialized local variables.
19b879fd05SAaron Ballman ///
20b879fd05SAaron Ballman /// For the user-facing documentation see:
216e566bc5SRichard /// http://clang.llvm.org/extra/clang-tidy/checks/cppcoreguidelines/init-variables.html
22b879fd05SAaron Ballman class InitVariablesCheck : public ClangTidyCheck {
23b879fd05SAaron Ballman public:
24b879fd05SAaron Ballman   InitVariablesCheck(StringRef Name, ClangTidyContext *Context);
25db90d315SNathan James   void storeOptions(ClangTidyOptions::OptionMap &Opts) override;
26b879fd05SAaron Ballman   void registerPPCallbacks(const SourceManager &SM, Preprocessor *PP,
27b879fd05SAaron Ballman                            Preprocessor *ModuleExpanderPP) override;
28b879fd05SAaron Ballman   void registerMatchers(ast_matchers::MatchFinder *Finder) override;
29b879fd05SAaron Ballman   void check(const ast_matchers::MatchFinder::MatchResult &Result) override;
30b879fd05SAaron Ballman 
31b879fd05SAaron Ballman private:
3213c9bbc2SNathan James   utils::IncludeInserter IncludeInserter;
3312cb5405SNathan James   const StringRef MathHeader;
34b879fd05SAaron Ballman };
35b879fd05SAaron Ballman 
36*4718da50SCarlos Galvez } // namespace clang::tidy::cppcoreguidelines
37b879fd05SAaron Ballman 
38b879fd05SAaron Ballman #endif // LLVM_CLANG_TOOLS_EXTRA_CLANG_TIDY_CPPCOREGUIDELINES_INITVARIABLESCHECK_H
39