summaryrefslogtreecommitdiff
path: root/bridges
diff options
context:
space:
mode:
authorTor Lillqvist <tml@iki.fi>2013-05-28 08:51:01 +0300
committerTor Lillqvist <tml@iki.fi>2013-05-28 17:04:59 +0300
commitb0a1666f756aa5f5315366eca9d7d02ddd55d2b7 (patch)
tree449b927e4c6a4898829c10ba46b783a122087b0f /bridges
parentf5aa04485c86a5753bd7af057b86336efe089fae (diff)
Bypass dynamic type_info generation for now when using libc++
The type_info crack is even harder in the libc++ (with Clang, on OS X) case, sigh. Punt for now and let's see what happens... Change-Id: I17c3a4d9d933acfbf554649c9ec8b6fb5213f2f0
Diffstat (limited to 'bridges')
-rw-r--r--bridges/source/cpp_uno/gcc3_macosx_x86-64/except.cxx9
1 files changed, 9 insertions, 0 deletions
diff --git a/bridges/source/cpp_uno/gcc3_macosx_x86-64/except.cxx b/bridges/source/cpp_uno/gcc3_macosx_x86-64/except.cxx
index 3147d6d7541f..62b0cb1e8f2f 100644
--- a/bridges/source/cpp_uno/gcc3_macosx_x86-64/except.cxx
+++ b/bridges/source/cpp_uno/gcc3_macosx_x86-64/except.cxx
@@ -54,6 +54,8 @@ using namespace ::__cxxabiv1;
namespace CPPU_CURRENT_NAMESPACE
{
+#ifndef _LIBCPP_VERSION
+
#if MACOSX_SDK_VERSION >= 1070
// MacOSX10.4u.sdk/usr/include/c++/4.0.0/cxxabi.h defined
@@ -103,6 +105,8 @@ std::type_info * create_FAKE_si_class_type_info(
#endif
+#endif
+
//==================================================================================================
static OUString toUNOname( char const * p ) SAL_THROW(())
{
@@ -217,6 +221,7 @@ type_info * RTTI::getRTTI( typelib_CompoundTypeDescription *pTypeDescr ) SAL_THR
t_rtti_map::const_iterator iFind2( m_generatedRttis.find( unoName ) );
if (iFind2 == m_generatedRttis.end())
{
+#ifndef _LIBCPP_VERSION
// we must generate it !
// symbol and rtti-name is nearly identical,
// the symbol is prefixed with _ZTI
@@ -250,6 +255,10 @@ type_info * RTTI::getRTTI( typelib_CompoundTypeDescription *pTypeDescr ) SAL_THR
pair< t_rtti_map::iterator, bool > insertion (
m_generatedRttis.insert( t_rtti_map::value_type( unoName, rtti ) ) );
SAL_WARN_IF( !insertion.second, "bridges", "key " << unoName << " already in generated rtti map" );
+#else
+ OSL_FAIL("Cannot generate type_infos with libc++, sigh");
+ return NULL;
+#endif
}
else // taking already generated rtti
{