summaryrefslogtreecommitdiff
path: root/bridges
diff options
context:
space:
mode:
authorTor Lillqvist <tml@collabora.com>2013-12-26 14:17:54 +0200
committerTor Lillqvist <tml@collabora.com>2013-12-26 15:23:17 +0200
commit96af0825ab0d3d36df25a3983f9f422e987cb572 (patch)
treeab60f7da2339eaf3954768429b4d52ffe341dc2a /bridges
parentfdc1b1fc174da27e3016370fdb603d6bbe49af4d (diff)
Need the _LIBCPP_NONUNIQUE_RTTI_BIT here, too
Doesn't help though, throwing exceptions using __cxa_throw() and our hand-crafted type_infos still doesn't work on arm64. Change-Id: If6099e8696e6232c4b6d4bacd654d28419538e0f
Diffstat (limited to 'bridges')
-rw-r--r--bridges/source/cpp_uno/gcc3_ios_arm/except.cxx3
1 files changed, 3 insertions, 0 deletions
diff --git a/bridges/source/cpp_uno/gcc3_ios_arm/except.cxx b/bridges/source/cpp_uno/gcc3_ios_arm/except.cxx
index 71171ff065b4..e4315902a9cd 100644
--- a/bridges/source/cpp_uno/gcc3_ios_arm/except.cxx
+++ b/bridges/source/cpp_uno/gcc3_ios_arm/except.cxx
@@ -106,6 +106,9 @@ std::type_info * createFake_si_class_type_info(
Fake_si_class_type_info * fake
= reinterpret_cast<Fake_si_class_type_info *>(buf);
fake->name = name;
+#ifdef _LIBCPP_NONUNIQUE_RTTI_BIT
+ *(uintptr_t*)(&fake->name) |= _LIBCPP_NONUNIQUE_RTTI_BIT;
+#endif
fake->base = base;
return reinterpret_cast<std::type_info *>(
static_cast<Fake_type_info *>(fake));