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