mirror of git://gcc.gnu.org/git/gcc.git
Fix several libffi testsuite failures on 64-bit SPARC and PowerPC (PR libffi/56033)
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
This commit is contained in:
parent
bee0b10c53
commit
1e1ba2d795
|
|
@ -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>
|
2013-03-22 Kai Tietz <ktietz@redhat.com>
|
||||||
|
|
||||||
* src/x86/win64.S: Make use of ffi_closure_win64_inner
|
* src/x86/win64.S: Make use of ffi_closure_win64_inner
|
||||||
|
|
|
||||||
|
|
@ -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,
|
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,
|
l1.a, l1.b, l1.c, l1.d, l1.e,
|
||||||
s2.a, s2.b);
|
s2.a, s2.b);
|
||||||
* (int*) resp = 42;
|
* (ffi_arg*) resp = 42;
|
||||||
}
|
}
|
||||||
|
|
||||||
int
|
int
|
||||||
|
|
|
||||||
|
|
@ -13,9 +13,9 @@ typedef unsigned int T;
|
||||||
static void cls_ret_T_fn(ffi_cif* cif __UNUSED__, void* resp, void** args,
|
static void cls_ret_T_fn(ffi_cif* cif __UNUSED__, void* resp, void** args,
|
||||||
void* userdata __UNUSED__)
|
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, ...);
|
typedef T (*cls_ret_T)(T, ...);
|
||||||
|
|
|
||||||
|
|
@ -94,7 +94,7 @@ main (void)
|
||||||
struct large_tag l1;
|
struct large_tag l1;
|
||||||
|
|
||||||
int n;
|
int n;
|
||||||
int res;
|
ffi_arg res;
|
||||||
|
|
||||||
unsigned char uc;
|
unsigned char uc;
|
||||||
signed char sc;
|
signed char sc;
|
||||||
|
|
|
||||||
|
|
@ -61,7 +61,7 @@ main (void)
|
||||||
struct large_tag l1;
|
struct large_tag l1;
|
||||||
|
|
||||||
int n;
|
int n;
|
||||||
int res;
|
ffi_arg res;
|
||||||
|
|
||||||
s_type.size = 0;
|
s_type.size = 0;
|
||||||
s_type.alignment = 0;
|
s_type.alignment = 0;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue