unwind: rename `__personality_routine` to `_Unwind_Personality_Fn`
This patch renames `__personality_routine` to `_Unwind_Personality_Fn`
in `unwind.h`. Both `unwind.h` from clang and GCC headers use this name
instead of `__personality_routine`. With this patch one is also able to
build libc++abi with libunwind support on Windows.
Patch by Markus Böck!
Cr-Mirrored-From: sso://chromium.googlesource.com/_direct/external/github.com/llvm/llvm-project
Cr-Mirrored-Commit: 14798b44658c8b30b44afae20d0f391e88eb5bec
diff --git a/src/Unwind-EHABI.cpp b/src/Unwind-EHABI.cpp
index a23ba2c..a8a64cb 100644
--- a/src/Unwind-EHABI.cpp
+++ b/src/Unwind-EHABI.cpp
@@ -481,8 +481,8 @@
// If there is a personality routine, ask it if it will want to stop at
// this frame.
if (frameInfo.handler != 0) {
- __personality_routine p =
- (__personality_routine)(long)(frameInfo.handler);
+ _Unwind_Personality_Fn p =
+ (_Unwind_Personality_Fn)(long)(frameInfo.handler);
_LIBUNWIND_TRACE_UNWINDING(
"unwind_phase1(ex_ojb=%p): calling personality function %p",
static_cast<void *>(exception_object),
@@ -597,8 +597,8 @@
// If there is a personality routine, tell it we are unwinding.
if (frameInfo.handler != 0) {
- __personality_routine p =
- (__personality_routine)(long)(frameInfo.handler);
+ _Unwind_Personality_Fn p =
+ (_Unwind_Personality_Fn)(long)(frameInfo.handler);
struct _Unwind_Context *context = (struct _Unwind_Context *)(cursor);
// EHABI #7.2
exception_object->pr_cache.fnstart = frameInfo.start_ip;
diff --git a/src/Unwind-seh.cpp b/src/Unwind-seh.cpp
index 7647f2e..403ab2d 100644
--- a/src/Unwind-seh.cpp
+++ b/src/Unwind-seh.cpp
@@ -69,7 +69,7 @@
/// b) Initiate a collided unwind to halt unwinding.
_LIBUNWIND_EXPORT EXCEPTION_DISPOSITION
_GCC_specific_handler(PEXCEPTION_RECORD ms_exc, PVOID frame, PCONTEXT ms_ctx,
- DISPATCHER_CONTEXT *disp, __personality_routine pers) {
+ DISPATCHER_CONTEXT *disp, _Unwind_Personality_Fn pers) {
unw_cursor_t cursor;
_Unwind_Exception *exc;
_Unwind_Action action;
@@ -290,8 +290,8 @@
// If there is a personality routine, tell it we are unwinding.
if (frameInfo.handler != 0) {
- __personality_routine p =
- (__personality_routine)(intptr_t)(frameInfo.handler);
+ _Unwind_Personality_Fn p =
+ (_Unwind_Personality_Fn)(intptr_t)(frameInfo.handler);
_LIBUNWIND_TRACE_UNWINDING(
"unwind_phase2_forced(ex_ojb=%p): calling personality function %p",
(void *)exception_object, (void *)(uintptr_t)p);
diff --git a/src/Unwind-sjlj.c b/src/Unwind-sjlj.c
index b8bb7c8..85a4cc3 100644
--- a/src/Unwind-sjlj.c
+++ b/src/Unwind-sjlj.c
@@ -39,7 +39,7 @@
uint32_t resumeParameters[4];
// set by calling function before registering
- __personality_routine personality; // arm offset=24
+ _Unwind_Personality_Fn personality; // arm offset=24
uintptr_t lsda; // arm offset=28
// variable length array, contains registers to restore
@@ -268,7 +268,7 @@
// if there is a personality routine, tell it we are unwinding
if (c->personality != NULL) {
- __personality_routine p = (__personality_routine) c->personality;
+ _Unwind_Personality_Fn p = (_Unwind_Personality_Fn)c->personality;
_LIBUNWIND_TRACE_UNWINDING("unwind_phase2_forced(ex_ojb=%p): "
"calling personality function %p",
(void *)exception_object, (void *)p);
diff --git a/src/UnwindLevel1-gcc-ext.c b/src/UnwindLevel1-gcc-ext.c
index 008df81..310b836 100644
--- a/src/UnwindLevel1-gcc-ext.c
+++ b/src/UnwindLevel1-gcc-ext.c
@@ -149,7 +149,7 @@
struct _Unwind_Context *context = (struct _Unwind_Context *)&cursor;
// Get and call the personality function to unwind the frame.
- __personality_routine handler = (__personality_routine) frameInfo.handler;
+ _Unwind_Personality_Fn handler = (_Unwind_Personality_Fn)frameInfo.handler;
if (handler == NULL) {
return _URC_END_OF_STACK;
}
diff --git a/src/UnwindLevel1.c b/src/UnwindLevel1.c
index bcb1a7f..3e75b5f 100644
--- a/src/UnwindLevel1.c
+++ b/src/UnwindLevel1.c
@@ -90,8 +90,8 @@
// If there is a personality routine, ask it if it will want to stop at
// this frame.
if (frameInfo.handler != 0) {
- __personality_routine p =
- (__personality_routine)(uintptr_t)(frameInfo.handler);
+ _Unwind_Personality_Fn p =
+ (_Unwind_Personality_Fn)(uintptr_t)(frameInfo.handler);
_LIBUNWIND_TRACE_UNWINDING(
"unwind_phase1(ex_ojb=%p): calling personality function %p",
(void *)exception_object, (void *)(uintptr_t)p);
@@ -188,8 +188,8 @@
// If there is a personality routine, tell it we are unwinding.
if (frameInfo.handler != 0) {
- __personality_routine p =
- (__personality_routine)(uintptr_t)(frameInfo.handler);
+ _Unwind_Personality_Fn p =
+ (_Unwind_Personality_Fn)(uintptr_t)(frameInfo.handler);
_Unwind_Action action = _UA_CLEANUP_PHASE;
if (sp == exception_object->private_2) {
// Tell personality this was the frame it marked in phase 1.
@@ -294,8 +294,8 @@
// If there is a personality routine, tell it we are unwinding.
if (frameInfo.handler != 0) {
- __personality_routine p =
- (__personality_routine)(intptr_t)(frameInfo.handler);
+ _Unwind_Personality_Fn p =
+ (_Unwind_Personality_Fn)(intptr_t)(frameInfo.handler);
_LIBUNWIND_TRACE_UNWINDING(
"unwind_phase2_forced(ex_ojb=%p): calling personality function %p",
(void *)exception_object, (void *)(uintptr_t)p);