This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
[PATCH] Backport https://github.com/atgreen/libffi/commit/0de3277b18cf54be3b81d509b9be9b47d9bc1e82 to gcc libffi (PR middle-end/56000)
- From: Jakub Jelinek <jakub at redhat dot com>
- To: Anthony Green <green at redhat dot com>
- Cc: gcc-patches at gcc dot gnu dot org
- Date: Thu, 17 Jan 2013 12:59:56 +0100
- Subject: [PATCH] Backport https://github.com/atgreen/libffi/commit/0de3277b18cf54be3b81d509b9be9b47d9bc1e82 to gcc libffi (PR middle-end/56000)
- Reply-to: Jakub Jelinek <jakub at redhat dot com>
Hi!
Is it ok to backport
https://github.com/atgreen/libffi/commit/0de3277b18cf54be3b81d509b9be9b47d9bc1e82
fix from upstream to gcc's libffi copy? The tests fail on various targets.
2013-01-07 Thorsten Glaser <tg@mirbsd.org>
* testsuite/libffi.call/cls_uchar_va.c,
testsuite/libffi.call/cls_ushort_va.c,
testsuite/libffi.call/va_1.c: Testsuite fixes.
--- libffi/testsuite/libffi.call/cls_uchar_va.c
+++ libffi/testsuite/libffi.call/cls_uchar_va.c
@@ -12,9 +12,9 @@ typedef unsigned char 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, ...);
--- libffi/testsuite/libffi.call/cls_ushort_va.c
+++ libffi/testsuite/libffi.call/cls_ushort_va.c
@@ -12,9 +12,9 @@ typedef unsigned short 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, ...);
--- libffi/testsuite/libffi.call/va_1.c
+++ libffi/testsuite/libffi.call/va_1.c
@@ -5,7 +5,7 @@
Originator: ARM Ltd. */
/* { dg-do run } */
-/* { dg-output "" { xfail avr32*-*-* x86_64-*-*-* } } */
+/* { dg-output "" { xfail avr32*-*-* } } */
#include "ffitest.h"
#include <stdarg.h>
@@ -132,10 +132,10 @@ main (void)
arg_types[1] = &s_type;
arg_types[2] = &l_type;
arg_types[3] = &s_type;
- arg_types[4] = &ffi_type_uint;
- arg_types[5] = &ffi_type_sint;
- arg_types[6] = &ffi_type_uint;
- arg_types[7] = &ffi_type_sint;
+ arg_types[4] = &ffi_type_uchar;
+ arg_types[5] = &ffi_type_schar;
+ arg_types[6] = &ffi_type_ushort;
+ arg_types[7] = &ffi_type_sshort;
arg_types[8] = &ffi_type_uint;
arg_types[9] = &ffi_type_sint;
arg_types[10] = &ffi_type_ulong;
Jakub