summaryrefslogtreecommitdiffstats
path: root/libcxxabi/src/cxa_exception.cpp
diff options
context:
space:
mode:
authorNico Weber <nicolasweber@gmx.de>2014-06-25 23:52:07 +0000
committerNico Weber <nicolasweber@gmx.de>2014-06-25 23:52:07 +0000
commitae5438701e3997e48d8d47ab8feb2cbc3dc50f51 (patch)
tree896f770d2171a9d70cd588660fa1cdaaea92a937 /libcxxabi/src/cxa_exception.cpp
parentf2b9870915fc90caca7683d778f0feda8dec68cf (diff)
downloadbcm5719-llvm-ae5438701e3997e48d8d47ab8feb2cbc3dc50f51.tar.gz
bcm5719-llvm-ae5438701e3997e48d8d47ab8feb2cbc3dc50f51.zip
Update libc++abi to use the ARM EHABI unwinder from its libunwind.
llvm-svn: 211745
Diffstat (limited to 'libcxxabi/src/cxa_exception.cpp')
-rw-r--r--libcxxabi/src/cxa_exception.cpp13
1 files changed, 11 insertions, 2 deletions
diff --git a/libcxxabi/src/cxa_exception.cpp b/libcxxabi/src/cxa_exception.cpp
index 13c060c3ff7..d5bc74ab1b1 100644
--- a/libcxxabi/src/cxa_exception.cpp
+++ b/libcxxabi/src/cxa_exception.cpp
@@ -447,8 +447,17 @@ For a foreign exception:
*/
void __cxa_end_catch()
{
- static_assert(sizeof(__cxa_exception) == sizeof(__cxa_dependent_exception),
- "sizeof(__cxa_exception) must be equal to sizeof(__cxa_dependent_exception)");
+ static_assert(sizeof(__cxa_exception) == sizeof(__cxa_dependent_exception),
+ "sizeof(__cxa_exception) must be equal to "
+ "sizeof(__cxa_dependent_exception)");
+ static_assert(offsetof(__cxa_exception, referenceCount) ==
+ offsetof(__cxa_dependent_exception, primaryException),
+ "the layout of __cxa_exception must match the layout of "
+ "__cxa_dependent_exception");
+ static_assert(offsetof(__cxa_exception, handlerCount) ==
+ offsetof(__cxa_dependent_exception, handlerCount),
+ "the layout of __cxa_exception must match the layout of "
+ "__cxa_dependent_exception");
__cxa_eh_globals* globals = __cxa_get_globals_fast(); // __cxa_get_globals called in __cxa_begin_catch
__cxa_exception* exception_header = globals->caughtExceptions;
// If we've rethrown a foreign exception, then globals->caughtExceptions
OpenPOWER on IntegriCloud