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.
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_9~svn353687/libcxxabi/src/cxa_exception.cpp
@@ -276,15 +276,16 @@ __cxa_throw(void *thrown_object, std::ty
--- llvm-toolchain-snapshot_10~svn373627.orig/libcxxabi/src/cxa_exception.cpp
+++ llvm-toolchain-snapshot_10~svn373627/libcxxabi/src/cxa_exception.cpp
@@ -275,15 +275,16 @@ __cxa_throw(void *thrown_object, std::ty
#ifdef __USING_SJLJ_EXCEPTIONS__
_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
/*
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
// behavior. They likely can't since the only way to 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;
}
}
@@ -604,8 +609,10 @@ void __cxa_rethrow() {
@@ -603,8 +608,10 @@ void __cxa_rethrow() {
}
#ifdef __USING_SJLJ_EXCEPTIONS__
_Unwind_SjLj_RaiseException(&exception_header->unwindHeader);
@ -54,7 +54,7 @@ Index: llvm-toolchain-snapshot_9~svn353687/libcxxabi/src/cxa_exception.cpp
#endif
// 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;
#ifdef __USING_SJLJ_EXCEPTIONS__
_Unwind_SjLj_RaiseException(&dep_exception_header->unwindHeader);
@ -66,13 +66,13 @@ Index: llvm-toolchain-snapshot_9~svn353687/libcxxabi/src/cxa_exception.cpp
#endif
// Some sort of unwinding error. Note that terminate is a handler.
__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_9~svn353687/libcxxabi/src/cxa_exception.h
@@ -27,6 +27,45 @@ uint64_t __getExceptionClass (const _Un
void __setExceptionClass ( _Unwind_Exception*, uint64_t);
bool __isOurExceptionClass(const _Unwind_Exception*);
--- llvm-toolchain-snapshot_10~svn373627.orig/libcxxabi/src/cxa_exception.h
+++ llvm-toolchain-snapshot_10~svn373627/libcxxabi/src/cxa_exception.h
@@ -27,6 +27,45 @@ _LIBCXXABI_HIDDEN uint64_t __getExceptio
_LIBCXXABI_HIDDEN void __setExceptionClass ( _Unwind_Exception*, uint64_t);
_LIBCXXABI_HIDDEN bool __isOurExceptionClass(const _Unwind_Exception*);
+#if LIBCXXABI_ARM_EHABI
+// GCC has _Unwind_Control_Block in unwind.h (unwind_arm_common.h)