Fix return values
diff --git a/testsuite/libffi.bhaible/test-callback.c b/testsuite/libffi.bhaible/test-callback.c
index 57a3783..8bf9dd2 100644
--- a/testsuite/libffi.bhaible/test-callback.c
+++ b/testsuite/libffi.bhaible/test-callback.c
@@ -99,7 +99,7 @@
  {int r=99;
   FPRINTF(out,"int f(void):");
   fflush(out);
-  *(int*)retp = r;
+  *(ffi_arg*)retp = r;
 }}
 void i_i_simulator (ffi_cif* cif, void* retp, /*const*/ void* /*const*/ *args, void* data)
 {
@@ -108,7 +108,7 @@
   int r=a+1;
   FPRINTF(out,"int f(int):(%d)",a);
   fflush(out);
-  *(int*)retp = r;
+  *(ffi_arg*)retp = r;
 }
 void i_i2_simulator (ffi_cif* cif, void* retp, /*const*/ void* /*const*/ *args, void* data)
 {
@@ -118,7 +118,7 @@
   int r=a+b;
   FPRINTF(out,"int f(2*int):(%d,%d)",a,b);
   fflush(out);
-  *(int*)retp = r;
+  *(ffi_arg*)retp = r;
 }}
 void i_i4_simulator (ffi_cif* cif, void* retp, /*const*/ void* /*const*/ *args, void* data)
 {
@@ -130,7 +130,7 @@
   int r=a+b+c+d;
   FPRINTF(out,"int f(4*int):(%d,%d,%d,%d)",a,b,c,d);
   fflush(out);
-  *(int*)retp = r;
+  *(ffi_arg*)retp = r;
 }}
 void i_i8_simulator (ffi_cif* cif, void* retp, /*const*/ void* /*const*/ *args, void* data)
 {
@@ -146,7 +146,7 @@
   int r=a+b+c+d+e+f+g+h;
   FPRINTF(out,"int f(8*int):(%d,%d,%d,%d,%d,%d,%d,%d)",a,b,c,d,e,f,g,h);
   fflush(out);
-  *(int*)retp = r;
+  *(ffi_arg*)retp = r;
 }}
 void i_i16_simulator (ffi_cif* cif, void* retp, /*const*/ void* /*const*/ *args, void* data)
 {
@@ -171,7 +171,7 @@
   FPRINTF(out,"int f(16*int):(%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d)",
           a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p);
   fflush(out);
-  *(int*)retp = r;
+  *(ffi_arg*)retp = r;
 }}
 
 /* float tests */
@@ -377,7 +377,7 @@
   uchar r = (uchar)-1;
   FPRINTF(out,"uchar f(uchar,ushort,uint,ulong):(%u,%u,%u,%lu)",a,b,c,d);
   fflush(out);
-  *(unsigned char *)retp = r;
+  *(ffi_arg *)retp = r;
 }}
 void d_iidd_simulator (ffi_cif* cif, void* retp, /*const*/ void* /*const*/ *args, void* data)
 {
@@ -437,7 +437,7 @@
   ushort r = (ushort)(a + b + c + d);
   FPRINTF(out,"ushort f(char,double,char,double):('%c',%g,'%c',%g)",a,b,c,d);
   fflush(out);
-  *(unsigned short *)retp = r;
+  *(ffi_arg *)retp = r;
 }}
 void ll_iiilli_simulator (ffi_cif* cif, void* retp, /*const*/ void* /*const*/ *args, void* data)
 {
@@ -895,7 +895,7 @@
   long r = b.l1 + b.l2 + b.l3 + b.l4 + c;
   FPRINTF(out,"long f(K,long):(%ld,%ld,%ld,%ld,%ld)",b.l1,b.l2,b.l3,b.l4,c);
   fflush(out);
-  *(long*)retp = r;
+  *(ffi_arg*)retp = r;
 }}
 void l_l1K_simulator (ffi_cif* cif, void* retp, /*const*/ void* /*const*/ *args, void* data)
 {
@@ -906,7 +906,7 @@
   long r = a1 + b.l1 + b.l2 + b.l3 + b.l4 + c;
   FPRINTF(out,"long f(long,K,long):(%ld,%ld,%ld,%ld,%ld,%ld)",a1,b.l1,b.l2,b.l3,b.l4,c);
   fflush(out);
-  *(long*)retp = r;
+  *(ffi_arg*)retp = r;
 }}
 void l_l2K_simulator (ffi_cif* cif, void* retp, /*const*/ void* /*const*/ *args, void* data)
 {
@@ -918,7 +918,7 @@
   long r = a1 + a2 + b.l1 + b.l2 + b.l3 + b.l4 + c;
   FPRINTF(out,"long f(2*long,K,long):(%ld,%ld,%ld,%ld,%ld,%ld,%ld)",a1,a2,b.l1,b.l2,b.l3,b.l4,c);
   fflush(out);
-  *(long*)retp = r;
+  *(ffi_arg*)retp = r;
 }}
 void l_l3K_simulator (ffi_cif* cif, void* retp, /*const*/ void* /*const*/ *args, void* data)
 {
@@ -931,7 +931,7 @@
   long r = a1 + a2 + a3 + b.l1 + b.l2 + b.l3 + b.l4 + c;
   FPRINTF(out,"long f(3*long,K,long):(%ld,%ld,%ld,%ld,%ld,%ld,%ld,%ld)",a1,a2,a3,b.l1,b.l2,b.l3,b.l4,c);
   fflush(out);
-  *(long*)retp = r;
+  *(ffi_arg*)retp = r;
 }}
 void l_l4K_simulator (ffi_cif* cif, void* retp, /*const*/ void* /*const*/ *args, void* data)
 {
@@ -945,7 +945,7 @@
   long r = a1 + a2 + a3 + a4 + b.l1 + b.l2 + b.l3 + b.l4 + c;
   FPRINTF(out,"long f(4*long,K,long):(%ld,%ld,%ld,%ld,%ld,%ld,%ld,%ld,%ld)",a1,a2,a3,a4,b.l1,b.l2,b.l3,b.l4,c);
   fflush(out);
-  *(long*)retp = r;
+  *(ffi_arg*)retp = r;
 }}
 void l_l5K_simulator (ffi_cif* cif, void* retp, /*const*/ void* /*const*/ *args, void* data)
 {
@@ -960,7 +960,7 @@
   long r = a1 + a2 + a3 + a4 + a5 + b.l1 + b.l2 + b.l3 + b.l4 + c;
   FPRINTF(out,"long f(5*long,K,long):(%ld,%ld,%ld,%ld,%ld,%ld,%ld,%ld,%ld,%ld)",a1,a2,a3,a4,a5,b.l1,b.l2,b.l3,b.l4,c);
   fflush(out);
-  *(long*)retp = r;
+  *(ffi_arg*)retp = r;
 }}
 void l_l6K_simulator (ffi_cif* cif, void* retp, /*const*/ void* /*const*/ *args, void* data)
 {
@@ -976,7 +976,7 @@
   long r = a1 + a2 + a3 + a4 + a5 + a6 + b.l1 + b.l2 + b.l3 + b.l4 + c;
   FPRINTF(out,"long f(6*long,K,long):(%ld,%ld,%ld,%ld,%ld,%ld,%ld,%ld,%ld,%ld,%ld)",a1,a2,a3,a4,a5,a6,b.l1,b.l2,b.l3,b.l4,c);
   fflush(out);
-  *(long*)retp = r;
+  *(ffi_arg*)retp = r;
 }}
 void f_f17l3L_simulator (ffi_cif* cif, void* retp, /*const*/ void* /*const*/ *args, void* data)
 {