1//===--- LLVMTidyModule.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"
12#include "../readability/ElseAfterReturnCheck.h"
13#include "../readability/NamespaceCommentCheck.h"
14#include "../readability/QualifiedAutoCheck.h"
15#include "HeaderGuardCheck.h"
16#include "IncludeOrderCheck.h"
17#include "PreferIsaOrDynCastInConditionalsCheck.h"
18#include "PreferRegisterOverUnsignedCheck.h"
19#include "TwineLocalCheck.h"
20
21namespace clang::tidy {
22namespace llvm_check {
23
24class LLVMModule : public ClangTidyModule {
25public:
26 void addCheckFactories(ClangTidyCheckFactories &CheckFactories) override {
27 CheckFactories.registerCheck<readability::ElseAfterReturnCheck>(
28 CheckName: "llvm-else-after-return");
29 CheckFactories.registerCheck<LLVMHeaderGuardCheck>(CheckName: "llvm-header-guard");
30 CheckFactories.registerCheck<IncludeOrderCheck>(CheckName: "llvm-include-order");
31 CheckFactories.registerCheck<readability::NamespaceCommentCheck>(
32 CheckName: "llvm-namespace-comment");
33 CheckFactories.registerCheck<PreferIsaOrDynCastInConditionalsCheck>(
34 CheckName: "llvm-prefer-isa-or-dyn-cast-in-conditionals");
35 CheckFactories.registerCheck<PreferRegisterOverUnsignedCheck>(
36 CheckName: "llvm-prefer-register-over-unsigned");
37 CheckFactories.registerCheck<readability::QualifiedAutoCheck>(
38 CheckName: "llvm-qualified-auto");
39 CheckFactories.registerCheck<TwineLocalCheck>(CheckName: "llvm-twine-local");
40 }
41
42 ClangTidyOptions getModuleOptions() override {
43 ClangTidyOptions Options;
44 Options.CheckOptions["llvm-qualified-auto.AddConstToQualified"] = "false";
45 Options.CheckOptions["llvm-else-after-return.WarnOnUnfixable"] = "false";
46 Options.CheckOptions["llvm-else-after-return.WarnOnConditionVariables"] =
47 "false";
48 return Options;
49 }
50};
51
52// Register the LLVMTidyModule using this statically initialized variable.
53static ClangTidyModuleRegistry::Add<LLVMModule> X("llvm-module",
54 "Adds LLVM lint checks.");
55
56} // namespace llvm_check
57
58// This anchor is used to force the linker to link in the generated object file
59// and thus register the LLVMModule.
60volatile int LLVMModuleAnchorSource = 0;
61
62} // namespace clang::tidy
63

source code of clang-tools-extra/clang-tidy/llvm/LLVMTidyModule.cpp