1405c3a6bSDmitri Gribenko //===--- MiscTidyModule.cpp - clang-tidy ----------------------------------===// 2405c3a6bSDmitri Gribenko // 3405c3a6bSDmitri Gribenko // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4405c3a6bSDmitri Gribenko // See https://llvm.org/LICENSE.txt for license information. 5405c3a6bSDmitri Gribenko // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6405c3a6bSDmitri Gribenko // 7405c3a6bSDmitri Gribenko //===----------------------------------------------------------------------===// 8405c3a6bSDmitri Gribenko 9405c3a6bSDmitri Gribenko #include "../ClangTidy.h" 10405c3a6bSDmitri Gribenko #include "../ClangTidyModule.h" 11405c3a6bSDmitri Gribenko #include "../ClangTidyModuleRegistry.h" 12e4acb971SStephane Moore #include "AvoidSpinlockCheck.h" 13405c3a6bSDmitri Gribenko #include "DispatchOnceNonstaticCheck.h" 14405c3a6bSDmitri Gribenko 15*7d2ea6c4SCarlos Galvez namespace clang::tidy { 16405c3a6bSDmitri Gribenko namespace darwin { 17405c3a6bSDmitri Gribenko 18405c3a6bSDmitri Gribenko class DarwinModule : public ClangTidyModule { 19405c3a6bSDmitri Gribenko public: addCheckFactories(ClangTidyCheckFactories & CheckFactories)20405c3a6bSDmitri Gribenko void addCheckFactories(ClangTidyCheckFactories &CheckFactories) override { 21e4acb971SStephane Moore CheckFactories.registerCheck<AvoidSpinlockCheck>( 22e4acb971SStephane Moore "darwin-avoid-spinlock"); 23405c3a6bSDmitri Gribenko CheckFactories.registerCheck<DispatchOnceNonstaticCheck>( 24405c3a6bSDmitri Gribenko "darwin-dispatch-once-nonstatic"); 25405c3a6bSDmitri Gribenko } 26405c3a6bSDmitri Gribenko }; 27405c3a6bSDmitri Gribenko 28405c3a6bSDmitri Gribenko } // namespace darwin 29405c3a6bSDmitri Gribenko 30405c3a6bSDmitri Gribenko // Register the DarwinTidyModule using this statically initialized variable. 31405c3a6bSDmitri Gribenko static ClangTidyModuleRegistry::Add<darwin::DarwinModule> 32d1337ec2SDmitri Gribenko X("darwin-module", "Adds Darwin-specific lint checks."); 33405c3a6bSDmitri Gribenko 34405c3a6bSDmitri Gribenko // This anchor is used to force the linker to link in the generated object file 35405c3a6bSDmitri Gribenko // and thus register the DarwinModule. 36405c3a6bSDmitri Gribenko volatile int DarwinModuleAnchorSource = 0; 37405c3a6bSDmitri Gribenko 38*7d2ea6c4SCarlos Galvez } // namespace clang::tidy 39