diff options
-rw-r--r-- | clang-tools-extra/clang-tidy/CMakeLists.txt | 1 | ||||
-rw-r--r-- | clang-tools-extra/clang-tidy/ClangTidyForceLinker.h | 5 | ||||
-rw-r--r-- | clang-tools-extra/clang-tidy/openmp/CMakeLists.txt | 11 | ||||
-rw-r--r-- | clang-tools-extra/clang-tidy/openmp/OpenMPTidyModule.cpp | 35 | ||||
-rw-r--r-- | clang-tools-extra/clang-tidy/plugin/CMakeLists.txt | 1 | ||||
-rw-r--r-- | clang-tools-extra/clang-tidy/tool/CMakeLists.txt | 1 | ||||
-rw-r--r-- | clang-tools-extra/docs/ReleaseNotes.rst | 4 | ||||
-rw-r--r-- | clang-tools-extra/docs/clang-tidy/index.rst | 1 |
8 files changed, 59 insertions, 0 deletions
diff --git a/clang-tools-extra/clang-tidy/CMakeLists.txt b/clang-tools-extra/clang-tidy/CMakeLists.txt index d329cf8d6c1..1cdd0217006 100644 --- a/clang-tools-extra/clang-tidy/CMakeLists.txt +++ b/clang-tools-extra/clang-tidy/CMakeLists.txt @@ -50,6 +50,7 @@ if(CLANG_ENABLE_STATIC_ANALYZER) add_subdirectory(mpi) endif() add_subdirectory(objc) +add_subdirectory(openmp) add_subdirectory(performance) add_subdirectory(plugin) add_subdirectory(portability) diff --git a/clang-tools-extra/clang-tidy/ClangTidyForceLinker.h b/clang-tools-extra/clang-tidy/ClangTidyForceLinker.h index 966aeb2886f..6100cf6a0b4 100644 --- a/clang-tools-extra/clang-tidy/ClangTidyForceLinker.h +++ b/clang-tools-extra/clang-tidy/ClangTidyForceLinker.h @@ -77,6 +77,11 @@ static int LLVM_ATTRIBUTE_UNUSED MPIModuleAnchorDestination = MPIModuleAnchorSource; #endif +// This anchor is used to force the linker to link the OpenMPModule. +extern volatile int OpenMPModuleAnchorSource; +static int LLVM_ATTRIBUTE_UNUSED OpenMPModuleAnchorDestination = + OpenMPModuleAnchorSource; + // This anchor is used to force the linker to link the PerformanceModule. extern volatile int PerformanceModuleAnchorSource; static int LLVM_ATTRIBUTE_UNUSED PerformanceModuleAnchorDestination = diff --git a/clang-tools-extra/clang-tidy/openmp/CMakeLists.txt b/clang-tools-extra/clang-tidy/openmp/CMakeLists.txt new file mode 100644 index 00000000000..4bd4dffead8 --- /dev/null +++ b/clang-tools-extra/clang-tidy/openmp/CMakeLists.txt @@ -0,0 +1,11 @@ +set(LLVM_LINK_COMPONENTS support) + +add_clang_library(clangTidyOpenMPModule + OpenMPTidyModule.cpp + + LINK_LIBS + clangAST + clangASTMatchers + clangBasic + clangTidy + ) diff --git a/clang-tools-extra/clang-tidy/openmp/OpenMPTidyModule.cpp b/clang-tools-extra/clang-tidy/openmp/OpenMPTidyModule.cpp new file mode 100644 index 00000000000..9dcc25885bd --- /dev/null +++ b/clang-tools-extra/clang-tidy/openmp/OpenMPTidyModule.cpp @@ -0,0 +1,35 @@ +//===--- OpenMPTidyModule.cpp - clang-tidy--------------------------------===// +// +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// +//===----------------------------------------------------------------------===// + +#include "../ClangTidy.h" +#include "../ClangTidyModule.h" +#include "../ClangTidyModuleRegistry.h" + +namespace clang { +namespace tidy { +namespace openmp { + +/// This module is for OpenMP-specific checks. +class OpenMPModule : public ClangTidyModule { +public: + void addCheckFactories(ClangTidyCheckFactories &CheckFactories) override { + } +}; + +// Register the OpenMPTidyModule using this statically initialized variable. +static ClangTidyModuleRegistry::Add<OpenMPModule> + X("openmp-module", "Adds OpenMP-specific checks."); + +} // namespace openmp + +// This anchor is used to force the linker to link in the generated object file +// and thus register the OpenMPModule. +volatile int OpenMPModuleAnchorSource = 0; + +} // namespace tidy +} // namespace clang diff --git a/clang-tools-extra/clang-tidy/plugin/CMakeLists.txt b/clang-tools-extra/clang-tidy/plugin/CMakeLists.txt index 7a12d7fd599..25b094f67a1 100644 --- a/clang-tools-extra/clang-tidy/plugin/CMakeLists.txt +++ b/clang-tools-extra/clang-tidy/plugin/CMakeLists.txt @@ -21,6 +21,7 @@ add_clang_library(clangTidyPlugin clangTidyMiscModule clangTidyModernizeModule clangTidyObjCModule + clangTidyOpenMPModule clangTidyPerformanceModule clangTidyPortabilityModule clangTidyReadabilityModule diff --git a/clang-tools-extra/clang-tidy/tool/CMakeLists.txt b/clang-tools-extra/clang-tidy/tool/CMakeLists.txt index 41107355cb9..71d57ff5be9 100644 --- a/clang-tools-extra/clang-tidy/tool/CMakeLists.txt +++ b/clang-tools-extra/clang-tidy/tool/CMakeLists.txt @@ -30,6 +30,7 @@ target_link_libraries(clang-tidy clangTidyMiscModule clangTidyModernizeModule clangTidyObjCModule + clangTidyOpenMPModule clangTidyPerformanceModule clangTidyPortabilityModule clangTidyReadabilityModule diff --git a/clang-tools-extra/docs/ReleaseNotes.rst b/clang-tools-extra/docs/ReleaseNotes.rst index f69d3e70558..d85ba1bd546 100644 --- a/clang-tools-extra/docs/ReleaseNotes.rst +++ b/clang-tools-extra/docs/ReleaseNotes.rst @@ -67,6 +67,10 @@ The improvements are... Improvements to clang-tidy -------------------------- +- New OpenMP module. + + For checks specific to `OpenMP <https://www.openmp.org/>`_ API. + - New :doc:`abseil-duration-addition <clang-tidy/checks/abseil-duration-addition>` check. diff --git a/clang-tools-extra/docs/clang-tidy/index.rst b/clang-tools-extra/docs/clang-tidy/index.rst index 12a32dfbd88..1b5af60d967 100644 --- a/clang-tools-extra/docs/clang-tidy/index.rst +++ b/clang-tools-extra/docs/clang-tidy/index.rst @@ -73,6 +73,7 @@ Name prefix Description means "C++11") language constructs. ``mpi-`` Checks related to MPI (Message Passing Interface). ``objc-`` Checks related to Objective-C coding conventions. +``openmp-`` Checks related to OpenMP API. ``performance-`` Checks that target performance-related issues. ``portability-`` Checks that target portability-related issues that don't relate to any particular coding style. |