aboutsummaryrefslogtreecommitdiff
path: root/libffi/testsuite/libffi.call
diff options
context:
space:
mode:
Diffstat (limited to 'libffi/testsuite/libffi.call')
-rw-r--r--libffi/testsuite/libffi.call/call.exp1
-rw-r--r--libffi/testsuite/libffi.call/closure_fn0.c22
-rw-r--r--libffi/testsuite/libffi.call/closure_fn1.c16
-rw-r--r--libffi/testsuite/libffi.call/closure_fn2.c14
-rw-r--r--libffi/testsuite/libffi.call/closure_fn3.c8
-rw-r--r--libffi/testsuite/libffi.call/closure_fn4.c4
-rw-r--r--libffi/testsuite/libffi.call/closure_fn5.c6
-rw-r--r--libffi/testsuite/libffi.call/closure_fn6.c10
-rw-r--r--libffi/testsuite/libffi.call/cls_12byte.c8
-rw-r--r--libffi/testsuite/libffi.call/cls_16byte.c6
-rw-r--r--libffi/testsuite/libffi.call/cls_18byte.c2
-rw-r--r--libffi/testsuite/libffi.call/cls_19byte.c2
-rw-r--r--libffi/testsuite/libffi.call/cls_1_1byte.c2
-rw-r--r--libffi/testsuite/libffi.call/cls_20byte.c4
-rw-r--r--libffi/testsuite/libffi.call/cls_20byte1.c4
-rw-r--r--libffi/testsuite/libffi.call/cls_24byte.c4
-rw-r--r--libffi/testsuite/libffi.call/cls_2byte.c2
-rw-r--r--libffi/testsuite/libffi.call/cls_3_1byte.c2
-rw-r--r--libffi/testsuite/libffi.call/cls_3byte1.c2
-rw-r--r--libffi/testsuite/libffi.call/cls_3byte2.c2
-rw-r--r--libffi/testsuite/libffi.call/cls_4_1byte.c2
-rw-r--r--libffi/testsuite/libffi.call/cls_4byte.c2
-rw-r--r--libffi/testsuite/libffi.call/cls_5_1_byte.c2
-rw-r--r--libffi/testsuite/libffi.call/cls_5byte.c2
-rw-r--r--libffi/testsuite/libffi.call/cls_64byte.c2
-rw-r--r--libffi/testsuite/libffi.call/cls_6_1_byte.c2
-rw-r--r--libffi/testsuite/libffi.call/cls_6byte.c2
-rw-r--r--libffi/testsuite/libffi.call/cls_7_1_byte.c2
-rw-r--r--libffi/testsuite/libffi.call/cls_7byte.c2
-rw-r--r--libffi/testsuite/libffi.call/cls_8byte.c4
-rw-r--r--libffi/testsuite/libffi.call/cls_9byte1.c4
-rw-r--r--libffi/testsuite/libffi.call/cls_9byte2.c4
-rw-r--r--libffi/testsuite/libffi.call/cls_align_double.c2
-rw-r--r--libffi/testsuite/libffi.call/cls_align_float.c2
-rw-r--r--libffi/testsuite/libffi.call/cls_align_longdouble.c2
-rw-r--r--libffi/testsuite/libffi.call/cls_align_pointer.c2
-rw-r--r--libffi/testsuite/libffi.call/cls_align_sint16.c4
-rw-r--r--libffi/testsuite/libffi.call/cls_align_sint32.c4
-rw-r--r--libffi/testsuite/libffi.call/cls_align_sint64.c2
-rw-r--r--libffi/testsuite/libffi.call/cls_align_uint16.c4
-rw-r--r--libffi/testsuite/libffi.call/cls_align_uint32.c4
-rw-r--r--libffi/testsuite/libffi.call/cls_align_uint64.c2
-rw-r--r--libffi/testsuite/libffi.call/cls_double.c2
-rw-r--r--libffi/testsuite/libffi.call/cls_float.c2
-rw-r--r--libffi/testsuite/libffi.call/cls_multi_schar.c2
-rw-r--r--libffi/testsuite/libffi.call/cls_multi_sshort.c2
-rw-r--r--libffi/testsuite/libffi.call/cls_multi_sshortchar.c2
-rw-r--r--libffi/testsuite/libffi.call/cls_multi_uchar.c2
-rw-r--r--libffi/testsuite/libffi.call/cls_multi_ushort.c2
-rw-r--r--libffi/testsuite/libffi.call/cls_multi_ushortchar.c2
-rw-r--r--libffi/testsuite/libffi.call/cls_schar.c2
-rw-r--r--libffi/testsuite/libffi.call/cls_sint.c6
-rw-r--r--libffi/testsuite/libffi.call/cls_sshort.c6
-rw-r--r--libffi/testsuite/libffi.call/cls_uchar.c2
-rw-r--r--libffi/testsuite/libffi.call/cls_uint.c6
-rw-r--r--libffi/testsuite/libffi.call/cls_ulonglong.c2
-rw-r--r--libffi/testsuite/libffi.call/cls_ushort.c2
-rw-r--r--libffi/testsuite/libffi.call/ffitest.h11
-rw-r--r--libffi/testsuite/libffi.call/nested_struct.c6
-rw-r--r--libffi/testsuite/libffi.call/nested_struct1.c6
-rw-r--r--libffi/testsuite/libffi.call/nested_struct10.c4
-rw-r--r--libffi/testsuite/libffi.call/nested_struct2.c4
-rw-r--r--libffi/testsuite/libffi.call/nested_struct3.c2
-rw-r--r--libffi/testsuite/libffi.call/nested_struct4.c2
-rw-r--r--libffi/testsuite/libffi.call/nested_struct5.c2
-rw-r--r--libffi/testsuite/libffi.call/nested_struct6.c4
-rw-r--r--libffi/testsuite/libffi.call/nested_struct7.c2
-rw-r--r--libffi/testsuite/libffi.call/nested_struct8.c2
-rw-r--r--libffi/testsuite/libffi.call/nested_struct9.c4
-rw-r--r--libffi/testsuite/libffi.call/problem1.c2
-rw-r--r--libffi/testsuite/libffi.call/return_dbl1.c2
-rw-r--r--libffi/testsuite/libffi.call/return_dbl2.c2
-rw-r--r--libffi/testsuite/libffi.call/return_fl3.c2
-rw-r--r--libffi/testsuite/libffi.call/return_ldl.c34
-rw-r--r--libffi/testsuite/libffi.call/return_ll1.c4
-rw-r--r--libffi/testsuite/libffi.call/return_sc.c2
-rw-r--r--libffi/testsuite/libffi.call/return_sl.c38
-rw-r--r--libffi/testsuite/libffi.call/return_ul.c4
78 files changed, 211 insertions, 149 deletions
diff --git a/libffi/testsuite/libffi.call/call.exp b/libffi/testsuite/libffi.call/call.exp
index bd4d2e8cc25..25e01099975 100644
--- a/libffi/testsuite/libffi.call/call.exp
+++ b/libffi/testsuite/libffi.call/call.exp
@@ -27,6 +27,7 @@ dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/*.\[cS\]]] "-O0 -W -Wall" ""
dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/*.\[cS\]]] "-O2" ""
dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/*.\[cS\]]] "-O3" ""
dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/*.\[cS\]]] "-Os" ""
+dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/*.\[cS\]]] "-O2 -fomit-frame-pointer" ""
dg-finish
diff --git a/libffi/testsuite/libffi.call/closure_fn0.c b/libffi/testsuite/libffi.call/closure_fn0.c
index 929b0dd39ce..e4875270a0c 100644
--- a/libffi/testsuite/libffi.call/closure_fn0.c
+++ b/libffi/testsuite/libffi.call/closure_fn0.c
@@ -9,7 +9,7 @@
-/* { dg-do run { xfail mips64*-*-* } } */
+/* { dg-do run } */
#include "ffitest.h"
static void
@@ -63,21 +63,21 @@ int main (void)
#endif
cl_arg_types[0] = &ffi_type_uint64;
- cl_arg_types[1] = &ffi_type_uint;
+ cl_arg_types[1] = &ffi_type_sint;
cl_arg_types[2] = &ffi_type_uint64;
- cl_arg_types[3] = &ffi_type_uint;
+ cl_arg_types[3] = &ffi_type_sint;
cl_arg_types[4] = &ffi_type_sshort;
cl_arg_types[5] = &ffi_type_uint64;
- cl_arg_types[6] = &ffi_type_uint;
- cl_arg_types[7] = &ffi_type_uint;
+ cl_arg_types[6] = &ffi_type_sint;
+ cl_arg_types[7] = &ffi_type_sint;
cl_arg_types[8] = &ffi_type_double;
- cl_arg_types[9] = &ffi_type_uint;
- cl_arg_types[10] = &ffi_type_uint;
+ cl_arg_types[9] = &ffi_type_sint;
+ cl_arg_types[10] = &ffi_type_sint;
cl_arg_types[11] = &ffi_type_float;
- cl_arg_types[12] = &ffi_type_uint;
- cl_arg_types[13] = &ffi_type_uint;
- cl_arg_types[14] = &ffi_type_uint;
- cl_arg_types[15] = &ffi_type_uint;
+ cl_arg_types[12] = &ffi_type_sint;
+ cl_arg_types[13] = &ffi_type_sint;
+ cl_arg_types[14] = &ffi_type_sint;
+ cl_arg_types[15] = &ffi_type_sint;
cl_arg_types[16] = NULL;
/* Initialize the cif */
diff --git a/libffi/testsuite/libffi.call/closure_fn1.c b/libffi/testsuite/libffi.call/closure_fn1.c
index e12917bbab0..db26c4246e4 100644
--- a/libffi/testsuite/libffi.call/closure_fn1.c
+++ b/libffi/testsuite/libffi.call/closure_fn1.c
@@ -6,7 +6,7 @@
PR: none.
Originator: <andreast@gcc.gnu.org> 20030828 */
-/* { dg-do run { xfail mips64*-*-* } } */
+/* { dg-do run } */
#include "ffitest.h"
@@ -61,15 +61,15 @@ int main (void)
cl_arg_types[4] = &ffi_type_sshort;
cl_arg_types[5] = &ffi_type_float;
cl_arg_types[6] = &ffi_type_float;
- cl_arg_types[7] = &ffi_type_uint;
+ cl_arg_types[7] = &ffi_type_sint;
cl_arg_types[8] = &ffi_type_double;
- cl_arg_types[9] = &ffi_type_uint;
- cl_arg_types[10] = &ffi_type_uint;
+ cl_arg_types[9] = &ffi_type_sint;
+ cl_arg_types[10] = &ffi_type_sint;
cl_arg_types[11] = &ffi_type_float;
- cl_arg_types[12] = &ffi_type_uint;
- cl_arg_types[13] = &ffi_type_uint;
- cl_arg_types[14] = &ffi_type_uint;
- cl_arg_types[15] = &ffi_type_uint;
+ cl_arg_types[12] = &ffi_type_sint;
+ cl_arg_types[13] = &ffi_type_sint;
+ cl_arg_types[14] = &ffi_type_sint;
+ cl_arg_types[15] = &ffi_type_sint;
cl_arg_types[16] = NULL;
/* Initialize the cif */
diff --git a/libffi/testsuite/libffi.call/closure_fn2.c b/libffi/testsuite/libffi.call/closure_fn2.c
index 498173ce6b8..cbf73856113 100644
--- a/libffi/testsuite/libffi.call/closure_fn2.c
+++ b/libffi/testsuite/libffi.call/closure_fn2.c
@@ -6,7 +6,7 @@
PR: none.
Originator: <andreast@gcc.gnu.org> 20030828 */
-/* { dg-do run { xfail mips64*-*-* } } */
+/* { dg-do run } */
#include "ffitest.h"
static void closure_test_fn2(ffi_cif* cif __UNUSED__, void* resp, void** args,
@@ -61,15 +61,15 @@ int main (void)
cl_arg_types[4] = &ffi_type_sshort;
cl_arg_types[5] = &ffi_type_double;
cl_arg_types[6] = &ffi_type_double;
- cl_arg_types[7] = &ffi_type_uint;
+ cl_arg_types[7] = &ffi_type_sint;
cl_arg_types[8] = &ffi_type_double;
- cl_arg_types[9] = &ffi_type_uint;
- cl_arg_types[10] = &ffi_type_uint;
+ cl_arg_types[9] = &ffi_type_sint;
+ cl_arg_types[10] = &ffi_type_sint;
cl_arg_types[11] = &ffi_type_float;
- cl_arg_types[12] = &ffi_type_uint;
+ cl_arg_types[12] = &ffi_type_sint;
cl_arg_types[13] = &ffi_type_float;
- cl_arg_types[14] = &ffi_type_uint;
- cl_arg_types[15] = &ffi_type_uint;
+ cl_arg_types[14] = &ffi_type_sint;
+ cl_arg_types[15] = &ffi_type_sint;
cl_arg_types[16] = NULL;
/* Initialize the cif */
diff --git a/libffi/testsuite/libffi.call/closure_fn3.c b/libffi/testsuite/libffi.call/closure_fn3.c
index cd95dc4f044..1fb32a86db6 100644
--- a/libffi/testsuite/libffi.call/closure_fn3.c
+++ b/libffi/testsuite/libffi.call/closure_fn3.c
@@ -6,7 +6,7 @@
PR: none.
Originator: <andreast@gcc.gnu.org> 20030828 */
-/* { dg-do run { xfail mips64*-*-* } } */
+/* { dg-do run } */
#include "ffitest.h"
static void closure_test_fn3(ffi_cif* cif __UNUSED__, void* resp, void** args,
@@ -64,13 +64,13 @@ int main (void)
cl_arg_types[6] = &ffi_type_float;
cl_arg_types[7] = &ffi_type_float;
cl_arg_types[8] = &ffi_type_double;
- cl_arg_types[9] = &ffi_type_uint;
+ cl_arg_types[9] = &ffi_type_sint;
cl_arg_types[10] = &ffi_type_float;
cl_arg_types[11] = &ffi_type_float;
- cl_arg_types[12] = &ffi_type_uint;
+ cl_arg_types[12] = &ffi_type_sint;
cl_arg_types[13] = &ffi_type_float;
cl_arg_types[14] = &ffi_type_float;
- cl_arg_types[15] = &ffi_type_uint;
+ cl_arg_types[15] = &ffi_type_sint;
cl_arg_types[16] = NULL;
/* Initialize the cif */
diff --git a/libffi/testsuite/libffi.call/closure_fn4.c b/libffi/testsuite/libffi.call/closure_fn4.c
index 65ff2be1058..74506f31a0e 100644
--- a/libffi/testsuite/libffi.call/closure_fn4.c
+++ b/libffi/testsuite/libffi.call/closure_fn4.c
@@ -6,7 +6,7 @@
PR: none.
Originator: <andreast@gcc.gnu.org> 20031026 */
-/* { dg-do run { xfail mips64*-*-* } } */
+/* { dg-do run } */
#include "ffitest.h"
@@ -76,7 +76,7 @@ int main (void)
for (i = 0; i < 15; i++) {
cl_arg_types[i] = &ffi_type_uint64;
}
- cl_arg_types[15] = &ffi_type_uint;
+ cl_arg_types[15] = &ffi_type_sint;
cl_arg_types[16] = NULL;
/* Initialize the cif */
diff --git a/libffi/testsuite/libffi.call/closure_fn5.c b/libffi/testsuite/libffi.call/closure_fn5.c
index 2ad0aed21c2..c64ee8dfd66 100644
--- a/libffi/testsuite/libffi.call/closure_fn5.c
+++ b/libffi/testsuite/libffi.call/closure_fn5.c
@@ -6,7 +6,7 @@
PR: none.
Originator: <andreast@gcc.gnu.org> 20031026 */
-/* { dg-do run { xfail mips64*-*-* } } */
+/* { dg-do run } */
#include "ffitest.h"
static void
@@ -74,11 +74,11 @@ int main (void)
for (i = 0; i < 10; i++) {
cl_arg_types[i] = &ffi_type_uint64;
}
- cl_arg_types[10] = &ffi_type_uint;
+ cl_arg_types[10] = &ffi_type_sint;
for (i = 11; i < 15; i++) {
cl_arg_types[i] = &ffi_type_uint64;
}
- cl_arg_types[15] = &ffi_type_uint;
+ cl_arg_types[15] = &ffi_type_sint;
cl_arg_types[16] = NULL;
/* Initialize the cif */
diff --git a/libffi/testsuite/libffi.call/closure_fn6.c b/libffi/testsuite/libffi.call/closure_fn6.c
index e701a1f6e86..16c52fdf20e 100644
--- a/libffi/testsuite/libffi.call/closure_fn6.c
+++ b/libffi/testsuite/libffi.call/closure_fn6.c
@@ -5,7 +5,7 @@
PR: PR23404
Originator: <andreast@gcc.gnu.org> 20050830 */
-/* { dg-do run { xfail mips64*-*-* } } */
+/* { dg-do run } */
#include "ffitest.h"
static void
@@ -67,16 +67,16 @@ int main (void)
cl_arg_types[1] = &ffi_type_uint64;
cl_arg_types[2] = &ffi_type_uint64;
cl_arg_types[3] = &ffi_type_uint64;
- cl_arg_types[4] = &ffi_type_uint;
+ cl_arg_types[4] = &ffi_type_sint;
cl_arg_types[5] = &ffi_type_double;
cl_arg_types[6] = &ffi_type_double;
cl_arg_types[7] = &ffi_type_float;
cl_arg_types[8] = &ffi_type_double;
cl_arg_types[9] = &ffi_type_double;
- cl_arg_types[10] = &ffi_type_uint;
+ cl_arg_types[10] = &ffi_type_sint;
cl_arg_types[11] = &ffi_type_float;
- cl_arg_types[12] = &ffi_type_uint;
- cl_arg_types[13] = &ffi_type_uint;
+ cl_arg_types[12] = &ffi_type_sint;
+ cl_arg_types[13] = &ffi_type_sint;
cl_arg_types[14] = &ffi_type_double;
cl_arg_types[15] = &ffi_type_double;
cl_arg_types[16] = NULL;
diff --git a/libffi/testsuite/libffi.call/cls_12byte.c b/libffi/testsuite/libffi.call/cls_12byte.c
index e436721e752..92530d5ff57 100644
--- a/libffi/testsuite/libffi.call/cls_12byte.c
+++ b/libffi/testsuite/libffi.call/cls_12byte.c
@@ -4,7 +4,7 @@
PR: none.
Originator: <andreast@gcc.gnu.org> 20030828 */
-/* { dg-do run { xfail mips64*-*-* } } */
+/* { dg-do run } */
#include "ffitest.h"
typedef struct cls_struct_12byte {
@@ -66,9 +66,9 @@ int main (void)
struct cls_struct_12byte j_dbl = { 1, 5, 3 };
struct cls_struct_12byte res_dbl;
- cls_struct_fields[0] = &ffi_type_uint32;
- cls_struct_fields[1] = &ffi_type_uint32;
- cls_struct_fields[2] = &ffi_type_uint32;
+ cls_struct_fields[0] = &ffi_type_sint;
+ cls_struct_fields[1] = &ffi_type_sint;
+ cls_struct_fields[2] = &ffi_type_sint;
cls_struct_fields[3] = NULL;
dbl_arg_types[0] = &cls_struct_type;
diff --git a/libffi/testsuite/libffi.call/cls_16byte.c b/libffi/testsuite/libffi.call/cls_16byte.c
index 466aa877ca4..f3c314a8760 100644
--- a/libffi/testsuite/libffi.call/cls_16byte.c
+++ b/libffi/testsuite/libffi.call/cls_16byte.c
@@ -5,7 +5,7 @@
PR: none.
Originator: <andreast@gcc.gnu.org> 20030828 */
-/* { dg-do run { xfail mips64*-*-* } } */
+/* { dg-do run } */
#include "ffitest.h"
typedef struct cls_struct_16byte {
@@ -67,9 +67,9 @@ int main (void)
struct cls_struct_16byte j_dbl = { 1, 9.0, 3 };
struct cls_struct_16byte res_dbl;
- cls_struct_fields[0] = &ffi_type_uint32;
+ cls_struct_fields[0] = &ffi_type_sint;
cls_struct_fields[1] = &ffi_type_double;
- cls_struct_fields[2] = &ffi_type_uint32;
+ cls_struct_fields[2] = &ffi_type_sint;
cls_struct_fields[3] = NULL;
dbl_arg_types[0] = &cls_struct_type;
diff --git a/libffi/testsuite/libffi.call/cls_18byte.c b/libffi/testsuite/libffi.call/cls_18byte.c
index 9a48750512e..90165804695 100644
--- a/libffi/testsuite/libffi.call/cls_18byte.c
+++ b/libffi/testsuite/libffi.call/cls_18byte.c
@@ -5,7 +5,7 @@
PR: none.
Originator: <andreast@gcc.gnu.org> 20030915 */
-/* { dg-do run { xfail mips64*-*-* } } */
+/* { dg-do run } */
#include "ffitest.h"
typedef struct cls_struct_18byte {
diff --git a/libffi/testsuite/libffi.call/cls_19byte.c b/libffi/testsuite/libffi.call/cls_19byte.c
index 78319723a12..8af583467b1 100644
--- a/libffi/testsuite/libffi.call/cls_19byte.c
+++ b/libffi/testsuite/libffi.call/cls_19byte.c
@@ -5,7 +5,7 @@
PR: none.
Originator: <andreast@gcc.gnu.org> 20030915 */
-/* { dg-do run { xfail mips64*-*-* } } */
+/* { dg-do run } */
#include "ffitest.h"
typedef struct cls_struct_19byte {
diff --git a/libffi/testsuite/libffi.call/cls_1_1byte.c b/libffi/testsuite/libffi.call/cls_1_1byte.c
index 5ebd2c8880d..0fcc8c6d54c 100644
--- a/libffi/testsuite/libffi.call/cls_1_1byte.c
+++ b/libffi/testsuite/libffi.call/cls_1_1byte.c
@@ -8,7 +8,7 @@
-/* { dg-do run { xfail mips64*-*-* } } */
+/* { dg-do run } */
#include "ffitest.h"
typedef struct cls_struct_1_1byte {
diff --git a/libffi/testsuite/libffi.call/cls_20byte.c b/libffi/testsuite/libffi.call/cls_20byte.c
index b12d4b17bbf..fa5f81a88c8 100644
--- a/libffi/testsuite/libffi.call/cls_20byte.c
+++ b/libffi/testsuite/libffi.call/cls_20byte.c
@@ -5,7 +5,7 @@
PR: none.
Originator: <andreast@gcc.gnu.org> 20030828 */
-/* { dg-do run { xfail mips64*-*-* } } */
+/* { dg-do run } */
#include "ffitest.h"
typedef struct cls_struct_20byte {
@@ -69,7 +69,7 @@ int main (void)
cls_struct_fields[0] = &ffi_type_double;
cls_struct_fields[1] = &ffi_type_double;
- cls_struct_fields[2] = &ffi_type_uint32;
+ cls_struct_fields[2] = &ffi_type_sint;
cls_struct_fields[3] = NULL;
dbl_arg_types[0] = &cls_struct_type;
diff --git a/libffi/testsuite/libffi.call/cls_20byte1.c b/libffi/testsuite/libffi.call/cls_20byte1.c
index 978a51a970d..072bafcafb5 100644
--- a/libffi/testsuite/libffi.call/cls_20byte1.c
+++ b/libffi/testsuite/libffi.call/cls_20byte1.c
@@ -7,7 +7,7 @@
-/* { dg-do run { xfail mips64*-*-* } } */
+/* { dg-do run } */
#include "ffitest.h"
typedef struct cls_struct_20byte {
@@ -69,7 +69,7 @@ int main (void)
struct cls_struct_20byte f_dbl = { 4, 5.0, 7.0 };
struct cls_struct_20byte res_dbl;
- cls_struct_fields[0] = &ffi_type_uint32;
+ cls_struct_fields[0] = &ffi_type_sint;
cls_struct_fields[1] = &ffi_type_double;
cls_struct_fields[2] = &ffi_type_double;
cls_struct_fields[3] = NULL;
diff --git a/libffi/testsuite/libffi.call/cls_24byte.c b/libffi/testsuite/libffi.call/cls_24byte.c
index 9aa0c065097..22e169058c5 100644
--- a/libffi/testsuite/libffi.call/cls_24byte.c
+++ b/libffi/testsuite/libffi.call/cls_24byte.c
@@ -5,7 +5,7 @@
PR: none.
Originator: <andreast@gcc.gnu.org> 20030828 */
-/* { dg-do run { xfail mips64*-*-* } } */
+/* { dg-do run } */
#include "ffitest.h"
typedef struct cls_struct_24byte {
@@ -82,7 +82,7 @@ int main (void)
cls_struct_fields[0] = &ffi_type_double;
cls_struct_fields[1] = &ffi_type_double;
- cls_struct_fields[2] = &ffi_type_uint32;
+ cls_struct_fields[2] = &ffi_type_sint;
cls_struct_fields[3] = &ffi_type_float;
cls_struct_fields[4] = NULL;
diff --git a/libffi/testsuite/libffi.call/cls_2byte.c b/libffi/testsuite/libffi.call/cls_2byte.c
index 2c01ee5b340..5b91a09a2cc 100644
--- a/libffi/testsuite/libffi.call/cls_2byte.c
+++ b/libffi/testsuite/libffi.call/cls_2byte.c
@@ -6,7 +6,7 @@
PR: none.
Originator: <andreast@gcc.gnu.org> 20030828 */
-/* { dg-do run { xfail mips64*-*-* } } */
+/* { dg-do run } */
#include "ffitest.h"
typedef struct cls_struct_2byte {
diff --git a/libffi/testsuite/libffi.call/cls_3_1byte.c b/libffi/testsuite/libffi.call/cls_3_1byte.c
index bcb5de761f4..93fe911d2da 100644
--- a/libffi/testsuite/libffi.call/cls_3_1byte.c
+++ b/libffi/testsuite/libffi.call/cls_3_1byte.c
@@ -6,7 +6,7 @@
PR: none.
Originator: <andreast@gcc.gnu.org> 20030902 */
-/* { dg-do run { xfail mips64*-*-* } } */
+/* { dg-do run } */
#include "ffitest.h"
typedef struct cls_struct_3_1byte {
diff --git a/libffi/testsuite/libffi.call/cls_3byte1.c b/libffi/testsuite/libffi.call/cls_3byte1.c
index 53e6b87303b..b7726917094 100644
--- a/libffi/testsuite/libffi.call/cls_3byte1.c
+++ b/libffi/testsuite/libffi.call/cls_3byte1.c
@@ -6,7 +6,7 @@
PR: none.
Originator: <andreast@gcc.gnu.org> 20030828 */
-/* { dg-do run { xfail mips64*-*-* } } */
+/* { dg-do run } */
#include "ffitest.h"
typedef struct cls_struct_3byte {
diff --git a/libffi/testsuite/libffi.call/cls_3byte2.c b/libffi/testsuite/libffi.call/cls_3byte2.c
index f5f2a4fea11..51128cc18ef 100644
--- a/libffi/testsuite/libffi.call/cls_3byte2.c
+++ b/libffi/testsuite/libffi.call/cls_3byte2.c
@@ -6,7 +6,7 @@
PR: none.
Originator: <andreast@gcc.gnu.org> 20030828 */
-/* { dg-do run { xfail mips64*-*-* } } */
+/* { dg-do run } */
#include "ffitest.h"
typedef struct cls_struct_3byte_1 {
diff --git a/libffi/testsuite/libffi.call/cls_4_1byte.c b/libffi/testsuite/libffi.call/cls_4_1byte.c
index 3a3233897dd..a378d194f42 100644
--- a/libffi/testsuite/libffi.call/cls_4_1byte.c
+++ b/libffi/testsuite/libffi.call/cls_4_1byte.c
@@ -6,7 +6,7 @@
PR: none.
Originator: <andreast@gcc.gnu.org> 20030902 */
-/* { dg-do run { xfail mips64*-*-* } } */
+/* { dg-do run } */
#include "ffitest.h"
typedef struct cls_struct_4_1byte {
diff --git a/libffi/testsuite/libffi.call/cls_4byte.c b/libffi/testsuite/libffi.call/cls_4byte.c
index 08321f411cb..b2c951dbeb5 100644
--- a/libffi/testsuite/libffi.call/cls_4byte.c
+++ b/libffi/testsuite/libffi.call/cls_4byte.c
@@ -5,7 +5,7 @@
PR: none.
Originator: <andreast@gcc.gnu.org> 20030828 */
-/* { dg-do run { xfail mips64*-*-* } } */
+/* { dg-do run } */
#include "ffitest.h"
diff --git a/libffi/testsuite/libffi.call/cls_5_1_byte.c b/libffi/testsuite/libffi.call/cls_5_1_byte.c
index d7745d82ebf..40d2e64eec8 100644
--- a/libffi/testsuite/libffi.call/cls_5_1_byte.c
+++ b/libffi/testsuite/libffi.call/cls_5_1_byte.c
@@ -5,7 +5,7 @@
PR: none.
Originator: <andreast@gcc.gnu.org> 20050708 */
-/* { dg-do run { xfail mips64*-*-* } } */
+/* { dg-do run } */
#include "ffitest.h"
typedef struct cls_struct_5byte {
diff --git a/libffi/testsuite/libffi.call/cls_5byte.c b/libffi/testsuite/libffi.call/cls_5byte.c
index adf2a4fe6c8..0307e51f6b9 100644
--- a/libffi/testsuite/libffi.call/cls_5byte.c
+++ b/libffi/testsuite/libffi.call/cls_5byte.c
@@ -5,7 +5,7 @@
PR: none.
Originator: <andreast@gcc.gnu.org> 20030828 */
-/* { dg-do run { xfail mips64*-*-* } } */
+/* { dg-do run } */
#include "ffitest.h"
typedef struct cls_struct_5byte {
diff --git a/libffi/testsuite/libffi.call/cls_64byte.c b/libffi/testsuite/libffi.call/cls_64byte.c
index a6a4f6950c5..1329c6f26ab 100644
--- a/libffi/testsuite/libffi.call/cls_64byte.c
+++ b/libffi/testsuite/libffi.call/cls_64byte.c
@@ -6,7 +6,7 @@
PR: none.
Originator: <andreast@gcc.gnu.org> 20030828 */
-/* { dg-do run { xfail mips64*-*-* } } */
+/* { dg-do run } */
#include "ffitest.h"
typedef struct cls_struct_64byte {
diff --git a/libffi/testsuite/libffi.call/cls_6_1_byte.c b/libffi/testsuite/libffi.call/cls_6_1_byte.c
index dd90ce3163d..7ddb586ea1a 100644
--- a/libffi/testsuite/libffi.call/cls_6_1_byte.c
+++ b/libffi/testsuite/libffi.call/cls_6_1_byte.c
@@ -5,7 +5,7 @@
PR: none.
Originator: <andreast@gcc.gnu.org> 20050708 */
-/* { dg-do run { xfail mips64*-*-* } } */
+/* { dg-do run } */
#include "ffitest.h"
typedef struct cls_struct_6byte {
diff --git a/libffi/testsuite/libffi.call/cls_6byte.c b/libffi/testsuite/libffi.call/cls_6byte.c
index afcb2d217d1..24fd63baa37 100644
--- a/libffi/testsuite/libffi.call/cls_6byte.c
+++ b/libffi/testsuite/libffi.call/cls_6byte.c
@@ -6,7 +6,7 @@
Originator: <andreast@gcc.gnu.org> 20030828 */
-/* { dg-do run { xfail mips64*-*-* } } */
+/* { dg-do run } */
#include "ffitest.h"
typedef struct cls_struct_6byte {
diff --git a/libffi/testsuite/libffi.call/cls_7_1_byte.c b/libffi/testsuite/libffi.call/cls_7_1_byte.c
index 628855e3d53..0cf1371a77a 100644
--- a/libffi/testsuite/libffi.call/cls_7_1_byte.c
+++ b/libffi/testsuite/libffi.call/cls_7_1_byte.c
@@ -5,7 +5,7 @@
PR: none.
Originator: <andreast@gcc.gnu.org> 20050708 */
-/* { dg-do run { xfail mips64*-*-* } } */
+/* { dg-do run } */
#include "ffitest.h"
typedef struct cls_struct_7byte {
diff --git a/libffi/testsuite/libffi.call/cls_7byte.c b/libffi/testsuite/libffi.call/cls_7byte.c
index 11932cb00d7..77858625fa9 100644
--- a/libffi/testsuite/libffi.call/cls_7byte.c
+++ b/libffi/testsuite/libffi.call/cls_7byte.c
@@ -5,7 +5,7 @@
PR: none.
Originator: <andreast@gcc.gnu.org> 20030828 */
-/* { dg-do run { xfail mips64*-*-* } } */
+/* { dg-do run } */
#include "ffitest.h"
typedef struct cls_struct_7byte {
diff --git a/libffi/testsuite/libffi.call/cls_8byte.c b/libffi/testsuite/libffi.call/cls_8byte.c
index 46ef1a73c3b..75326b8f70e 100644
--- a/libffi/testsuite/libffi.call/cls_8byte.c
+++ b/libffi/testsuite/libffi.call/cls_8byte.c
@@ -5,7 +5,7 @@
PR: none.
Originator: <andreast@gcc.gnu.org> 20030828 */
-/* { dg-do run { xfail mips64*-*-* } } */
+/* { dg-do run } */
#include "ffitest.h"
typedef struct cls_struct_8byte {
@@ -66,7 +66,7 @@ int main (void)
struct cls_struct_8byte f_dbl = { 4, 5.0 };
struct cls_struct_8byte res_dbl;
- cls_struct_fields[0] = &ffi_type_uint32;
+ cls_struct_fields[0] = &ffi_type_sint;
cls_struct_fields[1] = &ffi_type_float;
cls_struct_fields[2] = NULL;
diff --git a/libffi/testsuite/libffi.call/cls_9byte1.c b/libffi/testsuite/libffi.call/cls_9byte1.c
index 6070fbe998d..0b3de9daa93 100644
--- a/libffi/testsuite/libffi.call/cls_9byte1.c
+++ b/libffi/testsuite/libffi.call/cls_9byte1.c
@@ -7,7 +7,7 @@
PR: none.
Originator: <andreast@gcc.gnu.org> 20030914 */
-/* { dg-do run { xfail mips64*-*-* } } */
+/* { dg-do run } */
#include "ffitest.h"
typedef struct cls_struct_9byte {
@@ -67,7 +67,7 @@ int main (void)
struct cls_struct_9byte j_dbl = { 1, 9.0};
struct cls_struct_9byte res_dbl;
- cls_struct_fields[0] = &ffi_type_uint32;
+ cls_struct_fields[0] = &ffi_type_sint;
cls_struct_fields[1] = &ffi_type_double;
cls_struct_fields[2] = NULL;
diff --git a/libffi/testsuite/libffi.call/cls_9byte2.c b/libffi/testsuite/libffi.call/cls_9byte2.c
index c4c8935db84..8cafc8af6c8 100644
--- a/libffi/testsuite/libffi.call/cls_9byte2.c
+++ b/libffi/testsuite/libffi.call/cls_9byte2.c
@@ -7,7 +7,7 @@
PR: none.
Originator: <andreast@gcc.gnu.org> 20030914 */
-/* { dg-do run { xfail mips64*-*-* } } */
+/* { dg-do run } */
#include "ffitest.h"
typedef struct cls_struct_9byte {
@@ -68,7 +68,7 @@ int main (void)
struct cls_struct_9byte res_dbl;
cls_struct_fields[0] = &ffi_type_double;
- cls_struct_fields[1] = &ffi_type_uint32;
+ cls_struct_fields[1] = &ffi_type_sint;
cls_struct_fields[2] = NULL;
dbl_arg_types[0] = &cls_struct_type;
diff --git a/libffi/testsuite/libffi.call/cls_align_double.c b/libffi/testsuite/libffi.call/cls_align_double.c
index 478075c6a97..5ba230154a4 100644
--- a/libffi/testsuite/libffi.call/cls_align_double.c
+++ b/libffi/testsuite/libffi.call/cls_align_double.c
@@ -6,7 +6,7 @@
-/* { dg-do run { xfail mips64*-*-* } } */
+/* { dg-do run } */
#include "ffitest.h"
typedef struct cls_struct_align {
diff --git a/libffi/testsuite/libffi.call/cls_align_float.c b/libffi/testsuite/libffi.call/cls_align_float.c
index 9e01af1ad6f..996e1ab965b 100644
--- a/libffi/testsuite/libffi.call/cls_align_float.c
+++ b/libffi/testsuite/libffi.call/cls_align_float.c
@@ -4,7 +4,7 @@
PR: none.
Originator: <hos@tamanegi.org> 20031203 */
-/* { dg-do run { xfail mips64*-*-* } } */
+/* { dg-do run } */
#include "ffitest.h"
typedef struct cls_struct_align {
diff --git a/libffi/testsuite/libffi.call/cls_align_longdouble.c b/libffi/testsuite/libffi.call/cls_align_longdouble.c
index 7057f7bb970..cb603950da8 100644
--- a/libffi/testsuite/libffi.call/cls_align_longdouble.c
+++ b/libffi/testsuite/libffi.call/cls_align_longdouble.c
@@ -4,7 +4,7 @@
PR: none.
Originator: <hos@tamanegi.org> 20031203 */
-/* { dg-do run { xfail mips64*-*-* } } */
+/* { dg-do run } */
#include "ffitest.h"
diff --git a/libffi/testsuite/libffi.call/cls_align_pointer.c b/libffi/testsuite/libffi.call/cls_align_pointer.c
index d3c1926d651..441edcb1027 100644
--- a/libffi/testsuite/libffi.call/cls_align_pointer.c
+++ b/libffi/testsuite/libffi.call/cls_align_pointer.c
@@ -4,7 +4,7 @@
PR: none.
Originator: <hos@tamanegi.org> 20031203 */
-/* { dg-do run { xfail mips64*-*-* } } */
+/* { dg-do run } */
#include "ffitest.h"
typedef struct cls_struct_align {
diff --git a/libffi/testsuite/libffi.call/cls_align_sint16.c b/libffi/testsuite/libffi.call/cls_align_sint16.c
index fe2cb04fd91..fe4fe092215 100644
--- a/libffi/testsuite/libffi.call/cls_align_sint16.c
+++ b/libffi/testsuite/libffi.call/cls_align_sint16.c
@@ -4,7 +4,7 @@
PR: none.
Originator: <hos@tamanegi.org> 20031203 */
-/* { dg-do run { xfail mips64*-*-* } } */
+/* { dg-do run } */
#include "ffitest.h"
typedef struct cls_struct_align {
@@ -68,7 +68,7 @@ int main (void)
struct cls_struct_align res_dbl;
cls_struct_fields[0] = &ffi_type_uchar;
- cls_struct_fields[1] = &ffi_type_sint16;
+ cls_struct_fields[1] = &ffi_type_sshort;
cls_struct_fields[2] = &ffi_type_uchar;
cls_struct_fields[3] = NULL;
diff --git a/libffi/testsuite/libffi.call/cls_align_sint32.c b/libffi/testsuite/libffi.call/cls_align_sint32.c
index a9a17f3eda5..c059da80975 100644
--- a/libffi/testsuite/libffi.call/cls_align_sint32.c
+++ b/libffi/testsuite/libffi.call/cls_align_sint32.c
@@ -4,7 +4,7 @@
PR: none.
Originator: <hos@tamanegi.org> 20031203 */
-/* { dg-do run { xfail mips64*-*-* } } */
+/* { dg-do run } */
#include "ffitest.h"
typedef struct cls_struct_align {
@@ -68,7 +68,7 @@ int main (void)
struct cls_struct_align res_dbl;
cls_struct_fields[0] = &ffi_type_uchar;
- cls_struct_fields[1] = &ffi_type_sint32;
+ cls_struct_fields[1] = &ffi_type_sint;
cls_struct_fields[2] = &ffi_type_uchar;
cls_struct_fields[3] = NULL;
diff --git a/libffi/testsuite/libffi.call/cls_align_sint64.c b/libffi/testsuite/libffi.call/cls_align_sint64.c
index 7dfb469f024..f5e9746cab0 100644
--- a/libffi/testsuite/libffi.call/cls_align_sint64.c
+++ b/libffi/testsuite/libffi.call/cls_align_sint64.c
@@ -4,7 +4,7 @@
PR: none.
Originator: <hos@tamanegi.org> 20031203 */
-/* { dg-do run { xfail mips64*-*-* } } */
+/* { dg-do run } */
#include "ffitest.h"
typedef struct cls_struct_align {
diff --git a/libffi/testsuite/libffi.call/cls_align_uint16.c b/libffi/testsuite/libffi.call/cls_align_uint16.c
index 2e383adf7f7..c861bee344d 100644
--- a/libffi/testsuite/libffi.call/cls_align_uint16.c
+++ b/libffi/testsuite/libffi.call/cls_align_uint16.c
@@ -4,7 +4,7 @@
PR: none.
Originator: <hos@tamanegi.org> 20031203 */
-/* { dg-do run { xfail mips64*-*-* } } */
+/* { dg-do run } */
#include "ffitest.h"
typedef struct cls_struct_align {
@@ -68,7 +68,7 @@ int main (void)
struct cls_struct_align res_dbl;
cls_struct_fields[0] = &ffi_type_uchar;
- cls_struct_fields[1] = &ffi_type_uint16;
+ cls_struct_fields[1] = &ffi_type_ushort;
cls_struct_fields[2] = &ffi_type_uchar;
cls_struct_fields[3] = NULL;
diff --git a/libffi/testsuite/libffi.call/cls_align_uint32.c b/libffi/testsuite/libffi.call/cls_align_uint32.c
index dadb458def4..d680d8a9f8c 100644
--- a/libffi/testsuite/libffi.call/cls_align_uint32.c
+++ b/libffi/testsuite/libffi.call/cls_align_uint32.c
@@ -4,7 +4,7 @@
PR: none.
Originator: <hos@tamanegi.org> 20031203 */
-/* { dg-do run { xfail mips64*-*-* } } */
+/* { dg-do run } */
#include "ffitest.h"
typedef struct cls_struct_align {
@@ -68,7 +68,7 @@ int main (void)
struct cls_struct_align res_dbl;
cls_struct_fields[0] = &ffi_type_uchar;
- cls_struct_fields[1] = &ffi_type_uint32;
+ cls_struct_fields[1] = &ffi_type_uint;
cls_struct_fields[2] = &ffi_type_uchar;
cls_struct_fields[3] = NULL;
diff --git a/libffi/testsuite/libffi.call/cls_align_uint64.c b/libffi/testsuite/libffi.call/cls_align_uint64.c
index b60bcad75f7..0737ba2305b 100644
--- a/libffi/testsuite/libffi.call/cls_align_uint64.c
+++ b/libffi/testsuite/libffi.call/cls_align_uint64.c
@@ -5,7 +5,7 @@
Originator: <hos@tamanegi.org> 20031203 */
-/* { dg-do run { xfail mips64*-*-* } } */
+/* { dg-do run } */
#include "ffitest.h"
typedef struct cls_struct_align {
diff --git a/libffi/testsuite/libffi.call/cls_double.c b/libffi/testsuite/libffi.call/cls_double.c
index 067cb7ac7d7..ee77adde6a0 100644
--- a/libffi/testsuite/libffi.call/cls_double.c
+++ b/libffi/testsuite/libffi.call/cls_double.c
@@ -4,7 +4,7 @@
PR: none.
Originator: <andreast@gcc.gnu.org> 20030828 */
-/* { dg-do run { xfail mips64*-*-* } } */
+/* { dg-do run } */
#include "ffitest.h"
static void cls_ret_double_fn(ffi_cif* cif __UNUSED__, void* resp, void** args,
diff --git a/libffi/testsuite/libffi.call/cls_float.c b/libffi/testsuite/libffi.call/cls_float.c
index 1d5f4db278c..8bed628f823 100644
--- a/libffi/testsuite/libffi.call/cls_float.c
+++ b/libffi/testsuite/libffi.call/cls_float.c
@@ -4,7 +4,7 @@
PR: none.
Originator: <andreast@gcc.gnu.org> 20030828 */
-/* { dg-do run { xfail mips64*-*-* } } */
+/* { dg-do run } */
#include "ffitest.h"
static void cls_ret_float_fn(ffi_cif* cif __UNUSED__, void* resp, void** args,
diff --git a/libffi/testsuite/libffi.call/cls_multi_schar.c b/libffi/testsuite/libffi.call/cls_multi_schar.c
index 56e3f1c729c..713c3188d81 100644
--- a/libffi/testsuite/libffi.call/cls_multi_schar.c
+++ b/libffi/testsuite/libffi.call/cls_multi_schar.c
@@ -4,7 +4,7 @@
PR: PR13221.
Originator: <hos@tamanegi.org> 20031129 */
-/* { dg-do run { xfail mips64*-*-* } } */
+/* { dg-do run } */
#include "ffitest.h"
signed char test_func_fn(signed char a1, signed char a2)
diff --git a/libffi/testsuite/libffi.call/cls_multi_sshort.c b/libffi/testsuite/libffi.call/cls_multi_sshort.c
index 662d48b3ed5..852fdf73db7 100644
--- a/libffi/testsuite/libffi.call/cls_multi_sshort.c
+++ b/libffi/testsuite/libffi.call/cls_multi_sshort.c
@@ -4,7 +4,7 @@
PR: PR13221.
Originator: <andreast@gcc.gnu.org> 20031129 */
-/* { dg-do run { xfail mips64*-*-* } } */
+/* { dg-do run } */
#include "ffitest.h"
signed short test_func_fn(signed short a1, signed short a2)
diff --git a/libffi/testsuite/libffi.call/cls_multi_sshortchar.c b/libffi/testsuite/libffi.call/cls_multi_sshortchar.c
index 1d60833fc8f..e4e92ef4480 100644
--- a/libffi/testsuite/libffi.call/cls_multi_sshortchar.c
+++ b/libffi/testsuite/libffi.call/cls_multi_sshortchar.c
@@ -4,7 +4,7 @@
PR: PR13221.
Originator: <andreast@gcc.gnu.org> 20031129 */
-/* { dg-do run { xfail mips64*-*-* } } */
+/* { dg-do run } */
#include "ffitest.h"
signed short test_func_fn(signed char a1, signed short a2,
diff --git a/libffi/testsuite/libffi.call/cls_multi_uchar.c b/libffi/testsuite/libffi.call/cls_multi_uchar.c
index 734fb7b6aa3..2c84aef6134 100644
--- a/libffi/testsuite/libffi.call/cls_multi_uchar.c
+++ b/libffi/testsuite/libffi.call/cls_multi_uchar.c
@@ -4,7 +4,7 @@
PR: PR13221.
Originator: <andreast@gcc.gnu.org> 20031129 */
-/* { dg-do run { xfail mips64*-*-* } } */
+/* { dg-do run } */
#include "ffitest.h"
unsigned char test_func_fn(unsigned char a1, unsigned char a2,
diff --git a/libffi/testsuite/libffi.call/cls_multi_ushort.c b/libffi/testsuite/libffi.call/cls_multi_ushort.c
index 8a2237ac25a..215fef832a8 100644
--- a/libffi/testsuite/libffi.call/cls_multi_ushort.c
+++ b/libffi/testsuite/libffi.call/cls_multi_ushort.c
@@ -4,7 +4,7 @@
PR: PR13221.
Originator: <andreast@gcc.gnu.org> 20031129 */
-/* { dg-do run { xfail mips64*-*-* } } */
+/* { dg-do run } */
#include "ffitest.h"
unsigned short test_func_fn(unsigned short a1, unsigned short a2)
diff --git a/libffi/testsuite/libffi.call/cls_multi_ushortchar.c b/libffi/testsuite/libffi.call/cls_multi_ushortchar.c
index 953fac4b5cf..1cde84abb5e 100644
--- a/libffi/testsuite/libffi.call/cls_multi_ushortchar.c
+++ b/libffi/testsuite/libffi.call/cls_multi_ushortchar.c
@@ -4,7 +4,7 @@
PR: PR13221.
Originator: <andreast@gcc.gnu.org> 20031129 */
-/* { dg-do run { xfail mips64*-*-* } } */
+/* { dg-do run } */
#include "ffitest.h"
unsigned short test_func_fn(unsigned char a1, unsigned short a2,
diff --git a/libffi/testsuite/libffi.call/cls_schar.c b/libffi/testsuite/libffi.call/cls_schar.c
index 2b9af7a6293..bb1f2c64f35 100644
--- a/libffi/testsuite/libffi.call/cls_schar.c
+++ b/libffi/testsuite/libffi.call/cls_schar.c
@@ -6,7 +6,7 @@
-/* { dg-do run { xfail mips64*-*-* } } */
+/* { dg-do run } */
#include "ffitest.h"
static void cls_ret_schar_fn(ffi_cif* cif __UNUSED__, void* resp, void** args,
diff --git a/libffi/testsuite/libffi.call/cls_sint.c b/libffi/testsuite/libffi.call/cls_sint.c
index 35e5012c020..cf21bf84417 100644
--- a/libffi/testsuite/libffi.call/cls_sint.c
+++ b/libffi/testsuite/libffi.call/cls_sint.c
@@ -4,7 +4,7 @@
PR: none.
Originator: <andreast@gcc.gnu.org> 20031108 */
-/* { dg-do run { xfail mips64*-*-* } } */
+/* { dg-do run } */
#include "ffitest.h"
static void cls_ret_sint_fn(ffi_cif* cif __UNUSED__, void* resp, void** args,
@@ -32,12 +32,12 @@ int main (void)
pcl = &cl;
#endif
- cl_arg_types[0] = &ffi_type_sint32;
+ cl_arg_types[0] = &ffi_type_sint;
cl_arg_types[1] = NULL;
/* Initialize the cif */
CHECK(ffi_prep_cif(&cif, FFI_DEFAULT_ABI, 1,
- &ffi_type_sint32, cl_arg_types) == FFI_OK);
+ &ffi_type_sint, cl_arg_types) == FFI_OK);
CHECK(ffi_prep_closure(pcl, &cif, cls_ret_sint_fn, NULL) == FFI_OK);
diff --git a/libffi/testsuite/libffi.call/cls_sshort.c b/libffi/testsuite/libffi.call/cls_sshort.c
index 81c8b95b0ee..8d63413318d 100644
--- a/libffi/testsuite/libffi.call/cls_sshort.c
+++ b/libffi/testsuite/libffi.call/cls_sshort.c
@@ -4,7 +4,7 @@
PR: none.
Originator: <andreast@gcc.gnu.org> 20031108 */
-/* { dg-do run { xfail mips64*-*-* } } */
+/* { dg-do run } */
#include "ffitest.h"
static void cls_ret_sshort_fn(ffi_cif* cif __UNUSED__, void* resp, void** args,
@@ -32,12 +32,12 @@ int main (void)
pcl = &cl;
#endif
- cl_arg_types[0] = &ffi_type_sint16;
+ cl_arg_types[0] = &ffi_type_sshort;
cl_arg_types[1] = NULL;
/* Initialize the cif */
CHECK(ffi_prep_cif(&cif, FFI_DEFAULT_ABI, 1,
- &ffi_type_sint16, cl_arg_types) == FFI_OK);
+ &ffi_type_sshort, cl_arg_types) == FFI_OK);
CHECK(ffi_prep_closure(pcl, &cif, cls_ret_sshort_fn, NULL) == FFI_OK);
diff --git a/libffi/testsuite/libffi.call/cls_uchar.c b/libffi/testsuite/libffi.call/cls_uchar.c
index f16d79e651b..ea78ce5840a 100644
--- a/libffi/testsuite/libffi.call/cls_uchar.c
+++ b/libffi/testsuite/libffi.call/cls_uchar.c
@@ -4,7 +4,7 @@
PR: none.
Originator: <andreast@gcc.gnu.org> 20030828 */
-/* { dg-do run { xfail mips64*-*-* } } */
+/* { dg-do run } */
#include "ffitest.h"
static void cls_ret_uchar_fn(ffi_cif* cif __UNUSED__, void* resp, void** args,
diff --git a/libffi/testsuite/libffi.call/cls_uint.c b/libffi/testsuite/libffi.call/cls_uint.c
index 0f8189c1085..e31e41aacf2 100644
--- a/libffi/testsuite/libffi.call/cls_uint.c
+++ b/libffi/testsuite/libffi.call/cls_uint.c
@@ -4,7 +4,7 @@
PR: none.
Originator: <andreast@gcc.gnu.org> 20030828 */
-/* { dg-do run { xfail mips64*-*-* } } */
+/* { dg-do run } */
#include "ffitest.h"
static void cls_ret_uint_fn(ffi_cif* cif __UNUSED__, void* resp, void** args,
@@ -33,12 +33,12 @@ int main (void)
pcl = &cl;
#endif
- cl_arg_types[0] = &ffi_type_uint32;
+ cl_arg_types[0] = &ffi_type_uint;
cl_arg_types[1] = NULL;
/* Initialize the cif */
CHECK(ffi_prep_cif(&cif, FFI_DEFAULT_ABI, 1,
- &ffi_type_uint32, cl_arg_types) == FFI_OK);
+ &ffi_type_uint, cl_arg_types) == FFI_OK);
CHECK(ffi_prep_closure(pcl, &cif, cls_ret_uint_fn, NULL) == FFI_OK);
diff --git a/libffi/testsuite/libffi.call/cls_ulonglong.c b/libffi/testsuite/libffi.call/cls_ulonglong.c
index 0a9588ab035..1cc0a389332 100644
--- a/libffi/testsuite/libffi.call/cls_ulonglong.c
+++ b/libffi/testsuite/libffi.call/cls_ulonglong.c
@@ -4,7 +4,7 @@
PR: none.
Originator: <andreast@gcc.gnu.org> 20030828 */
-/* { dg-do run { xfail mips64*-*-* } } */
+/* { dg-do run } */
#include "ffitest.h"
static void cls_ret_ulonglong_fn(ffi_cif* cif __UNUSED__, void* resp,
diff --git a/libffi/testsuite/libffi.call/cls_ushort.c b/libffi/testsuite/libffi.call/cls_ushort.c
index b5f16c8973c..81f984862a3 100644
--- a/libffi/testsuite/libffi.call/cls_ushort.c
+++ b/libffi/testsuite/libffi.call/cls_ushort.c
@@ -4,7 +4,7 @@
PR: none.
Originator: <andreast@gcc.gnu.org> 20030828 */
-/* { dg-do run { xfail mips64*-*-* } } */
+/* { dg-do run } */
#include "ffitest.h"
static void cls_ret_ushort_fn(ffi_cif* cif __UNUSED__, void* resp, void** args,
diff --git a/libffi/testsuite/libffi.call/ffitest.h b/libffi/testsuite/libffi.call/ffitest.h
index 42fce0489f1..e73f758f586 100644
--- a/libffi/testsuite/libffi.call/ffitest.h
+++ b/libffi/testsuite/libffi.call/ffitest.h
@@ -9,17 +9,6 @@
#define CHECK(x) !(x) ? abort() : 0
-/* Define our own long for easier handling on multilib targets. */
-#if LONG_MAX == 2147483647
-#define ffi_type_mylong ffi_type_uint32
-#else
-#if LONG_MAX == 9223372036854775807
-#define ffi_type_mylong ffi_type_uint64
-#else
-#error "Error, size LONG not defined as expected"
-#endif
-#endif
-
/* Define __UNUSED__ that also other compilers than gcc can run the tests. */
#undef __UNUSED__
#if defined(__GNUC__)
diff --git a/libffi/testsuite/libffi.call/nested_struct.c b/libffi/testsuite/libffi.call/nested_struct.c
index 6a9b7c78d8a..adce7ba434f 100644
--- a/libffi/testsuite/libffi.call/nested_struct.c
+++ b/libffi/testsuite/libffi.call/nested_struct.c
@@ -5,7 +5,7 @@
PR: none.
Originator: <andreast@gcc.gnu.org> 20030828 */
-/* { dg-do run { xfail mips64*-*-* } } */
+/* { dg-do run } */
#include "ffitest.h"
typedef struct cls_struct_16byte1 {
@@ -108,10 +108,10 @@ int main (void)
cls_struct_fields[0] = &ffi_type_double;
cls_struct_fields[1] = &ffi_type_float;
- cls_struct_fields[2] = &ffi_type_uint32;
+ cls_struct_fields[2] = &ffi_type_sint;
cls_struct_fields[3] = NULL;
- cls_struct_fields1[0] = &ffi_type_uint32;
+ cls_struct_fields1[0] = &ffi_type_sint;
cls_struct_fields1[1] = &ffi_type_double;
cls_struct_fields1[2] = &ffi_type_float;
cls_struct_fields1[3] = NULL;
diff --git a/libffi/testsuite/libffi.call/nested_struct1.c b/libffi/testsuite/libffi.call/nested_struct1.c
index 835e978ad52..f7fe72e5902 100644
--- a/libffi/testsuite/libffi.call/nested_struct1.c
+++ b/libffi/testsuite/libffi.call/nested_struct1.c
@@ -5,7 +5,7 @@
PR: none.
Originator: <andreast@gcc.gnu.org> 20030828 */
-/* { dg-do run { xfail mips64*-*-* } } */
+/* { dg-do run } */
#include "ffitest.h"
typedef struct cls_struct_16byte1 {
@@ -113,10 +113,10 @@ int main (void)
cls_struct_fields[0] = &ffi_type_double;
cls_struct_fields[1] = &ffi_type_float;
- cls_struct_fields[2] = &ffi_type_uint32;
+ cls_struct_fields[2] = &ffi_type_sint;
cls_struct_fields[3] = NULL;
- cls_struct_fields1[0] = &ffi_type_uint32;
+ cls_struct_fields1[0] = &ffi_type_sint;
cls_struct_fields1[1] = &ffi_type_double;
cls_struct_fields1[2] = &ffi_type_float;
cls_struct_fields1[3] = NULL;
diff --git a/libffi/testsuite/libffi.call/nested_struct10.c b/libffi/testsuite/libffi.call/nested_struct10.c
index 9faf9bf6543..8d9aba2acdc 100644
--- a/libffi/testsuite/libffi.call/nested_struct10.c
+++ b/libffi/testsuite/libffi.call/nested_struct10.c
@@ -6,7 +6,7 @@
PR: none.
Originator: <andreast@gcc.gnu.org> 20051010 */
-/* { dg-do run { xfail mips64*-*-* } } */
+/* { dg-do run } */
#include "ffitest.h"
typedef struct A {
@@ -102,7 +102,7 @@ int main (void)
cls_struct_fields1[0] = &ffi_type_uchar;
cls_struct_fields1[1] = &cls_struct_type;
- cls_struct_fields1[2] = &ffi_type_uint32;
+ cls_struct_fields1[2] = &ffi_type_uint;
cls_struct_fields1[3] = NULL;
cls_struct_fields2[0] = &ffi_type_uint64;
diff --git a/libffi/testsuite/libffi.call/nested_struct2.c b/libffi/testsuite/libffi.call/nested_struct2.c
index 933d3bbad35..821fcc40f6b 100644
--- a/libffi/testsuite/libffi.call/nested_struct2.c
+++ b/libffi/testsuite/libffi.call/nested_struct2.c
@@ -6,7 +6,7 @@
PR: none.
Originator: <andreast@gcc.gnu.org> 20030911 */
-/* { dg-do run { xfail mips64*-*-* } } */
+/* { dg-do run } */
#include "ffitest.h"
typedef struct A {
@@ -80,7 +80,7 @@ int main (void)
struct B res_dbl;
- cls_struct_fields[0] = &ffi_type_mylong;
+ cls_struct_fields[0] = &ffi_type_ulong;
cls_struct_fields[1] = &ffi_type_uchar;
cls_struct_fields[2] = NULL;
diff --git a/libffi/testsuite/libffi.call/nested_struct3.c b/libffi/testsuite/libffi.call/nested_struct3.c
index 48e27d2610c..f11aff49b94 100644
--- a/libffi/testsuite/libffi.call/nested_struct3.c
+++ b/libffi/testsuite/libffi.call/nested_struct3.c
@@ -6,7 +6,7 @@
PR: none.
Originator: <andreast@gcc.gnu.org> 20030911 */
-/* { dg-do run { xfail mips64*-*-* } } */
+/* { dg-do run } */
#include "ffitest.h"
typedef struct A {
diff --git a/libffi/testsuite/libffi.call/nested_struct4.c b/libffi/testsuite/libffi.call/nested_struct4.c
index add6eac5c1c..0553ce88166 100644
--- a/libffi/testsuite/libffi.call/nested_struct4.c
+++ b/libffi/testsuite/libffi.call/nested_struct4.c
@@ -6,7 +6,7 @@
PR: PR 25630.
Originator: <andreast@gcc.gnu.org> 20051010 */
-/* { dg-do run { xfail mips64*-*-* } } */
+/* { dg-do run } */
#include "ffitest.h"
typedef struct A {
diff --git a/libffi/testsuite/libffi.call/nested_struct5.c b/libffi/testsuite/libffi.call/nested_struct5.c
index f9e982bbfb7..a77931b59b8 100644
--- a/libffi/testsuite/libffi.call/nested_struct5.c
+++ b/libffi/testsuite/libffi.call/nested_struct5.c
@@ -6,7 +6,7 @@
PR: none.
Originator: <andreast@gcc.gnu.org> 20051010 */
-/* { dg-do run { xfail mips64*-*-* } } */
+/* { dg-do run } */
#include "ffitest.h"
typedef struct A {
diff --git a/libffi/testsuite/libffi.call/nested_struct6.c b/libffi/testsuite/libffi.call/nested_struct6.c
index 059389b3d0a..af2821c769f 100644
--- a/libffi/testsuite/libffi.call/nested_struct6.c
+++ b/libffi/testsuite/libffi.call/nested_struct6.c
@@ -6,7 +6,7 @@
PR: PR 25630.
Originator: <andreast@gcc.gnu.org> 20051010 */
-/* { dg-do run { xfail mips64*-*-* } } */
+/* { dg-do run } */
#include "ffitest.h"
typedef struct A {
@@ -103,7 +103,7 @@ int main (void)
cls_struct_fields1[1] = &ffi_type_uchar;
cls_struct_fields1[2] = NULL;
- cls_struct_fields2[0] = &ffi_type_mylong;
+ cls_struct_fields2[0] = &ffi_type_slong;
cls_struct_fields2[1] = &ffi_type_uchar;
cls_struct_fields2[2] = NULL;
diff --git a/libffi/testsuite/libffi.call/nested_struct7.c b/libffi/testsuite/libffi.call/nested_struct7.c
index 220c651ea0d..c7dd4f7347e 100644
--- a/libffi/testsuite/libffi.call/nested_struct7.c
+++ b/libffi/testsuite/libffi.call/nested_struct7.c
@@ -6,7 +6,7 @@
PR: none.
Originator: <andreast@gcc.gnu.org> 20051010 */
-/* { dg-do run { xfail mips64*-*-* } } */
+/* { dg-do run } */
#include "ffitest.h"
typedef struct A {
diff --git a/libffi/testsuite/libffi.call/nested_struct8.c b/libffi/testsuite/libffi.call/nested_struct8.c
index 2b72a6c43d8..775ff70fdaf 100644
--- a/libffi/testsuite/libffi.call/nested_struct8.c
+++ b/libffi/testsuite/libffi.call/nested_struct8.c
@@ -6,7 +6,7 @@
PR: none.
Originator: <andreast@gcc.gnu.org> 20051010 */
-/* { dg-do run { xfail mips64*-*-* } } */
+/* { dg-do run } */
#include "ffitest.h"
typedef struct A {
diff --git a/libffi/testsuite/libffi.call/nested_struct9.c b/libffi/testsuite/libffi.call/nested_struct9.c
index b936d16d1e4..70332de890b 100644
--- a/libffi/testsuite/libffi.call/nested_struct9.c
+++ b/libffi/testsuite/libffi.call/nested_struct9.c
@@ -6,7 +6,7 @@
PR: none.
Originator: <andreast@gcc.gnu.org> 20051010 */
-/* { dg-do run { xfail mips64*-*-* } } */
+/* { dg-do run } */
#include "ffitest.h"
typedef struct A {
@@ -103,7 +103,7 @@ int main (void)
cls_struct_fields1[1] = &ffi_type_uchar;
cls_struct_fields1[2] = NULL;
- cls_struct_fields2[0] = &ffi_type_mylong;
+ cls_struct_fields2[0] = &ffi_type_ulong;
cls_struct_fields2[1] = &ffi_type_uchar;
cls_struct_fields2[2] = NULL;
diff --git a/libffi/testsuite/libffi.call/problem1.c b/libffi/testsuite/libffi.call/problem1.c
index 6a5c8ab3181..ca70cc8d773 100644
--- a/libffi/testsuite/libffi.call/problem1.c
+++ b/libffi/testsuite/libffi.call/problem1.c
@@ -4,7 +4,7 @@
PR: none.
Originator: <andreast@gcc.gnu.org> 20030828 */
-/* { dg-do run { xfail mips64*-*-* } } */
+/* { dg-do run } */
#include "ffitest.h"
typedef struct my_ffi_struct {
diff --git a/libffi/testsuite/libffi.call/return_dbl1.c b/libffi/testsuite/libffi.call/return_dbl1.c
index a6c1cfca2da..0ea5d50551a 100644
--- a/libffi/testsuite/libffi.call/return_dbl1.c
+++ b/libffi/testsuite/libffi.call/return_dbl1.c
@@ -21,7 +21,7 @@ int main (void)
unsigned int in3;
args[0] = &ffi_type_double;
args[1] = &ffi_type_float;
- args[2] = &ffi_type_uint32;
+ args[2] = &ffi_type_uint;
args[3] = &ffi_type_double;
values[0] = &dbl1;
values[1] = &fl2;
diff --git a/libffi/testsuite/libffi.call/return_dbl2.c b/libffi/testsuite/libffi.call/return_dbl2.c
index 51af3bad8ca..b3818f866b5 100644
--- a/libffi/testsuite/libffi.call/return_dbl2.c
+++ b/libffi/testsuite/libffi.call/return_dbl2.c
@@ -20,7 +20,7 @@ int main (void)
unsigned int in3;
args[0] = &ffi_type_double;
args[1] = &ffi_type_double;
- args[2] = &ffi_type_uint32;
+ args[2] = &ffi_type_uint;
args[3] = &ffi_type_double;
values[0] = &dbl1;
values[1] = &dbl2;
diff --git a/libffi/testsuite/libffi.call/return_fl3.c b/libffi/testsuite/libffi.call/return_fl3.c
index c3d2f120380..c37877b18ec 100644
--- a/libffi/testsuite/libffi.call/return_fl3.c
+++ b/libffi/testsuite/libffi.call/return_fl3.c
@@ -20,7 +20,7 @@ int main (void)
unsigned int in3;
args[0] = &ffi_type_float;
args[1] = &ffi_type_float;
- args[2] = &ffi_type_uint32;
+ args[2] = &ffi_type_uint;
args[3] = &ffi_type_float;
values[0] = &fl1;
values[1] = &fl2;
diff --git a/libffi/testsuite/libffi.call/return_ldl.c b/libffi/testsuite/libffi.call/return_ldl.c
new file mode 100644
index 00000000000..413bf94a67d
--- /dev/null
+++ b/libffi/testsuite/libffi.call/return_ldl.c
@@ -0,0 +1,34 @@
+/* Area: ffi_call
+ Purpose: Check return value long double.
+ Limitations: none.
+ PR: none.
+ Originator: <andreast@gcc.gnu.org> 20071113 */
+
+/* { dg-do run } */
+#include "ffitest.h"
+
+static long double return_ldl(long double ldl)
+{
+ return 2*ldl;
+}
+int main (void)
+{
+ ffi_cif cif;
+ ffi_type *args[MAX_ARGS];
+ void *values[MAX_ARGS];
+ long double ldl, rldl;
+
+ args[0] = &ffi_type_longdouble;
+ values[0] = &ldl;
+
+ /* Initialize the cif */
+ CHECK(ffi_prep_cif(&cif, FFI_DEFAULT_ABI, 1,
+ &ffi_type_longdouble, args) == FFI_OK);
+
+ for (ldl = -127.0; ldl < 127.0; ldl++)
+ {
+ ffi_call(&cif, FFI_FN(return_ldl), &rldl, values);
+ CHECK(rldl == 2 * ldl);
+ }
+ exit(0);
+}
diff --git a/libffi/testsuite/libffi.call/return_ll1.c b/libffi/testsuite/libffi.call/return_ll1.c
index 32fdfa122ff..5681d84b407 100644
--- a/libffi/testsuite/libffi.call/return_ll1.c
+++ b/libffi/testsuite/libffi.call/return_ll1.c
@@ -20,9 +20,9 @@ int main (void)
long long ll1;
unsigned ll0, ll2;
- args[0] = &ffi_type_uint32;
+ args[0] = &ffi_type_sint;
args[1] = &ffi_type_sint64;
- args[2] = &ffi_type_uint32;
+ args[2] = &ffi_type_sint;
values[0] = &ll0;
values[1] = &ll1;
values[2] = &ll2;
diff --git a/libffi/testsuite/libffi.call/return_sc.c b/libffi/testsuite/libffi.call/return_sc.c
index ddb26778695..19608ee7c8b 100644
--- a/libffi/testsuite/libffi.call/return_sc.c
+++ b/libffi/testsuite/libffi.call/return_sc.c
@@ -30,7 +30,7 @@ int main (void)
sc < (signed char) 127; sc++)
{
ffi_call(&cif, FFI_FN(return_sc), &rint, values);
- CHECK((signed char) rint == sc);
+ CHECK(rint == (ffi_arg) sc);
}
exit(0);
}
diff --git a/libffi/testsuite/libffi.call/return_sl.c b/libffi/testsuite/libffi.call/return_sl.c
new file mode 100644
index 00000000000..f0fd345f7a8
--- /dev/null
+++ b/libffi/testsuite/libffi.call/return_sl.c
@@ -0,0 +1,38 @@
+/* Area: ffi_call
+ Purpose: Check if long as return type is handled correctly.
+ Limitations: none.
+ PR: none.
+ */
+
+/* { dg-do run } */
+#include "ffitest.h"
+static long return_sl(long l1, long l2)
+{
+ return l1 - l2;
+}
+
+int main (void)
+{
+ ffi_cif cif;
+ ffi_type *args[MAX_ARGS];
+ void *values[MAX_ARGS];
+ ffi_arg res;
+ unsigned long l1, l2;
+
+ args[0] = &ffi_type_slong;
+ args[1] = &ffi_type_slong;
+ values[0] = &l1;
+ values[1] = &l2;
+
+ CHECK(ffi_prep_cif(&cif, FFI_DEFAULT_ABI, 2,
+ &ffi_type_slong, args) == FFI_OK);
+
+ l1 = 1073741823L;
+ l2 = 1073741824L;
+
+ ffi_call(&cif, FFI_FN(return_sl), &res, values);
+ printf("res: %ld, %ld\n", (long)res, l1 - l2);
+ /* { dg-output "res: -1, -1" } */
+
+ exit(0);
+}
diff --git a/libffi/testsuite/libffi.call/return_ul.c b/libffi/testsuite/libffi.call/return_ul.c
index 25102240bc8..12b266f0373 100644
--- a/libffi/testsuite/libffi.call/return_ul.c
+++ b/libffi/testsuite/libffi.call/return_ul.c
@@ -16,7 +16,7 @@ int main (void)
ffi_cif cif;
ffi_type *args[MAX_ARGS];
void *values[MAX_ARGS];
- unsigned long res;
+ ffi_arg res;
unsigned long ul1, ul2;
args[0] = &ffi_type_ulong;
@@ -31,7 +31,7 @@ int main (void)
ul2 = 1073741824L;
ffi_call(&cif, FFI_FN(return_ul), &res, values);
- printf("res: %ld, %ld\n", res, ul1 + ul2);
+ printf("res: %lu, %lu\n", (unsigned long)res, ul1 + ul2);
/* { dg-output "res: 2147483647, 2147483647" } */
exit(0);