When compiled at -m64 on Darwin PPC, we get the warning... ../../../../gcc-4.2-20060915/libffi/src/powerpc/ffi_darwin.c: In function 'ffi_prep_args': ../../../../gcc-4.2-20060915/libffi/src/powerpc/ffi_darwin.c:117: warning: cast from pointer to integer of different size
for the line... *next_arg++ = (unsigned)(char *)ecif->rvalue; It would appear that we should be doing the same thing as in libffi.c... =================================================================== --- ffi_darwin.c (revision 117142) +++ ffi_darwin.c (working copy) @@ -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 will be testing this fix tonight and seeing if it improves the current level of failures for the libffi testsuite at -m64 on Darwin PPC. -- Summary: libffi/src/powerpc/ffi_darwin.c not 64-bit clean Product: gcc Version: 4.2.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: libffi AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: howarth at nitro dot med dot uc dot edu GCC build triplet: powerpc-apple-darwin8 GCC host triplet: powerpc-apple-darwin8 GCC target triplet: powerpc-apple-darwin8 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29181