1819bedf3SRoman Lebedev //===--- OpenMPTidyModule.cpp - clang-tidy--------------------------------===// 2819bedf3SRoman Lebedev // 3819bedf3SRoman Lebedev // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4819bedf3SRoman Lebedev // See https://llvm.org/LICENSE.txt for license information. 5819bedf3SRoman Lebedev // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6819bedf3SRoman Lebedev // 7819bedf3SRoman Lebedev //===----------------------------------------------------------------------===// 8819bedf3SRoman Lebedev 9819bedf3SRoman Lebedev #include "../ClangTidy.h" 10819bedf3SRoman Lebedev #include "../ClangTidyModule.h" 11819bedf3SRoman Lebedev #include "../ClangTidyModuleRegistry.h" 12462446fdSRoman Lebedev #include "ExceptionEscapeCheck.h" 13cbbf9282SRoman Lebedev #include "UseDefaultNoneCheck.h" 14819bedf3SRoman Lebedev 15*7d2ea6c4SCarlos Galvez namespace clang::tidy { 16819bedf3SRoman Lebedev namespace openmp { 17819bedf3SRoman Lebedev 18819bedf3SRoman Lebedev /// This module is for OpenMP-specific checks. 19819bedf3SRoman Lebedev class OpenMPModule : public ClangTidyModule { 20819bedf3SRoman Lebedev public: addCheckFactories(ClangTidyCheckFactories & CheckFactories)21819bedf3SRoman Lebedev void addCheckFactories(ClangTidyCheckFactories &CheckFactories) override { 22462446fdSRoman Lebedev CheckFactories.registerCheck<ExceptionEscapeCheck>( 23462446fdSRoman Lebedev "openmp-exception-escape"); 24cbbf9282SRoman Lebedev CheckFactories.registerCheck<UseDefaultNoneCheck>( 25cbbf9282SRoman Lebedev "openmp-use-default-none"); 26819bedf3SRoman Lebedev } 27819bedf3SRoman Lebedev }; 28819bedf3SRoman Lebedev 29819bedf3SRoman Lebedev // Register the OpenMPTidyModule using this statically initialized variable. 30819bedf3SRoman Lebedev static ClangTidyModuleRegistry::Add<OpenMPModule> 31819bedf3SRoman Lebedev X("openmp-module", "Adds OpenMP-specific checks."); 32819bedf3SRoman Lebedev 33819bedf3SRoman Lebedev } // namespace openmp 34819bedf3SRoman Lebedev 35819bedf3SRoman Lebedev // This anchor is used to force the linker to link in the generated object file 36819bedf3SRoman Lebedev // and thus register the OpenMPModule. 37819bedf3SRoman Lebedev volatile int OpenMPModuleAnchorSource = 0; 38819bedf3SRoman Lebedev 39*7d2ea6c4SCarlos Galvez } // namespace clang::tidy 40