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:
parent
facb22674a
commit
299c741dda
1 changed files with 17 additions and 3 deletions
|
@ -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,
|
||||
|
|
Loading…
Reference in a new issue