38 lines · cpp
1//===----------------------------------------------------------------------===//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-exception6//7//===----------------------------------------------------------------------===//8 9#include "../ClangTidy.h"10#include "../ClangTidyModule.h"11#include "../ClangTidyModuleRegistry.h"12#include "AvoidSpinlockCheck.h"13#include "DispatchOnceNonstaticCheck.h"14 15namespace clang::tidy {16namespace darwin {17 18class DarwinModule : public ClangTidyModule {19public:20 void addCheckFactories(ClangTidyCheckFactories &CheckFactories) override {21 CheckFactories.registerCheck<AvoidSpinlockCheck>("darwin-avoid-spinlock");22 CheckFactories.registerCheck<DispatchOnceNonstaticCheck>(23 "darwin-dispatch-once-nonstatic");24 }25};26 27} // namespace darwin28 29// Register the DarwinTidyModule using this statically initialized variable.30static ClangTidyModuleRegistry::Add<darwin::DarwinModule>31 X("darwin-module", "Adds Darwin-specific lint checks.");32 33// This anchor is used to force the linker to link in the generated object file34// and thus register the DarwinModule.35volatile int DarwinModuleAnchorSource = 0; // NOLINT(misc-use-internal-linkage)36 37} // namespace clang::tidy38