diff options
author | Tor Lillqvist <tml@collabora.com> | 2013-12-26 14:17:54 +0200 |
---|---|---|
committer | Tor Lillqvist <tml@collabora.com> | 2013-12-26 15:23:17 +0200 |
commit | 96af0825ab0d3d36df25a3983f9f422e987cb572 (patch) | |
tree | ab60f7da2339eaf3954768429b4d52ffe341dc2a /bridges | |
parent | fdc1b1fc174da27e3016370fdb603d6bbe49af4d (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.cxx | 3 |
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)); |