From 6ddecf61ecada646fbd6f8809270d47289727e8a Mon Sep 17 00:00:00 2001 From: Caolán McNamara Date: Thu, 2 Aug 2018 15:13:37 +0100 Subject: fillUnoException not working on std::rethrow_exception exceptions MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit used since... commit dacc1b40df67d154c96b256b0d920460f38c3d11 Date: Sat Jul 28 16:33:22 2018 +0100 ofz#9597 rethrown IOException not caught by catch IOException the adjustedPtr seems to be as expected, but the type_info not. Presumably these are thrown as 'dependent exceptions' (?) https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/libsupc%2B%2B/eh_type.cc#L42 Change-Id: Ibd736abe941bb1d5facdb88139b3a0e6cf32cf1f Reviewed-on: https://gerrit.libreoffice.org/58477 Tested-by: Jenkins Reviewed-by: Caolán McNamara Tested-by: Caolán McNamara --- bridges/source/cpp_uno/gcc3_linux_x86-64/share.hxx | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) (limited to 'bridges/source/cpp_uno/gcc3_linux_x86-64/share.hxx') diff --git a/bridges/source/cpp_uno/gcc3_linux_x86-64/share.hxx b/bridges/source/cpp_uno/gcc3_linux_x86-64/share.hxx index 55009d5f7480..94ad43ae922c 100644 --- a/bridges/source/cpp_uno/gcc3_linux_x86-64/share.hxx +++ b/bridges/source/cpp_uno/gcc3_linux_x86-64/share.hxx @@ -143,6 +143,12 @@ extern "C" __cxa_eh_globals * __cxa_get_globals() throw(); } #endif +#if !HAVE_CXXABI_H_CXA_CURRENT_EXCEPTION_TYPE +namespace __cxxabiv1 { +extern "C" std::type_info *__cxa_current_exception_type() throw(); +} +#endif + #if !HAVE_CXXABI_H_CXA_ALLOCATE_EXCEPTION namespace __cxxabiv1 { extern "C" void * __cxa_allocate_exception(std::size_t thrown_size) throw(); @@ -165,8 +171,7 @@ namespace CPPU_CURRENT_NAMESPACE void raiseException( uno_Any * pUnoExc, uno_Mapping * pUno2Cpp ); -void fillUnoException( - __cxxabiv1::__cxa_exception * header, uno_Any *, uno_Mapping * pCpp2Uno ); +void fillUnoException(uno_Any *, uno_Mapping * pCpp2Uno); } /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ -- cgit