xref: /llvm-project/clang-tools-extra/clang-tidy/linuxkernel/LinuxKernelTidyModule.cpp (revision fc8c65b2e11d21b1c0ce070cc0a4ee031a542dae)
1*fc8c65b2STom Roeder //===--- LinuxKernelTidyModule.cpp - clang-tidy----------------------------===//
2*fc8c65b2STom Roeder //
3*fc8c65b2STom Roeder // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4*fc8c65b2STom Roeder // See https://llvm.org/LICENSE.txt for license information.
5*fc8c65b2STom Roeder // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6*fc8c65b2STom Roeder //
7*fc8c65b2STom Roeder //===----------------------------------------------------------------------===//
8*fc8c65b2STom Roeder 
9*fc8c65b2STom Roeder #include "../ClangTidy.h"
10*fc8c65b2STom Roeder #include "../ClangTidyModule.h"
11*fc8c65b2STom Roeder #include "../ClangTidyModuleRegistry.h"
12*fc8c65b2STom Roeder #include "MustCheckErrsCheck.h"
13*fc8c65b2STom Roeder 
14*fc8c65b2STom Roeder namespace clang {
15*fc8c65b2STom Roeder namespace tidy {
16*fc8c65b2STom Roeder namespace linuxkernel {
17*fc8c65b2STom Roeder 
18*fc8c65b2STom Roeder /// This module is for checks specific to the Linux kernel.
19*fc8c65b2STom Roeder class LinuxKernelModule : public ClangTidyModule {
20*fc8c65b2STom Roeder public:
21*fc8c65b2STom Roeder   void addCheckFactories(ClangTidyCheckFactories &CheckFactories) override {
22*fc8c65b2STom Roeder     CheckFactories.registerCheck<MustCheckErrsCheck>(
23*fc8c65b2STom Roeder         "linuxkernel-must-check-errs");
24*fc8c65b2STom Roeder   }
25*fc8c65b2STom Roeder };
26*fc8c65b2STom Roeder // Register the LinuxKernelTidyModule using this statically initialized
27*fc8c65b2STom Roeder // variable.
28*fc8c65b2STom Roeder static ClangTidyModuleRegistry::Add<LinuxKernelModule>
29*fc8c65b2STom Roeder     X("linux-module", "Adds checks specific to the Linux kernel.");
30*fc8c65b2STom Roeder } // namespace linuxkernel
31*fc8c65b2STom Roeder 
32*fc8c65b2STom Roeder // This anchor is used to force the linker to link in the generated object file
33*fc8c65b2STom Roeder // and thus register the LinuxKernelModule.
34*fc8c65b2STom Roeder volatile int LinuxKernelModuleAnchorSource = 0;
35*fc8c65b2STom Roeder 
36*fc8c65b2STom Roeder } // namespace tidy
37*fc8c65b2STom Roeder } // namespace clang
38