Peter, Okay so what we need is... Index: ffi_darwin.c =================================================================== --- ffi_darwin.c (revision 117142) +++ ffi_darwin.c (working copy) @@ -94,7 +94,7 @@ /* 'next_arg' grows up as we put parameters in it. */ - unsigned *next_arg = stack + 6; /* 6 reserved positions. */ + unsigned long *next_arg = stack + 6; /* 6 reserved positions. */ int i = ecif->cif->nargs; double double_tmp; @@ -114,7 +114,7 @@ Return values are referenced by r3, so r4 is the first parameter. */ if (flags & FLAG_RETVAL_REFERENCE) - *next_arg++ = (unsigned)(char *)ecif->rvalue; + *next_arg++ = (unsigned long)(char *)ecif->rvalue; /* Now for the arguments. */ for (;
I'll test that tonight. I've opened this up as PR29181. Jack