Fix several libffi testsuite failures on 64-bit SPARC and PowerPC (PR libffi/56033)
authorDominique d'Humieres <dominiq@lps.ens.fr>
Wed, 22 May 2013 11:47:52 +0000 (13:47 +0200)
committerRainer Orth <ro@gcc.gnu.org>
Wed, 22 May 2013 11:47:52 +0000 (11:47 +0000)
PR libffi/56033
* testsuite/libffi.call/cls_struct_va1.c (test_fn): Cast resp to
ffi_arg *.
* testsuite/libffi.call/cls_uint_va.c (cls_ret_T_fn): Likewise.
* testsuite/libffi.call/va_1.c (main): Change res to ffi_arg.
* testsuite/libffi.call/va_struct1.c (main): Likewise.

Co-Authored-By: Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
From-SVN: r199194

libffi/ChangeLog
libffi/testsuite/libffi.call/cls_struct_va1.c
libffi/testsuite/libffi.call/cls_uint_va.c
libffi/testsuite/libffi.call/va_1.c
libffi/testsuite/libffi.call/va_struct1.c

index 23a6a7800a49471b06569d1e5d678c6dfe851b02..892e87a15606e41bb17a5ae2d5bfd75ea8ee5b4d 100644 (file)
@@ -1,3 +1,13 @@
+2013-05-22  Dominique d'Humieres  <dominiq@lps.ens.fr>
+           Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
+
+       PR libffi/56033
+       * testsuite/libffi.call/cls_struct_va1.c (test_fn): Cast resp to
+       ffi_arg *.
+       * testsuite/libffi.call/cls_uint_va.c (cls_ret_T_fn): Likewise.
+       * testsuite/libffi.call/va_1.c (main): Change res to ffi_arg.
+       * testsuite/libffi.call/va_struct1.c (main): Likewise.
+
 2013-03-22  Kai Tietz  <ktietz@redhat.com>
 
        * src/x86/win64.S: Make use of ffi_closure_win64_inner
index 91772bd406823b0108c16ec1b6ad333e4655acb5..7262d630dd631d35693289bc8dad09b37cfdf366 100644 (file)
@@ -35,7 +35,7 @@ test_fn (ffi_cif* cif __UNUSED__, void* resp,
   printf ("%d %d %d %d %d %d %d %d %d %d\n", n, s1.a, s1.b,
          l1.a, l1.b, l1.c, l1.d, l1.e,
          s2.a, s2.b);
-  * (int*) resp = 42;
+  * (ffi_arg*) resp = 42;
 }
 
 int
index 150fddd515db36346203ab35c8136b14eccc4074..b04cfd19c2ce42fbd08906fd8e72aa7eac928f90 100644 (file)
@@ -13,9 +13,9 @@ typedef unsigned int T;
 static void cls_ret_T_fn(ffi_cif* cif __UNUSED__, void* resp, void** args,
                         void* userdata __UNUSED__)
  {
-   *(T *)resp = *(T *)args[0];
+   *(ffi_arg *)resp = *(T *)args[0];
 
-   printf("%d: %d %d\n", *(T *)resp, *(T *)args[0], *(T *)args[1]);
+   printf("%d: %d %d\n", (int)*(ffi_arg *)resp, *(T *)args[0], *(T *)args[1]);
  }
 
 typedef T (*cls_ret_T)(T, ...);
index cf4dd85cedeff3743db63722758a07d555a5b391..7f96809ea9ecf180805c5ace9f57a342ab591992 100644 (file)
@@ -94,7 +94,7 @@ main (void)
   struct large_tag l1;
 
   int n;
-  int res;
+  ffi_arg res;
 
   unsigned char uc;
   signed char sc;
index 11d1f10e5c69e695ee6a1acd2dfc17dbfa2298fe..e6452061c1d3b5427c41b062186a329e080a9f41 100644 (file)
@@ -61,7 +61,7 @@ main (void)
   struct large_tag l1;
 
   int n;
-  int res;
+  ffi_arg res;
 
   s_type.size = 0;
   s_type.alignment = 0;