hanchenye-llvm-project/clang-tools-extra
Roman Lebedev 462446fd9a [clang-tidy] openmp-exception-escape - a new check
Summary:
Finally, we are here!

Analyzes OpenMP Structured Blocks and checks that no exception escapes
out of the Structured Block it was thrown in.

As per the OpenMP specification, structured block is an executable statement,
possibly compound, with a single entry at the top and a single exit at the
bottom. Which means, ``throw`` may not be used to to 'exit' out of the
structured block. If an exception is not caught in the same structured block
it was thrown in, the behaviour is undefined / implementation defined,
the program will likely terminate.

Reviewers: JonasToth, aaron.ballman, baloghadamsoftware, gribozavr

Reviewed By: aaron.ballman, gribozavr

Subscribers: mgorny, xazax.hun, rnkovacs, guansong, jdoerfert, cfe-commits, ABataev

Tags: #clang-tools-extra, #openmp, #clang

Differential Revision: https://reviews.llvm.org/D59466

llvm-svn: 356802
2019-03-22 19:46:25 +00:00
..
clang-apply-replacements Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
clang-change-namespace Rename directory housing clang-change-namespace to be eponymous 2019-03-15 11:54:01 +00:00
clang-doc Fix file headers. NFC 2019-03-01 09:52:53 +00:00
clang-move Make clang-move use same file naming convention as other tools 2019-03-22 16:34:39 +00:00
clang-query gn build: Add build files for some clang-tools-extra 2019-03-20 16:14:16 +00:00
clang-reorder-fields gn build: Add build files for some clang-tools-extra 2019-03-20 16:14:16 +00:00
clang-tidy [clang-tidy] openmp-exception-escape - a new check 2019-03-22 19:46:25 +00:00
clang-tidy-vs Fix typos throughout the license files that somehow I and my reviewers 2019-01-21 09:52:34 +00:00
clangd [clangd] Call the new ClangTidyCheck::registerPPCallbacks overload 2019-03-22 18:16:51 +00:00
docs [clang-tidy] openmp-exception-escape - a new check 2019-03-22 19:46:25 +00:00
include-fixer Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
modularize Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
pp-trace [pp-trace] Delete -ignore and add a new option -callbacks 2019-03-18 13:30:17 +00:00
test [clang-tidy] openmp-exception-escape - a new check 2019-03-22 19:46:25 +00:00
tool-template Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
unittests [clang-tidy] Move all checks to the new registerPPCallbacks API 2019-03-22 18:58:12 +00:00
.arcconfig
.gitignore
CMakeLists.txt Rename directory housing clang-change-namespace to be eponymous 2019-03-15 11:54:01 +00:00
CODE_OWNERS.TXT Remove myself as owner of clang-query. 2018-11-15 22:02:10 +00:00
LICENSE.TXT Fix typos throughout the license files that somehow I and my reviewers 2019-01-21 09:52:34 +00:00
README.txt

README.txt

//===----------------------------------------------------------------------===//
// Clang Tools repository
//===----------------------------------------------------------------------===//

Welcome to the repository of extra Clang Tools.  This repository holds tools
that are developed as part of the LLVM compiler infrastructure project and the
Clang frontend.  These tools are kept in a separate "extra" repository to
allow lighter weight checkouts of the core Clang codebase.

This repository is only intended to be checked out inside of a full LLVM+Clang
tree, and in the 'tools/extra' subdirectory of the Clang checkout.

All discussion regarding Clang, Clang-based tools, and code in this repository
should be held using the standard Clang mailing lists:
  http://lists.llvm.org/mailman/listinfo/cfe-dev

Code review for this tree should take place on the standard Clang patch and
commit lists:
  http://lists.llvm.org/mailman/listinfo/cfe-commits

If you find a bug in these tools, please file it in the LLVM bug tracker:
  http://llvm.org/bugs/