]> granicus.if.org Git - clang/commit
Call __cxa_begin_catch before std::terminate() in a noexcept trap.
authorJohn McCall <rjmccall@apple.com>
Thu, 20 Jun 2013 21:37:43 +0000 (21:37 +0000)
committerJohn McCall <rjmccall@apple.com>
Thu, 20 Jun 2013 21:37:43 +0000 (21:37 +0000)
commit45ff3807ef06bca715afb9eb7e16c4c89880e40e
tree5f53c89e7e4ece950f331aa56e6e084eb2ff4b0b
parent6bb110292c4e33a6ee2856cf91e0774107aa7d9c
Call __cxa_begin_catch before std::terminate() in a noexcept trap.

r174939-40 caused us to do this in the canonical terminate lpad,
but when the EH stack has other cleanups on it we use the
terminate handler block, which wasn't doing this.

Fixes the rest of rdar://11904428 given appropriate stdlib support.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@184475 91177308-0d34-0410-b5e6-96231b3b80d8
lib/CodeGen/CGException.cpp
test/CodeGenCXX/noexcept.cpp [new file with mode: 0644]