diff options
author | John McCall <rjmccall@apple.com> | 2010-08-11 20:59:53 +0000 |
---|---|---|
committer | John McCall <rjmccall@apple.com> | 2010-08-11 20:59:53 +0000 |
commit | ffe4630f3d9262c82169d0b1c9451191b1757289 (patch) | |
tree | 4ace92f0f5b918e7a1e57e5fed282da2de92fe30 /clang/lib/CodeGen/CodeGenFunction.cpp | |
parent | 961fc05418b7b63b45f630bc2b109075addfd9b6 (diff) | |
download | bcm5719-llvm-ffe4630f3d9262c82169d0b1c9451191b1757289.tar.gz bcm5719-llvm-ffe4630f3d9262c82169d0b1c9451191b1757289.zip |
When re-raising an exception after a cleanup, we need to call _Unwind_Resume_or_Rethrow
instead of _Unwind_Resume. With SJLJ exceptions, this is spelled
"_Unwind_SjLj_Resume_or_Rethrow", not "_Unwind_SjLj_Resume", which has
significantly different semantics.
We should actually never be generating a call to _Unwind_SjLj_Resume directly;
even if we were generating true cleanups (which we aren't because of the
horrible hack), we should be calling __cxa_end_cleanup() on ARM. I
haven't implemented this because there's little point as long as the HH is
present.
I believe this fixes <rdar://problem/8281377>.
llvm-svn: 110851
Diffstat (limited to 'clang/lib/CodeGen/CodeGenFunction.cpp')
0 files changed, 0 insertions, 0 deletions