xref: /llvm-project/clang-tools-extra/clang-tidy/mpi/MPITidyModule.cpp (revision 1512f9a0f96f2795ca497099d3d39ed30cdaea33)
1 //===--- MPITidyModule.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 
10 #include "../ClangTidy.h"
11 #include "../ClangTidyModule.h"
12 #include "../ClangTidyModuleRegistry.h"
13 #include "BufferDerefCheck.h"
14 #include "TypeMismatchCheck.h"
15 
16 namespace clang {
17 namespace tidy {
18 namespace mpi {
19 
20 class MPIModule : public ClangTidyModule {
21 public:
22   void addCheckFactories(ClangTidyCheckFactories &CheckFactories) override {
23     CheckFactories.registerCheck<BufferDerefCheck>("mpi-buffer-deref");
24     CheckFactories.registerCheck<TypeMismatchCheck>("mpi-type-mismatch");
25   }
26 };
27 
28 } // namespace mpi
29 
30 // Register the MPITidyModule using this statically initialized variable.
31 static ClangTidyModuleRegistry::Add<mpi::MPIModule>
32     X("mpi-module", "Adds MPI clang-tidy checks.");
33 
34 // This anchor is used to force the linker to link in the generated object file
35 // and thus register the MPIModule.
36 volatile int MPIModuleAnchorSource = 0;
37 
38 } // namespace tidy
39 } // namespace clang
40