Go to file
Jordan Rose a4309c941c [analyzer] Treat C++ 'throw' as a sink.
Our current handling of 'throw' is all CFG-based: it jumps to a 'catch' block
if there is one and the function exit block if not. But this doesn't really
get the right behavior when a function is inlined: execution will continue on
the caller's side, which is always the wrong thing to do.

Even within a single function, 'throw' completely skips any destructors that
are to be run. This is essentially the same problem as @finally -- a CFGBlock
that can have multiple entry points, whose exit points depend on whether it
was entered normally or exceptionally.

Representing 'throw' as a sink matches our current (non-)handling of @throw.
It's not a perfect solution, but it's better than continuing analysis in an
inconsistent or even impossible state.

<rdar://problem/12113713>

llvm-svn: 162157
2012-08-18 00:30:23 +00:00
clang [analyzer] Treat C++ 'throw' as a sink. 2012-08-18 00:30:23 +00:00
clang-tools-extra Fixed some renaming detritus in the comments, and an unused variable warning. Thanks to David Blaikie and Manuel Klimek for the comments 2012-08-16 17:47:06 +00:00
compiler-rt tsan: Non-executable stack for hand-coded assembly 2012-08-17 18:05:28 +00:00
debuginfo-tests Fix this for gdb 7.4. 2012-07-23 19:41:58 +00:00
libclc Do not use linkonce_odr linkage in .ll files. This prevented them 2012-08-05 22:25:48 +00:00
libcxx Apply patches supplied by Michel Morin in http://llvm.org/bugs/show_bug.cgi?id=13601 to correct bugs in is_convertible for the case that the intrinsic __is_convertible_to is not available. 2012-08-17 17:54:11 +00:00
libcxxabi Change size of reference count field in __libcpp_nmstr from 32 bits to 64 bits for 64 bit targets. This is controls the data layout of all exceptions defined in <stdexcept>. This aligns the ABI with that of gcc-4.2. 2012-08-08 16:15:16 +00:00
lld Hook up lld-test to llvm check-all. Patch by Andy Gibbs! 2012-07-31 18:44:52 +00:00
lldb Fix a race condition where multiple PythonInputReaderManager instances could, during destruction, 2012-08-17 23:44:35 +00:00
llvm Make atomic load and store of pointers work. Tighten verification of atomic operations 2012-08-17 23:24:29 +00:00
polly Remove executable bits from html files 2012-08-15 05:50:24 +00:00