adjust gcc3_linux_intel bridge to work with clang
Otherwise exception throwing seems to be broken.
This is a partial revert of b0515ea5fa
.
This commit is contained in:
@@ -36,6 +36,7 @@
|
||||
#include "typelib/typedescription.h"
|
||||
|
||||
#include "callvirtualmethod.hxx"
|
||||
#include "share.hxx"
|
||||
|
||||
// The call instruction within the asm block of callVirtualMethod may throw
|
||||
// exceptions. At least GCC 4.7.0 with -O0 would create (unnecessary)
|
||||
@@ -66,6 +67,8 @@ void CPPU_CURRENT_NAMESPACE::callVirtualMethod(
|
||||
// unexpected size of int
|
||||
assert(nStackLongs && pStackLongs); // no stack
|
||||
|
||||
if (! pAdjustedThisPtr) CPPU_CURRENT_NAMESPACE::dummy_can_throw_anything("xxx"); // address something
|
||||
|
||||
volatile long edx = 0, eax = 0; // for register returns
|
||||
void * stackptr;
|
||||
asm volatile (
|
||||
|
@@ -46,7 +46,6 @@
|
||||
#include <com/sun/star/uno/genfunc.hxx>
|
||||
#include "com/sun/star/uno/RuntimeException.hpp"
|
||||
#include <typelib/typedescription.hxx>
|
||||
#include <uno/any2.h>
|
||||
|
||||
#include "share.hxx"
|
||||
|
||||
@@ -60,6 +59,10 @@ using namespace ::__cxxabiv1;
|
||||
namespace CPPU_CURRENT_NAMESPACE
|
||||
{
|
||||
|
||||
void dummy_can_throw_anything( char const * )
|
||||
{
|
||||
}
|
||||
|
||||
//==================================================================================================
|
||||
static OUString toUNOname( char const * p ) SAL_THROW(())
|
||||
{
|
||||
|
@@ -32,9 +32,13 @@
|
||||
#include <exception>
|
||||
#include <cstddef>
|
||||
|
||||
#include <uno/any2.h>
|
||||
|
||||
namespace CPPU_CURRENT_NAMESPACE
|
||||
{
|
||||
|
||||
void dummy_can_throw_anything( char const * );
|
||||
|
||||
// ----- following decl from libstdc++-v3/libsupc++/unwind-cxx.h and unwind.h
|
||||
|
||||
struct _Unwind_Exception
|
||||
|
Reference in New Issue
Block a user