llvm-project/clang/lib
James Y Knight fa87fa97fb Skip exception cleanups when the innermost scope is EHTerminateScope.
EHTerminateScope is used to implement C++ noexcept semantics. Per C++
[except.terminate], it is implemented-defined whether no, some, or all
cleanups are run prior to terminatation.

Therefore, the code to run cleanups on the way towards termination is
unnecessary, and may be omitted.

After this change, we will still run some cleanups: any cleanups in a
function called from the noexcept function will continue to run, while
those in the noexcept function itself will not.

(Commit attempt 2: check InnermostEHScope != stable_end() before accessing it.)

Differential Revision: https://reviews.llvm.org/D113620
2022-02-02 17:50:18 -05:00
..
APINotes [clang][APINotes] Fix -Wunused-function warning (NFC) 2021-04-01 09:52:43 +08:00
ARCMigrate [clang] Use true/false instead of 1/0 (NFC) 2022-01-09 00:19:47 -08:00
AST [clang][NFC] Remove unreachable code 2022-02-02 05:14:26 -08:00
ASTMatchers Add `isConstinit` matcher 2022-01-24 08:35:42 -05:00
Analysis [clang][dataflow] Enable comparison of distinct values in Environment 2022-02-01 15:25:59 +00:00
Basic [clang][macho] add clang frontend support for emitting macho files with two build version load commands 2022-02-02 08:30:39 -08:00
CodeGen Skip exception cleanups when the innermost scope is EHTerminateScope. 2022-02-02 17:50:18 -05:00
CrossTU Revert "[analyzer][ctu] Fix wrong 'multiple definitions' errors caused by space characters in lookup names when parsing the ctu index file" 2021-12-16 20:46:51 -05:00
DirectoryWatcher [clang] [DirectoryWatcher] Remove leading \\?\ from GetFinalPathNameByHandleW 2021-11-08 22:21:30 +02:00
Driver Revert "[ASan] Not linking asan_static library for DSO." 2022-02-01 23:58:04 +00:00
Edit [clang] Use true/false instead of 1/0 (NFC) 2022-01-09 00:19:47 -08:00
Format [clang-format] Elide unnecessary braces. NFC. 2022-02-02 15:28:53 +01:00
Frontend [clang] fix out of bounds access in an empty string when lexing a _Pragma with missing string token 2022-02-02 11:16:11 -08:00
FrontendTool [clang] Add an extract-api driver option 2022-01-26 11:31:12 -08:00
Headers [AArch64] Support for memset tagged intrinsic 2022-01-31 20:49:34 +00:00
Index [clang] Visit enum base specifiers in libIndex 2021-10-25 13:16:14 +02:00
IndexSerialization
Interpreter [clang] Remove unused forward declarations (NFC) 2022-01-08 11:56:40 -08:00
Lex [clang] fix out of bounds access in an empty string when lexing a _Pragma with missing string token 2022-02-02 11:16:11 -08:00
Parse [clang-format] Format ParseOpenMP.cpp changes 2022-01-27 09:00:34 +00:00
Rewrite Add assert on End iteration distance to Rewriter::getRewrittenText. 2022-01-25 17:26:13 +00:00
Sema The methods visited for a special class must have an identifier. 2022-02-02 13:12:33 -08:00
Serialization [NFC] [AST] Move isSameEntity into ASTContext 2022-01-27 10:30:50 +08:00
StaticAnalyzer [analyzer] Add support for __attribute__((returns_nonnull)). 2022-02-02 11:46:52 -08:00
Testing
Tooling Fix MSVC 'not all control paths return a value' warning. NFC. 2022-01-26 11:33:37 +00:00
CMakeLists.txt [clang-repl] Recommit "Land initial infrastructure for incremental parsing" 2021-05-13 06:30:29 +00:00