clang-tools  10.0.0
openmp/ExceptionEscapeCheck.h
Go to the documentation of this file.
1 //===--- ExceptionEscapeCheck.h - clang-tidy --------------------*- C++ -*-===//
2 //
3 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4 // See https://llvm.org/LICENSE.txt for license information.
5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6 //
7 //===----------------------------------------------------------------------===//
8 
9 #ifndef LLVM_CLANG_TOOLS_EXTRA_CLANG_TIDY_OPENMP_EXCEPTIONESCAPECHECK_H
10 #define LLVM_CLANG_TOOLS_EXTRA_CLANG_TIDY_OPENMP_EXCEPTIONESCAPECHECK_H
11 
12 #include "../ClangTidy.h"
13 #include "../utils/ExceptionAnalyzer.h"
14 
15 namespace clang {
16 namespace tidy {
17 namespace openmp {
18 
19 /// Analyzes OpenMP Structured Blocks and checks that no exception escapes
20 /// out of the Structured Block it was thrown in.
21 ///
22 /// For the user-facing documentation see:
23 /// http://clang.llvm.org/extra/clang-tidy/checks/openmp-exception-escape.html
25 public:
26  ExceptionEscapeCheck(StringRef Name, ClangTidyContext *Context);
27  void storeOptions(ClangTidyOptions::OptionMap &Opts) override;
28  void registerMatchers(ast_matchers::MatchFinder *Finder) override;
29  void check(const ast_matchers::MatchFinder::MatchResult &Result) override;
30 
31 private:
32  std::string RawIgnoredExceptions;
33 
35 };
36 
37 } // namespace openmp
38 } // namespace tidy
39 } // namespace clang
40 
41 #endif // LLVM_CLANG_TOOLS_EXTRA_CLANG_TIDY_OPENMP_EXCEPTIONESCAPECHECK_H
Base class for all clang-tidy checks.
void check(const ast_matchers::MatchFinder::MatchResult &Result) override
ClangTidyChecks that register ASTMatchers should do the actual work in here.
Analyzes OpenMP Structured Blocks and checks that no exception escapes out of the Structured Block it...
This class analysis if a FunctionDecl can in principle throw an exception, either directly or indirec...
static constexpr llvm::StringLiteral Name
std::map< std::string, std::string > OptionMap
ExceptionEscapeCheck(StringRef Name, ClangTidyContext *Context)
===– Representation.cpp - ClangDoc Representation --------—*- C++ -*-===//
void registerMatchers(ast_matchers::MatchFinder *Finder) override
Override this to register AST matchers with Finder.
void storeOptions(ClangTidyOptions::OptionMap &Opts) override
Should store all options supported by this check with their current values or default values for opti...
Every ClangTidyCheck reports errors through a DiagnosticsEngine provided by this context.