xref: /llvm-project/clang-tools-extra/clang-tidy/linuxkernel/LinuxKernelTidyModule.cpp (revision 7d2ea6c422d3f5712b7253407005e1a465a76946)
1fc8c65b2STom Roeder //===--- LinuxKernelTidyModule.cpp - clang-tidy----------------------------===//
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 #include "../ClangTidy.h"
10fc8c65b2STom Roeder #include "../ClangTidyModule.h"
11fc8c65b2STom Roeder #include "../ClangTidyModuleRegistry.h"
12fc8c65b2STom Roeder #include "MustCheckErrsCheck.h"
13fc8c65b2STom Roeder 
14*7d2ea6c4SCarlos Galvez namespace clang::tidy {
15fc8c65b2STom Roeder namespace linuxkernel {
16fc8c65b2STom Roeder 
17fc8c65b2STom Roeder /// This module is for checks specific to the Linux kernel.
18fc8c65b2STom Roeder class LinuxKernelModule : public ClangTidyModule {
19fc8c65b2STom Roeder public:
addCheckFactories(ClangTidyCheckFactories & CheckFactories)20fc8c65b2STom Roeder   void addCheckFactories(ClangTidyCheckFactories &CheckFactories) override {
21fc8c65b2STom Roeder     CheckFactories.registerCheck<MustCheckErrsCheck>(
22fc8c65b2STom Roeder         "linuxkernel-must-check-errs");
23fc8c65b2STom Roeder   }
24fc8c65b2STom Roeder };
25fc8c65b2STom Roeder // Register the LinuxKernelTidyModule using this statically initialized
26fc8c65b2STom Roeder // variable.
27fc8c65b2STom Roeder static ClangTidyModuleRegistry::Add<LinuxKernelModule>
28fc8c65b2STom Roeder     X("linux-module", "Adds checks specific to the Linux kernel.");
29fc8c65b2STom Roeder } // namespace linuxkernel
30fc8c65b2STom Roeder 
31fc8c65b2STom Roeder // This anchor is used to force the linker to link in the generated object file
32fc8c65b2STom Roeder // and thus register the LinuxKernelModule.
33fc8c65b2STom Roeder volatile int LinuxKernelModuleAnchorSource = 0;
34fc8c65b2STom Roeder 
35*7d2ea6c4SCarlos Galvez } // namespace clang::tidy
36