blob: d11ef1fa01c980e94734cf5b9b7e07211830998d [file] [log] [blame]
Dmitri Gribenko405c3a62019-09-27 10:49:12 +00001//===--- MiscTidyModule.cpp - clang-tidy ----------------------------------===//
2//
3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4// See https://llvm.org/LICENSE.txt for license information.
5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6//
7//===----------------------------------------------------------------------===//
8
9#include "../ClangTidy.h"
10#include "../ClangTidyModule.h"
11#include "../ClangTidyModuleRegistry.h"
Stephane Mooree4acb972019-10-01 21:18:40 +000012#include "AvoidSpinlockCheck.h"
Dmitri Gribenko405c3a62019-09-27 10:49:12 +000013#include "DispatchOnceNonstaticCheck.h"
14
15namespace clang {
16namespace tidy {
17namespace darwin {
18
19class DarwinModule : public ClangTidyModule {
20public:
21 void addCheckFactories(ClangTidyCheckFactories &CheckFactories) override {
Stephane Mooree4acb972019-10-01 21:18:40 +000022 CheckFactories.registerCheck<AvoidSpinlockCheck>(
23 "darwin-avoid-spinlock");
Dmitri Gribenko405c3a62019-09-27 10:49:12 +000024 CheckFactories.registerCheck<DispatchOnceNonstaticCheck>(
25 "darwin-dispatch-once-nonstatic");
26 }
27};
28
29} // namespace darwin
30
31// Register the DarwinTidyModule using this statically initialized variable.
32static ClangTidyModuleRegistry::Add<darwin::DarwinModule>
Dmitri Gribenkod1337ec2019-10-01 07:17:26 +000033 X("darwin-module", "Adds Darwin-specific lint checks.");
Dmitri Gribenko405c3a62019-09-27 10:49:12 +000034
35// This anchor is used to force the linker to link in the generated object file
36// and thus register the DarwinModule.
37volatile int DarwinModuleAnchorSource = 0;
38
39} // namespace tidy
40} // namespace clang