Apache OpenOffice (AOO) Bugzilla – Issue 12721
gcc3_linux_intel UNO bridge broken
Last modified: 2003-04-29 16:08:58 UTC
Depending on how a compiler generates code (e.g., GCC 3.2.2 vs. GCC 3.0.1), a bug in the gcc3_linux_intel UNO bridge is revealed: If a C/C++ function returns a complex object (class, struct, union), the 386 ABI specifies that the caller pushes the address for that object on the stack, and the callee removes it from the stack. The code in the UNO bridge (callVirtualMethod in bridges/source/cpp_uno/gcc3_linux_intel/uno2cpp.cxx) erroneously assumes that the callee does *not* remove the address from the stack, corrupting the stack and. Can be verified with testtools' bridgetest_inprocess. This can be a problem for other gcc*_intel UNO bridges as well.
fixed
-
verified
verified in SRX644m12s1