xref: /llvm-project/clang-tools-extra/clang-tidy/linuxkernel/MustCheckErrsCheck.h (revision a2691959cd23de9505243e9396897a3415606689)
1fc8c65b2STom Roeder //===--- MustCheckErrsCheck.h - clang-tidy ----------------------*- C++ -*-===//
2fc8c65b2STom Roeder //
3fc8c65b2STom Roeder // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4fc8c65b2STom Roeder // See https://llvm.org/LICENSE.txt for license information.
5fc8c65b2STom Roeder // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6fc8c65b2STom Roeder //
7fc8c65b2STom Roeder //===----------------------------------------------------------------------===//
8fc8c65b2STom Roeder 
9fc8c65b2STom Roeder #ifndef LLVM_CLANG_TOOLS_EXTRA_CLANG_TIDY_LINUXKERNEL_MUSTCHECKERRSCHECK_H
10fc8c65b2STom Roeder #define LLVM_CLANG_TOOLS_EXTRA_CLANG_TIDY_LINUXKERNEL_MUSTCHECKERRSCHECK_H
11fc8c65b2STom Roeder 
12fc8c65b2STom Roeder #include "../ClangTidyCheck.h"
13fc8c65b2STom Roeder 
144718da50SCarlos Galvez namespace clang::tidy::linuxkernel {
15fc8c65b2STom Roeder 
16fc8c65b2STom Roeder /// Checks Linux kernel code to see if it uses the results from the functions in
17fc8c65b2STom Roeder /// linux/err.h. Also checks to see if code uses the results from functions that
18fc8c65b2STom Roeder /// directly return a value from one of these error functions.
19fc8c65b2STom Roeder ///
20fc8c65b2STom Roeder /// For the user-facing documentation see:
21*a2691959Swhisperity /// http://clang.llvm.org/extra/clang-tidy/checks/linuxkernel/must-check-errs.html
22fc8c65b2STom Roeder class MustCheckErrsCheck : public ClangTidyCheck {
23fc8c65b2STom Roeder public:
MustCheckErrsCheck(StringRef Name,ClangTidyContext * Context)24fc8c65b2STom Roeder   MustCheckErrsCheck(StringRef Name, ClangTidyContext *Context)
25fc8c65b2STom Roeder       : ClangTidyCheck(Name, Context) {}
26fc8c65b2STom Roeder   void registerMatchers(ast_matchers::MatchFinder *Finder) override;
27fc8c65b2STom Roeder   void check(const ast_matchers::MatchFinder::MatchResult &Result) override;
28fc8c65b2STom Roeder };
29fc8c65b2STom Roeder 
304718da50SCarlos Galvez } // namespace clang::tidy::linuxkernel
31fc8c65b2STom Roeder 
32fc8c65b2STom Roeder #endif // LLVM_CLANG_TOOLS_EXTRA_CLANG_TIDY_LINUXKERNEL_MUSTCHECKERRSCHECK_H
33