blob: a8ef6299028bc28ff760942d952d1c73a7f5be7a [file] [log] [blame]
Daniel Jasperd07c8402013-07-29 08:19:24 +00001//===--- LLVMTidyModule.cpp - clang-tidy ----------------------------------===//
2//
3// The LLVM Compiler Infrastructure
4//
5// This file is distributed under the University of Illinois Open Source
6// License. See LICENSE.TXT for details.
7//
8//===----------------------------------------------------------------------===//
9
Daniel Jasperd07c8402013-07-29 08:19:24 +000010#include "../ClangTidy.h"
11#include "../ClangTidyModule.h"
12#include "../ClangTidyModuleRegistry.h"
Benjamin Kramer498cce52014-08-13 13:57:57 +000013#include "HeaderGuardCheck.h"
Alexander Kornienkobef51cd2014-05-19 16:39:08 +000014#include "IncludeOrderCheck.h"
15#include "NamespaceCommentCheck.h"
Benjamin Kramer190e2cf2014-07-08 14:32:17 +000016#include "TwineLocalCheck.h"
Daniel Jasperd07c8402013-07-29 08:19:24 +000017
18namespace clang {
19namespace tidy {
20
Daniel Jasperd07c8402013-07-29 08:19:24 +000021class LLVMModule : public ClangTidyModule {
22public:
Alexander Kornienko21f3b772014-03-05 13:01:24 +000023 void addCheckFactories(ClangTidyCheckFactories &CheckFactories) override {
Daniel Jasperd07c8402013-07-29 08:19:24 +000024 CheckFactories.addCheckFactory(
Benjamin Kramer498cce52014-08-13 13:57:57 +000025 "llvm-header-guard", new ClangTidyCheckFactory<LLVMHeaderGuardCheck>());
26 CheckFactories.addCheckFactory(
Daniel Jasperd07c8402013-07-29 08:19:24 +000027 "llvm-include-order", new ClangTidyCheckFactory<IncludeOrderCheck>());
28 CheckFactories.addCheckFactory(
29 "llvm-namespace-comment",
30 new ClangTidyCheckFactory<NamespaceCommentCheck>());
Benjamin Kramer190e2cf2014-07-08 14:32:17 +000031 CheckFactories.addCheckFactory(
32 "llvm-twine-local",
33 new ClangTidyCheckFactory<TwineLocalCheck>());
Daniel Jasperd07c8402013-07-29 08:19:24 +000034 }
35};
36
37// Register the LLVMTidyModule using this statically initialized variable.
38static ClangTidyModuleRegistry::Add<LLVMModule> X("llvm-module",
39 "Adds LLVM lint checks.");
40
41// This anchor is used to force the linker to link in the generated object file
42// and thus register the LLVMModule.
43volatile int LLVMModuleAnchorSource = 0;
44
45} // namespace tidy
46} // namespace clang