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

Reply via email to