------- Comment #3 from rguenth at gcc dot gnu dot org 2007-02-22 11:04 ------- Confirmed. Whoever wrote that code should be ....
typedef long unsigned int size_t; typedef signed int sal_Int32; typedef unsigned int sal_uInt32; typedef unsigned long int sal_uInt64; extern "C" void *memcpy (void *__restrict __dest, __const void *__restrict __src, size_t __n) throw () __attribute__ ((__nonnull__ (1, 2))); void callVirtualMethod(void * pThis, sal_uInt64 *pStack, sal_uInt32 nStack) { sal_uInt64 *stack = (sal_uInt64 *) __builtin_alloca( nStack * 8 ); memcpy( stack, pStack, nStack * 8 ); register sal_uInt64 a0 asm("rdi"); register sal_uInt64 a1 asm("rsi"); register sal_uInt64 a2 asm("rdx"); register sal_uInt64 a3 asm("rcx"); register sal_uInt64 a4 asm("r8"); register sal_uInt64 a5 asm("r9"); sal_uInt64 pMethod = *((sal_uInt64 *)pThis); typedef struct {} ReturnValue; typedef ReturnValue (* FunctionCall )( sal_uInt64, sal_uInt64, sal_uInt64, sal_uInt64, sal_uInt64, sal_uInt64 ); ReturnValue aRet = ( ( FunctionCall ) pMethod )( a0, a1, a2, a3, a4, a5 ); } -- rguenth at gcc dot gnu dot org changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |NEW Ever Confirmed|0 |1 Keywords| |ice-on-valid-code Last reconfirmed|0000-00-00 00:00:00 |2007-02-22 11:04:19 date| | http://gcc.gnu.org/bugzilla/show_bug.cgi?id=30919