[Bug libffi/56033] FAIL: libffi.call/cls_struct_va1.c on powerpc-*-* and sparc-sun-solaris2* with -m64

ro at CeBiTec dot Uni-Bielefeld.DE gcc-bugzilla@gcc.gnu.org
Mon May 13 11:31:00 GMT 2013


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56033

--- Comment #8 from ro at CeBiTec dot Uni-Bielefeld.DE <ro at CeBiTec dot Uni-Bielefeld.DE> ---
> --- Comment #7 from Dominique d'Humieres <dominiq at lps dot ens.fr> 2013-04-22 14:22:15 UTC ---
> Following the recipe in comment #5, the following patch
[...]
> fixes the corresponding failures. Note that I did not find how to apply the
> recipe to libffi.call/cls_uint_va.c.

Same for 64-bit sparc-sun-solaris2.*.  The following snippet fixes the
cls_unit_va.c failure for me:

diff --git a/libffi/testsuite/libffi.call/cls_uint_va.c
b/libffi/testsuite/libffi.call/cls_uint_va.c
--- a/libffi/testsuite/libffi.call/cls_uint_va.c
+++ b/libffi/testsuite/libffi.call/cls_uint_va.c
@@ -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, ...);

I've included the complete patch in i386-pc-solaris2.* bootstraps, too,
and saw no regressions, so I suggest you post the complete patch to
gcc-patches, and Cc: Anthony Green.

Thanks.
        Rainer



More information about the Gcc-bugs mailing list