aboutsummaryrefslogtreecommitdiff
path: root/clang-tools-extra/clang-tidy/mpi/MPITidyModule.cpp
diff options
context:
space:
mode:
authorAlexander Kornienko <alexfh@google.com>2016-07-25 15:43:14 +0000
committerAlexander Kornienko <alexfh@google.com>2016-07-25 15:43:14 +0000
commit651767dbc783dabceb29a45773cbabb58d30b717 (patch)
treef1fe3de412c5d7be96a0c56de20e3f7796a4c6b1 /clang-tools-extra/clang-tidy/mpi/MPITidyModule.cpp
parentc5e509316a5dfe418721b5c714325bf12168696d (diff)
downloadllvm-651767dbc783dabceb29a45773cbabb58d30b717.zip
llvm-651767dbc783dabceb29a45773cbabb58d30b717.tar.gz
llvm-651767dbc783dabceb29a45773cbabb58d30b717.tar.bz2
MPITypeMismatchCheck for Clang-Tidy
Summary: This check verifies if buffer type and MPI (Message Passing Interface) datatype pairs match. All MPI datatypes defined by the MPI standard (3.1) are verified by this check. User defined typedefs, custom MPI datatypes and null pointer constants are skipped, in the course of verification. Instructions on how to apply the check can be found at: https://github.com/0ax1/MPI-Checker/tree/master/examples Reviewers: alexfh Subscribers: cfe-commits Projects: #clang-tools-extra Patch by Alexander Droste! Differential Revision: https://reviews.llvm.org/D21962 llvm-svn: 276640
Diffstat (limited to 'clang-tools-extra/clang-tidy/mpi/MPITidyModule.cpp')
-rw-r--r--clang-tools-extra/clang-tidy/mpi/MPITidyModule.cpp37
1 files changed, 37 insertions, 0 deletions
diff --git a/clang-tools-extra/clang-tidy/mpi/MPITidyModule.cpp b/clang-tools-extra/clang-tidy/mpi/MPITidyModule.cpp
new file mode 100644
index 0000000..babf7b6
--- /dev/null
+++ b/clang-tools-extra/clang-tidy/mpi/MPITidyModule.cpp
@@ -0,0 +1,37 @@
+//===--- MPITidyModule.cpp - clang-tidy -----------------------------------===//
+//
+// The LLVM Compiler Infrastructure
+//
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+
+#include "../ClangTidy.h"
+#include "../ClangTidyModule.h"
+#include "../ClangTidyModuleRegistry.h"
+#include "TypeMismatchCheck.h"
+
+namespace clang {
+namespace tidy {
+namespace mpi {
+
+class MPIModule : public ClangTidyModule {
+public:
+ void addCheckFactories(ClangTidyCheckFactories &CheckFactories) override {
+ CheckFactories.registerCheck<TypeMismatchCheck>("mpi-type-mismatch");
+ }
+};
+
+} // namespace mpi
+
+// Register the MPITidyModule using this statically initialized variable.
+static ClangTidyModuleRegistry::Add<mpi::MPIModule>
+ X("mpi-module", "Adds MPI clang-tidy checks.");
+
+// This anchor is used to force the linker to link in the generated object file
+// and thus register the MPIModule.
+volatile int MPIModuleAnchorSource = 0;
+
+} // namespace tidy
+} // namespace clang