rebase of the patch

This commit is contained in:
Sylvestre Ledru 2019-10-03 19:07:35 +02:00
parent ab8d9f3904
commit 9f1ea0f42d

View File

@ -7,11 +7,11 @@ sure their ABI stays in sync.
No known upstream bug about this. No known upstream bug about this.
Index: llvm-toolchain-snapshot_9~svn353687/libcxxabi/src/cxa_exception.cpp Index: llvm-toolchain-snapshot_10~svn373627/libcxxabi/src/cxa_exception.cpp
=================================================================== ===================================================================
--- llvm-toolchain-snapshot_9~svn353687.orig/libcxxabi/src/cxa_exception.cpp --- llvm-toolchain-snapshot_10~svn373627.orig/libcxxabi/src/cxa_exception.cpp
+++ llvm-toolchain-snapshot_9~svn353687/libcxxabi/src/cxa_exception.cpp +++ llvm-toolchain-snapshot_10~svn373627/libcxxabi/src/cxa_exception.cpp
@@ -276,15 +276,16 @@ __cxa_throw(void *thrown_object, std::ty @@ -275,15 +275,16 @@ __cxa_throw(void *thrown_object, std::ty
#ifdef __USING_SJLJ_EXCEPTIONS__ #ifdef __USING_SJLJ_EXCEPTIONS__
_Unwind_SjLj_RaiseException(&exception_header->unwindHeader); _Unwind_SjLj_RaiseException(&exception_header->unwindHeader);
@ -30,7 +30,7 @@ Index: llvm-toolchain-snapshot_9~svn353687/libcxxabi/src/cxa_exception.cpp
// 2.5.3 Exception Handlers // 2.5.3 Exception Handlers
/* /*
The adjusted pointer is computed by the personality routine during phase 1 The adjusted pointer is computed by the personality routine during phase 1
@@ -547,7 +548,11 @@ void __cxa_end_catch() { @@ -546,7 +547,11 @@ void __cxa_end_catch() {
// to touch a foreign exception in any way, that is undefined // to touch a foreign exception in any way, that is undefined
// behavior. They likely can't since the only way to catch // behavior. They likely can't since the only way to catch
// a foreign exception is with catch (...)! // a foreign exception is with catch (...)!
@ -42,7 +42,7 @@ Index: llvm-toolchain-snapshot_9~svn353687/libcxxabi/src/cxa_exception.cpp
globals->caughtExceptions = 0; globals->caughtExceptions = 0;
} }
} }
@@ -604,8 +609,10 @@ void __cxa_rethrow() { @@ -603,8 +608,10 @@ void __cxa_rethrow() {
} }
#ifdef __USING_SJLJ_EXCEPTIONS__ #ifdef __USING_SJLJ_EXCEPTIONS__
_Unwind_SjLj_RaiseException(&exception_header->unwindHeader); _Unwind_SjLj_RaiseException(&exception_header->unwindHeader);
@ -54,7 +54,7 @@ Index: llvm-toolchain-snapshot_9~svn353687/libcxxabi/src/cxa_exception.cpp
#endif #endif
// If we get here, some kind of unwinding error has occurred. // If we get here, some kind of unwinding error has occurred.
@@ -729,8 +736,10 @@ __cxa_rethrow_primary_exception(void* th @@ -728,8 +735,10 @@ __cxa_rethrow_primary_exception(void* th
dep_exception_header->unwindHeader.exception_cleanup = dependent_exception_cleanup; dep_exception_header->unwindHeader.exception_cleanup = dependent_exception_cleanup;
#ifdef __USING_SJLJ_EXCEPTIONS__ #ifdef __USING_SJLJ_EXCEPTIONS__
_Unwind_SjLj_RaiseException(&dep_exception_header->unwindHeader); _Unwind_SjLj_RaiseException(&dep_exception_header->unwindHeader);
@ -66,13 +66,13 @@ Index: llvm-toolchain-snapshot_9~svn353687/libcxxabi/src/cxa_exception.cpp
#endif #endif
// Some sort of unwinding error. Note that terminate is a handler. // Some sort of unwinding error. Note that terminate is a handler.
__cxa_begin_catch(&dep_exception_header->unwindHeader); __cxa_begin_catch(&dep_exception_header->unwindHeader);
Index: llvm-toolchain-snapshot_9~svn353687/libcxxabi/src/cxa_exception.h Index: llvm-toolchain-snapshot_10~svn373627/libcxxabi/src/cxa_exception.h
=================================================================== ===================================================================
--- llvm-toolchain-snapshot_9~svn353687.orig/libcxxabi/src/cxa_exception.h --- llvm-toolchain-snapshot_10~svn373627.orig/libcxxabi/src/cxa_exception.h
+++ llvm-toolchain-snapshot_9~svn353687/libcxxabi/src/cxa_exception.h +++ llvm-toolchain-snapshot_10~svn373627/libcxxabi/src/cxa_exception.h
@@ -27,6 +27,45 @@ uint64_t __getExceptionClass (const _Un @@ -27,6 +27,45 @@ _LIBCXXABI_HIDDEN uint64_t __getExceptio
void __setExceptionClass ( _Unwind_Exception*, uint64_t); _LIBCXXABI_HIDDEN void __setExceptionClass ( _Unwind_Exception*, uint64_t);
bool __isOurExceptionClass(const _Unwind_Exception*); _LIBCXXABI_HIDDEN bool __isOurExceptionClass(const _Unwind_Exception*);
+#if LIBCXXABI_ARM_EHABI +#if LIBCXXABI_ARM_EHABI
+// GCC has _Unwind_Control_Block in unwind.h (unwind_arm_common.h) +// GCC has _Unwind_Control_Block in unwind.h (unwind_arm_common.h)