diff options
author | Alexander Kornienko <alexfh@google.com> | 2016-07-25 15:43:14 +0000 |
---|---|---|
committer | Alexander Kornienko <alexfh@google.com> | 2016-07-25 15:43:14 +0000 |
commit | 651767dbc783dabceb29a45773cbabb58d30b717 (patch) | |
tree | f1fe3de412c5d7be96a0c56de20e3f7796a4c6b1 /clang-tools-extra/clang-tidy/mpi/MPITidyModule.cpp | |
parent | c5e509316a5dfe418721b5c714325bf12168696d (diff) | |
download | llvm-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.cpp | 37 |
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 |