Kaydet (Commit) e2b7e28c authored tarafından Luboš Luňák's avatar Luboš Luňák

adjust gcc3_linux_intel bridge to work with clang

Otherwise exception throwing seems to be broken.
This is a partial revert of b0515ea5.
üst 568d3912
...@@ -36,6 +36,7 @@ ...@@ -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( ...@@ -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 @@ ...@@ -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; ...@@ -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 @@ ...@@ -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
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment