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 "typelib/typedescription.h"
|
||||||
|
|
||||||
#include "callvirtualmethod.hxx"
|
#include "callvirtualmethod.hxx"
|
||||||
|
#include "share.hxx"
|
||||||
|
|
||||||
// The call instruction within the asm block of callVirtualMethod may throw
|
// The call instruction within the asm block of callVirtualMethod may throw
|
||||||
// exceptions. At least GCC 4.7.0 with -O0 would create (unnecessary)
|
// 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
|
// unexpected size of int
|
||||||
assert(nStackLongs && pStackLongs); // no stack
|
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
|
volatile long edx = 0, eax = 0; // for register returns
|
||||||
void * stackptr;
|
void * stackptr;
|
||||||
asm volatile (
|
asm volatile (
|
||||||
|
@@ -46,7 +46,6 @@
|
|||||||
#include <com/sun/star/uno/genfunc.hxx>
|
#include <com/sun/star/uno/genfunc.hxx>
|
||||||
#include "com/sun/star/uno/RuntimeException.hpp"
|
#include "com/sun/star/uno/RuntimeException.hpp"
|
||||||
#include <typelib/typedescription.hxx>
|
#include <typelib/typedescription.hxx>
|
||||||
#include <uno/any2.h>
|
|
||||||
|
|
||||||
#include "share.hxx"
|
#include "share.hxx"
|
||||||
|
|
||||||
@@ -60,6 +59,10 @@ using namespace ::__cxxabiv1;
|
|||||||
namespace CPPU_CURRENT_NAMESPACE
|
namespace CPPU_CURRENT_NAMESPACE
|
||||||
{
|
{
|
||||||
|
|
||||||
|
void dummy_can_throw_anything( char const * )
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
//==================================================================================================
|
//==================================================================================================
|
||||||
static OUString toUNOname( char const * p ) SAL_THROW(())
|
static OUString toUNOname( char const * p ) SAL_THROW(())
|
||||||
{
|
{
|
||||||
|
@@ -32,9 +32,13 @@
|
|||||||
#include <exception>
|
#include <exception>
|
||||||
#include <cstddef>
|
#include <cstddef>
|
||||||
|
|
||||||
|
#include <uno/any2.h>
|
||||||
|
|
||||||
namespace CPPU_CURRENT_NAMESPACE
|
namespace CPPU_CURRENT_NAMESPACE
|
||||||
{
|
{
|
||||||
|
|
||||||
|
void dummy_can_throw_anything( char const * );
|
||||||
|
|
||||||
// ----- following decl from libstdc++-v3/libsupc++/unwind-cxx.h and unwind.h
|
// ----- following decl from libstdc++-v3/libsupc++/unwind-cxx.h and unwind.h
|
||||||
|
|
||||||
struct _Unwind_Exception
|
struct _Unwind_Exception
|
||||||
|
Reference in New Issue
Block a user