summaryrefslogtreecommitdiff
path: root/bridges
diff options
context:
space:
mode:
authorStephan Bergmann <sbergman@redhat.com>2018-12-11 15:01:30 +0100
committerJan Holesovsky <kendy@collabora.com>2019-10-30 19:00:49 +0100
commita515d30ee39bf5d1326ae788645ea892917869a3 (patch)
treeaf9201b2314603875843d53e263608f22267d10d /bridges
parent486b7644ca550321048770c0e185783c21e924c3 (diff)
Adapt gcc3_linux_arm __cxa_exception to NDK 18 libc++abi
...which adds a member, and will be relevant when switching armeabi-v7a to libc++/libc++abi/libunwind (coming soon). Change-Id: I1f98f50ca299a583e73e0dbd6c8c94d973329f3a Reviewed-on: https://gerrit.libreoffice.org/64966 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com> Reviewed-on: https://gerrit.libreoffice.org/81782 Reviewed-by: Jan Holesovsky <kendy@collabora.com> Tested-by: Jan Holesovsky <kendy@collabora.com>
Diffstat (limited to 'bridges')
-rw-r--r--bridges/source/cpp_uno/gcc3_linux_arm/share.hxx9
1 files changed, 9 insertions, 0 deletions
diff --git a/bridges/source/cpp_uno/gcc3_linux_arm/share.hxx b/bridges/source/cpp_uno/gcc3_linux_arm/share.hxx
index d7b7ff370b52..0ff974570ee7 100644
--- a/bridges/source/cpp_uno/gcc3_linux_arm/share.hxx
+++ b/bridges/source/cpp_uno/gcc3_linux_arm/share.hxx
@@ -64,6 +64,15 @@ public:
namespace __cxxabiv1 {
struct __cxa_exception
{
+#if defined _LIBCPPABI_VERSION // detect libc++abi
+#if defined __LP64__ || defined __ARM_EABI__
+ // Quoting android-ndk-r18b/sources/cxx-stl/llvm-libc++abi/src/cxa_exception.hpp: "This is a
+ // new field to support C++ 0x exception_ptr. For binary compatibility it is at the start of
+ // this struct which is prepended to the object thrown in __cxa_allocate_exception."
+ std::size_t referenceCount;
+#endif
+#endif
+
std::type_info *exceptionType;
void (*exceptionDestructor)(void *);