INTEGRATION: CWS sb22 (1.4.138); FILE MERGED

2004/09/27 14:29:34 sb 1.4.138.1: #i34673# Fixed problem with more aggresive inlining of GCC 3.4.
This commit is contained in:
Pascal Junck 2004-11-03 08:03:15 +00:00
parent facb22674a
commit 299c741dda

View file

@ -2,9 +2,9 @@
*
* $RCSfile: uno2cpp.cxx,v $
*
* $Revision: 1.4 $
* $Revision: 1.5 $
*
* last change: $Author: hr $ $Date: 2003-04-28 16:28:35 $
* last change: $Author: pjunck $ $Date: 2004-11-03 09:03:15 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@ -78,7 +78,21 @@ namespace CPPU_CURRENT_NAMESPACE
void dummy_can_throw_anything( char const * );
//==================================================================================================
static void callVirtualMethod(
// The call instruction within the asm section of callVirtualMethod may throw
// exceptions. So that the compiler handles this correctly, it is important
// that (a) callVirtualMethod might call dummy_can_throw_anything (although this
// never happens at runtime), which in turn can throw exceptions, and (b)
// callVirtualMethod is not inlined at its call site (so that any exceptions are
// caught which are thrown from the instruction calling callVirtualMethod):
void callVirtualMethod(
void * pThis,
sal_Int32 nVtableIndex,
void * pRegisterReturn,
typelib_TypeClass eReturnType,
sal_Int32 * pStackLongs,
sal_Int32 nStackLongs ) __attribute__((noinline));
void callVirtualMethod(
void * pThis,
sal_Int32 nVtableIndex,
void * pRegisterReturn,