public inbox for java-patches@gcc.gnu.org
 help / color / mirror / Atom feed
* [RFT] libffi testsuite cleanup warnings
@ 2006-02-25 22:22 Andreas Tobler
  2006-02-27 12:30 ` Rainer Orth
  0 siblings, 1 reply; 5+ messages in thread
From: Andreas Tobler @ 2006-02-25 22:22 UTC (permalink / raw)
  To: GCC Patches, Java Patches

[-- Attachment #1: Type: text/plain, Size: 4061 bytes --]

Hello all,

even if I am the libffi testsuite maintainer I'd like to ask for test, 
comments. I do mistakes like other do.

I will add a -W -Wall to the testsuite and I have quite a few warnings 
that I have had to cleanup.

I tested the attached patch on darwin-ppc, linux-pcc, sparc64-freebsd 
and sun-sparc-solaris8 (32 and 64-bit)

I appreciate any comments.

If no comments come in, I'll commit the patch within 2 days (on monday, 
the 27th of feb)

Thanks,
Andreas

2006-02-25  Andreas Tobler  <a.tobler@schweiz.ch>

	* testsuite/libffi.call/closure_fn0.c: Clean up warnings discovered by
	-W -Wall.
	* testsuite/libffi.call/closure_fn1.c: Likewise.
	* testsuite/libffi.call/closure_fn2.c: Likewise.
	* testsuite/libffi.call/closure_fn3.c: Likewise.
	* testsuite/libffi.call/closure_fn4.c: Likewise.
	* testsuite/libffi.call/closure_fn5.c: Likewise.
	* testsuite/libffi.call/closure_fn6.c: Likewise.
	* testsuite/libffi.call/cls_12byte.c: Likewise.
	* testsuite/libffi.call/cls_16byte.c: Likewise.
	* testsuite/libffi.call/cls_18byte.c: Likewise.
	* testsuite/libffi.call/cls_19byte.c: Likewise.
	* testsuite/libffi.call/cls_1_1byte.c: Likewise.
	* testsuite/libffi.call/cls_20byte.c: Likewise.
	* testsuite/libffi.call/cls_20byte1.c: Likewise.
	* testsuite/libffi.call/cls_24byte.c: Likewise.
	* testsuite/libffi.call/cls_2byte.c: Likewise.
	* testsuite/libffi.call/cls_3_1byte.c: Likewise.
	* testsuite/libffi.call/cls_3byte1.c: Likewise.
	* testsuite/libffi.call/cls_3byte2.c: Likewise.
	* testsuite/libffi.call/cls_4_1byte.c: Likewise.
	* testsuite/libffi.call/cls_4byte.c: Likewise.
	* testsuite/libffi.call/cls_5_1_byte.c: Likewise.
	* testsuite/libffi.call/cls_5byte.c: Likewise.
	* testsuite/libffi.call/cls_64byte.c: Likewise.
	* testsuite/libffi.call/cls_6_1_byte.c: Likewise.
	* testsuite/libffi.call/cls_6byte.c: Likewise.
	* testsuite/libffi.call/cls_7_1_byte.c: Likewise.
	* testsuite/libffi.call/cls_7byte.c: Likewise.
	* testsuite/libffi.call/cls_8byte.c: Likewise.
	* testsuite/libffi.call/cls_9byte1.c: Likewise.
	* testsuite/libffi.call/cls_9byte2.c: Likewise.
	* testsuite/libffi.call/cls_align_double.c: Likewise.
	* testsuite/libffi.call/cls_align_float.c: Likewise.
	* testsuite/libffi.call/cls_align_longdouble.c: Likewise.
	* testsuite/libffi.call/cls_align_pointer.c: Likewise.
	* testsuite/libffi.call/cls_align_sint16.c: Likewise.
	* testsuite/libffi.call/cls_align_sint32.c: Likewise.
	* testsuite/libffi.call/cls_align_sint64.c: Likewise.
	* testsuite/libffi.call/cls_align_uint16.c: Likewise.
	* testsuite/libffi.call/cls_align_uint32.c: Likewise.
	* testsuite/libffi.call/cls_align_uint64.c: Likewise.
	* testsuite/libffi.call/cls_double.c: Likewise.
	* testsuite/libffi.call/cls_float.c: Likewise.
	* testsuite/libffi.call/cls_multi_schar.c: Likewise.
	* testsuite/libffi.call/cls_multi_sshort.c: Likewise.
	* testsuite/libffi.call/cls_multi_sshortchar.c: Likewise.
	* testsuite/libffi.call/cls_multi_uchar.c: Likewise.
	* testsuite/libffi.call/cls_multi_ushort.c: Likewise.
	* testsuite/libffi.call/cls_multi_ushortchar.c: Likewise.
	* testsuite/libffi.call/cls_schar.c: Likewise.
	* testsuite/libffi.call/cls_sint.c: Likewise.
	* testsuite/libffi.call/cls_sshort.c: Likewise.
	* testsuite/libffi.call/cls_uchar.c: Likewise.
	* testsuite/libffi.call/cls_uint.c: Likewise.
	* testsuite/libffi.call/cls_ulonglong.c: Likewise.
	* testsuite/libffi.call/cls_ushort.c: Likewise.
	* testsuite/libffi.call/float.c: Likewise.
	* testsuite/libffi.call/float1.c: Likewise.
	* testsuite/libffi.call/negint.c: Likewise.
	* testsuite/libffi.call/nested_struct.c: Likewise.
	* testsuite/libffi.call/nested_struct1.c: Likewise.
	* testsuite/libffi.call/nested_struct2.c: Likewise.
	* testsuite/libffi.call/nested_struct3.c: Likewise.
	* testsuite/libffi.call/nested_struct4.c: Likewise.
	* testsuite/libffi.call/nested_struct6.c: Likewise.
	* testsuite/libffi.call/problem1.c: Likewise.
	* testsuite/libffi.call/pyobjc-tc.c: Likewise.
	* testsuite/libffi.call/return_fl2.c: Likewise.
	* testsuite/libffi.special/unwindtest.cc: Likewise.

[-- Attachment #2: ffi_test_warn2.diff --]
[-- Type: text/plain, Size: 44745 bytes --]

Index: testsuite/libffi.call/closure_fn0.c
===================================================================
--- testsuite/libffi.call/closure_fn0.c	(revision 111437)
+++ testsuite/libffi.call/closure_fn0.c	(working copy)
@@ -10,7 +10,8 @@
 #include "ffitest.h"
 
 static void
-closure_test_fn0(ffi_cif* cif,void* resp,void** args, void* userdata)
+closure_test_fn0(ffi_cif* cif __attribute__ ((unused)), void* resp, void** args,
+		 void* userdata)
 {
   *(ffi_arg*)resp =
     (int)*(unsigned long long *)args[0] + (int)(*(int *)args[1]) +
Index: testsuite/libffi.call/closure_fn1.c
===================================================================
--- testsuite/libffi.call/closure_fn1.c	(revision 111437)
+++ testsuite/libffi.call/closure_fn1.c	(working copy)
@@ -10,8 +10,8 @@
 #include "ffitest.h"
 
 
-static void closure_test_fn1(ffi_cif* cif,void* resp,void** args,
-			     void* userdata)
+static void closure_test_fn1(ffi_cif* cif __attribute__ ((unused)), void* resp,
+			     void** args, void* userdata)
 {
   *(ffi_arg*)resp =
     (int)*(float *)args[0] +(int)(*(float *)args[1]) +
Index: testsuite/libffi.call/closure_fn2.c
===================================================================
--- testsuite/libffi.call/closure_fn2.c	(revision 111437)
+++ testsuite/libffi.call/closure_fn2.c	(working copy)
@@ -9,8 +9,8 @@
 /* { dg-do run { xfail mips64*-*-* arm*-*-* strongarm*-*-* xscale*-*-* } } */
 #include "ffitest.h"
 
-static void closure_test_fn2(ffi_cif* cif,void* resp,void** args,
-			     void* userdata)
+static void closure_test_fn2(ffi_cif* cif __attribute__ ((unused)), void* resp,
+			     void** args, void* userdata)
 {
   *(ffi_arg*)resp =
     (int)*(double *)args[0] +(int)(*(double *)args[1]) +
Index: testsuite/libffi.call/closure_fn3.c
===================================================================
--- testsuite/libffi.call/closure_fn3.c	(revision 111437)
+++ testsuite/libffi.call/closure_fn3.c	(working copy)
@@ -9,8 +9,8 @@
 /* { dg-do run { xfail mips64*-*-* arm*-*-* strongarm*-*-* xscale*-*-* } } */
 #include "ffitest.h"
 
-static void closure_test_fn3(ffi_cif* cif,void* resp,void** args,
-			     void* userdata)
+static void closure_test_fn3(ffi_cif* cif __attribute__ ((unused)), void* resp,
+			     void** args, void* userdata)
  {
    *(ffi_arg*)resp =
      (int)*(float *)args[0] +(int)(*(float *)args[1]) +
Index: testsuite/libffi.call/closure_fn4.c
===================================================================
--- testsuite/libffi.call/closure_fn4.c	(revision 111437)
+++ testsuite/libffi.call/closure_fn4.c	(working copy)
@@ -7,11 +7,11 @@
    Originator:	<andreast@gcc.gnu.org> 20031026	 */
 
 /* { dg-do run { xfail mips64*-*-* arm*-*-* strongarm*-*-* xscale*-*-* } } */
-
 #include "ffitest.h"
 
 static void
-closure_test_fn0(ffi_cif* cif,void* resp,void** args, void* userdata)
+closure_test_fn0(ffi_cif* cif __attribute__ ((unused)), void* resp, void** args,
+		 void* userdata)
 {
   *(ffi_arg*)resp =
     (int)*(unsigned long long *)args[0] + (int)*(unsigned long long *)args[1] +
Index: testsuite/libffi.call/closure_fn5.c
===================================================================
--- testsuite/libffi.call/closure_fn5.c	(revision 111437)
+++ testsuite/libffi.call/closure_fn5.c	(working copy)
@@ -7,11 +7,11 @@
    Originator:	<andreast@gcc.gnu.org> 20031026	 */
 
 /* { dg-do run { xfail mips64*-*-* arm*-*-* strongarm*-*-* xscale*-*-* } } */
-
 #include "ffitest.h"
 
 static void
-closure_test_fn5(ffi_cif* cif,void* resp,void** args, void* userdata)
+closure_test_fn5(ffi_cif* cif __attribute__ ((unused)), void* resp, void** args,
+		 void* userdata)
 {
   *(ffi_arg*)resp =
     (int)*(unsigned long long *)args[0] + (int)*(unsigned long long *)args[1] +
Index: testsuite/libffi.call/closure_fn6.c
===================================================================
--- testsuite/libffi.call/closure_fn6.c	(revision 111437)
+++ testsuite/libffi.call/closure_fn6.c	(working copy)
@@ -9,7 +9,8 @@
 #include "ffitest.h"
 
 static void
-closure_test_fn0(ffi_cif* cif,void* resp,void** args, void* userdata)
+closure_test_fn0(ffi_cif* cif __attribute__ ((unused)), void* resp, void** args,
+		 void* userdata)
 {
   *(ffi_arg*)resp =
     (int)*(unsigned long long *)args[0] +
Index: testsuite/libffi.call/cls_12byte.c
===================================================================
--- testsuite/libffi.call/cls_12byte.c	(revision 111437)
+++ testsuite/libffi.call/cls_12byte.c	(working copy)
@@ -28,7 +28,9 @@
   return result;
 }
 
-static void cls_struct_12byte_gn(ffi_cif* cif, void* resp, void** args, void* userdata)
+static void cls_struct_12byte_gn(ffi_cif* cif __attribute__ ((unused)),
+				 void* resp, void** args ,
+				 void* userdata __attribute__ ((unused)))
 {
   struct cls_struct_12byte b1, b2;
 
Index: testsuite/libffi.call/cls_16byte.c
===================================================================
--- testsuite/libffi.call/cls_16byte.c	(revision 111437)
+++ testsuite/libffi.call/cls_16byte.c	(working copy)
@@ -29,7 +29,9 @@
   return result;
 }
 
-static void cls_struct_16byte_gn(ffi_cif* cif, void* resp, void** args, void* userdata)
+static void cls_struct_16byte_gn(ffi_cif* cif __attribute__ ((unused)),
+				 void* resp, void** args,
+				 void* userdata __attribute__ ((unused)))
 {
   struct cls_struct_16byte b1, b2;
 
Index: testsuite/libffi.call/cls_18byte.c
===================================================================
--- testsuite/libffi.call/cls_18byte.c	(revision 111437)
+++ testsuite/libffi.call/cls_18byte.c	(working copy)
@@ -33,7 +33,8 @@
 }
 
 static void
-cls_struct_18byte_gn(ffi_cif* cif, void* resp, void** args, void* userdata)
+cls_struct_18byte_gn(ffi_cif* cif __attribute__ ((unused)), void* resp,
+		     void** args, void* userdata __attribute__ ((unused)))
 {
   struct cls_struct_18byte a1, a2;
 
Index: testsuite/libffi.call/cls_19byte.c
===================================================================
--- testsuite/libffi.call/cls_19byte.c	(revision 111437)
+++ testsuite/libffi.call/cls_19byte.c	(working copy)
@@ -36,7 +36,8 @@
 }
 
 static void
-cls_struct_19byte_gn(ffi_cif* cif, void* resp, void** args, void* userdata)
+cls_struct_19byte_gn(ffi_cif* cif __attribute__ ((unused)), void* resp,
+		     void** args, void* userdata __attribute__ ((unused)))
 {
   struct cls_struct_19byte a1, a2;
 
Index: testsuite/libffi.call/cls_1_1byte.c
===================================================================
--- testsuite/libffi.call/cls_1_1byte.c	(revision 111437)
+++ testsuite/libffi.call/cls_1_1byte.c	(working copy)
@@ -26,7 +26,8 @@
 }
 
 static void
-cls_struct_1_1byte_gn(ffi_cif* cif, void* resp, void** args, void* userdata)
+cls_struct_1_1byte_gn(ffi_cif* cif __attribute__ ((unused)), void* resp,
+		      void** args, void* userdata __attribute__ ((unused)))
 {
 
   struct cls_struct_1_1byte a1, a2;
Index: testsuite/libffi.call/cls_20byte.c
===================================================================
--- testsuite/libffi.call/cls_20byte.c	(revision 111437)
+++ testsuite/libffi.call/cls_20byte.c	(working copy)
@@ -29,7 +29,8 @@
 }
 
 static void
-cls_struct_20byte_gn(ffi_cif* cif, void* resp, void** args, void* userdata)
+cls_struct_20byte_gn(ffi_cif* cif __attribute__ ((unused)), void* resp,
+		     void** args, void* userdata __attribute__ ((unused)))
 {
   struct cls_struct_20byte a1, a2;
 
Index: testsuite/libffi.call/cls_20byte1.c
===================================================================
--- testsuite/libffi.call/cls_20byte1.c	(revision 111437)
+++ testsuite/libffi.call/cls_20byte1.c	(working copy)
@@ -29,7 +29,8 @@
 }
 
 static void
-cls_struct_20byte_gn(ffi_cif* cif, void* resp, void** args, void* userdata)
+cls_struct_20byte_gn(ffi_cif* cif __attribute__ ((unused)), void* resp,
+		     void** args, void* userdata __attribute__ ((unused)))
 {
   struct cls_struct_20byte a1, a2;
 
Index: testsuite/libffi.call/cls_24byte.c
===================================================================
--- testsuite/libffi.call/cls_24byte.c	(revision 111437)
+++ testsuite/libffi.call/cls_24byte.c	(working copy)
@@ -38,7 +38,8 @@
 }
 
 static void
-cls_struct_24byte_gn(ffi_cif* cif, void* resp, void** args, void* userdata)
+cls_struct_24byte_gn(ffi_cif* cif __attribute__ ((unused)), void* resp,
+		     void** args, void* userdata __attribute__ ((unused)))
 {
   struct cls_struct_24byte b0, b1, b2, b3;
 
Index: testsuite/libffi.call/cls_2byte.c
===================================================================
--- testsuite/libffi.call/cls_2byte.c	(revision 111437)
+++ testsuite/libffi.call/cls_2byte.c	(working copy)
@@ -28,7 +28,8 @@
 }
 
 static void
-cls_struct_2byte_gn(ffi_cif* cif, void* resp, void** args, void* userdata)
+cls_struct_2byte_gn(ffi_cif* cif __attribute__ ((unused)), void* resp,
+		    void** args, void* userdata __attribute__ ((unused)))
 {
 
   struct cls_struct_2byte a1, a2;
Index: testsuite/libffi.call/cls_3_1byte.c
===================================================================
--- testsuite/libffi.call/cls_3_1byte.c	(revision 111437)
+++ testsuite/libffi.call/cls_3_1byte.c	(working copy)
@@ -32,7 +32,8 @@
 }
 
 static void
-cls_struct_3_1byte_gn(ffi_cif* cif, void* resp, void** args, void* userdata)
+cls_struct_3_1byte_gn(ffi_cif* cif __attribute__ ((unused)), void* resp,
+		      void** args, void* userdata __attribute__ ((unused)))
 {
 
   struct cls_struct_3_1byte a1, a2;
Index: testsuite/libffi.call/cls_3byte1.c
===================================================================
--- testsuite/libffi.call/cls_3byte1.c	(revision 111437)
+++ testsuite/libffi.call/cls_3byte1.c	(working copy)
@@ -28,7 +28,8 @@
 }
 
 static void
-cls_struct_3byte_gn(ffi_cif* cif, void* resp, void** args, void* userdata)
+cls_struct_3byte_gn(ffi_cif* cif __attribute__ ((unused)), void* resp,
+		    void** args, void* userdata __attribute__ ((unused)))
 {
 
   struct cls_struct_3byte a1, a2;
Index: testsuite/libffi.call/cls_3byte2.c
===================================================================
--- testsuite/libffi.call/cls_3byte2.c	(revision 111437)
+++ testsuite/libffi.call/cls_3byte2.c	(working copy)
@@ -28,7 +28,8 @@
 }
 
 static void
-cls_struct_3byte_gn1(ffi_cif* cif, void* resp, void** args, void* userdata)
+cls_struct_3byte_gn1(ffi_cif* cif __attribute__ ((unused)), void* resp,
+		     void** args, void* userdata __attribute__ ((unused)))
 {
 
   struct cls_struct_3byte_1 a1, a2;
Index: testsuite/libffi.call/cls_4_1byte.c
===================================================================
--- testsuite/libffi.call/cls_4_1byte.c	(revision 111437)
+++ testsuite/libffi.call/cls_4_1byte.c	(working copy)
@@ -34,7 +34,8 @@
 }
 
 static void
-cls_struct_4_1byte_gn(ffi_cif* cif, void* resp, void** args, void* userdata)
+cls_struct_4_1byte_gn(ffi_cif* cif __attribute__ ((unused)), void* resp,
+		      void** args, void* userdata __attribute__ ((unused)))
 {
 
   struct cls_struct_4_1byte a1, a2;
Index: testsuite/libffi.call/cls_4byte.c
===================================================================
--- testsuite/libffi.call/cls_4byte.c	(revision 111437)
+++ testsuite/libffi.call/cls_4byte.c	(working copy)
@@ -6,7 +6,6 @@
    Originator:	<andreast@gcc.gnu.org> 20030828	 */
 
 /* { dg-do run { xfail mips64*-*-* arm*-*-* strongarm*-*-* xscale*-*-* } } */
-
 #include "ffitest.h"
 
 typedef struct cls_struct_4byte {
@@ -28,7 +27,8 @@
 }
 
 static void
-cls_struct_4byte_gn(ffi_cif* cif, void* resp, void** args, void* userdata)
+cls_struct_4byte_gn(ffi_cif* cif __attribute__ ((unused)), void* resp,
+		    void** args, void* userdata __attribute__ ((unused)))
 {
 
   struct cls_struct_4byte a1, a2;
Index: testsuite/libffi.call/cls_5_1_byte.c
===================================================================
--- testsuite/libffi.call/cls_5_1_byte.c	(revision 111437)
+++ testsuite/libffi.call/cls_5_1_byte.c	(working copy)
@@ -36,7 +36,8 @@
 }
 
 static void
-cls_struct_5byte_gn(ffi_cif* cif, void* resp, void** args, void* userdata)
+cls_struct_5byte_gn(ffi_cif* cif __attribute__ ((unused)), void* resp,
+		    void** args, void* userdata __attribute__ ((unused)))
 {
 
   struct cls_struct_5byte a1, a2;
Index: testsuite/libffi.call/cls_5byte.c
===================================================================
--- testsuite/libffi.call/cls_5byte.c	(revision 111437)
+++ testsuite/libffi.call/cls_5byte.c	(working copy)
@@ -31,7 +31,8 @@
 }
 
 static void
-cls_struct_5byte_gn(ffi_cif* cif, void* resp, void** args, void* userdata)
+cls_struct_5byte_gn(ffi_cif* cif __attribute__ ((unused)), void* resp,
+		    void** args, void* userdata __attribute__ ((unused)))
 {
 
   struct cls_struct_5byte a1, a2;
Index: testsuite/libffi.call/cls_64byte.c
===================================================================
--- testsuite/libffi.call/cls_64byte.c	(revision 111437)
+++ testsuite/libffi.call/cls_64byte.c	(working copy)
@@ -43,7 +43,8 @@
 }
 
 static void
-cls_struct_64byte_gn(ffi_cif* cif, void* resp, void** args, void* userdata)
+cls_struct_64byte_gn(ffi_cif* cif __attribute__ ((unused)), void* resp,
+		     void** args, void* userdata __attribute__ ((unused)))
 {
   struct cls_struct_64byte b0, b1, b2, b3;
 
Index: testsuite/libffi.call/cls_6_1_byte.c
===================================================================
--- testsuite/libffi.call/cls_6_1_byte.c	(revision 111437)
+++ testsuite/libffi.call/cls_6_1_byte.c	(working copy)
@@ -38,7 +38,8 @@
 }
 
 static void
-cls_struct_6byte_gn(ffi_cif* cif, void* resp, void** args, void* userdata)
+cls_struct_6byte_gn(ffi_cif* cif __attribute__ ((unused)), void* resp,
+		    void** args, void* userdata __attribute__ ((unused)))
 {
 
   struct cls_struct_6byte a1, a2;
Index: testsuite/libffi.call/cls_6byte.c
===================================================================
--- testsuite/libffi.call/cls_6byte.c	(revision 111437)
+++ testsuite/libffi.call/cls_6byte.c	(working copy)
@@ -33,7 +33,8 @@
 }
 
 static void
-cls_struct_6byte_gn(ffi_cif* cif, void* resp, void** args, void* userdata)
+cls_struct_6byte_gn(ffi_cif* cif __attribute__ ((unused)), void* resp,
+		    void** args, void* userdata __attribute__ ((unused)))
 {
 
   struct cls_struct_6byte a1, a2;
Index: testsuite/libffi.call/cls_7_1_byte.c
===================================================================
--- testsuite/libffi.call/cls_7_1_byte.c	(revision 111437)
+++ testsuite/libffi.call/cls_7_1_byte.c	(working copy)
@@ -40,7 +40,8 @@
 }
 
 static void
-cls_struct_7byte_gn(ffi_cif* cif, void* resp, void** args, void* userdata)
+cls_struct_7byte_gn(ffi_cif* cif __attribute__ ((unused)), void* resp,
+		    void** args, void* userdata __attribute__ ((unused)))
 {
 
   struct cls_struct_7byte a1, a2;
Index: testsuite/libffi.call/cls_7byte.c
===================================================================
--- testsuite/libffi.call/cls_7byte.c	(revision 111437)
+++ testsuite/libffi.call/cls_7byte.c	(working copy)
@@ -33,7 +33,8 @@
 }
 
 static void
-cls_struct_7byte_gn(ffi_cif* cif, void* resp, void** args, void* userdata)
+cls_struct_7byte_gn(ffi_cif* cif __attribute__ ((unused)), void* resp,
+		    void** args, void* userdata __attribute__ ((unused)))
 {
 
   struct cls_struct_7byte a1, a2;
Index: testsuite/libffi.call/cls_8byte.c
===================================================================
--- testsuite/libffi.call/cls_8byte.c	(revision 111437)
+++ testsuite/libffi.call/cls_8byte.c	(working copy)
@@ -27,7 +27,8 @@
 }
 
 static void
-cls_struct_8byte_gn(ffi_cif* cif, void* resp, void** args, void* userdata)
+cls_struct_8byte_gn(ffi_cif* cif __attribute__ ((unused)), void* resp,
+		    void** args, void* userdata __attribute__ ((unused)))
 {
 
   struct cls_struct_8byte a1, a2;
Index: testsuite/libffi.call/cls_9byte1.c
===================================================================
--- testsuite/libffi.call/cls_9byte1.c	(revision 111437)
+++ testsuite/libffi.call/cls_9byte1.c	(working copy)
@@ -29,8 +29,9 @@
   return result;
 }
 
-static void cls_struct_9byte_gn(ffi_cif* cif, void* resp, void** args,
-				void* userdata)
+static void cls_struct_9byte_gn(ffi_cif* cif __attribute__ ((unused)),
+				void* resp, void** args,
+				void* userdata __attribute__ ((unused)))
 {
   struct cls_struct_9byte b1, b2;
 
Index: testsuite/libffi.call/cls_9byte2.c
===================================================================
--- testsuite/libffi.call/cls_9byte2.c	(revision 111437)
+++ testsuite/libffi.call/cls_9byte2.c	(working copy)
@@ -29,8 +29,9 @@
   return result;
 }
 
-static void cls_struct_9byte_gn(ffi_cif* cif, void* resp, void** args,
-				void* userdata)
+static void cls_struct_9byte_gn(ffi_cif* cif __attribute__ ((unused)),
+				void* resp, void** args,
+				void* userdata __attribute__ ((unused)))
 {
   struct cls_struct_9byte b1, b2;
 
Index: testsuite/libffi.call/cls_align_double.c
===================================================================
--- testsuite/libffi.call/cls_align_double.c	(revision 111437)
+++ testsuite/libffi.call/cls_align_double.c	(working copy)
@@ -28,7 +28,8 @@
 }
 
 static void
-cls_struct_align_gn(ffi_cif* cif, void* resp, void** args, void* userdata)
+cls_struct_align_gn(ffi_cif* cif __attribute__ ((unused)), void* resp,
+		    void** args, void* userdata __attribute__ ((unused)))
 {
 
   struct cls_struct_align a1, a2;
Index: testsuite/libffi.call/cls_align_float.c
===================================================================
--- testsuite/libffi.call/cls_align_float.c	(revision 111437)
+++ testsuite/libffi.call/cls_align_float.c	(working copy)
@@ -28,7 +28,8 @@
 }
 
 static void
-cls_struct_align_gn(ffi_cif* cif, void* resp, void** args, void* userdata)
+cls_struct_align_gn(ffi_cif* cif __attribute__ ((unused)), void* resp,
+		    void** args, void* userdata __attribute__ ((unused)))
 {
 
   struct cls_struct_align a1, a2;
Index: testsuite/libffi.call/cls_align_longdouble.c
===================================================================
--- testsuite/libffi.call/cls_align_longdouble.c	(revision 111437)
+++ testsuite/libffi.call/cls_align_longdouble.c	(working copy)
@@ -29,7 +29,8 @@
 }
 
 static void
-cls_struct_align_gn(ffi_cif* cif, void* resp, void** args, void* userdata)
+cls_struct_align_gn(ffi_cif* cif __attribute__ ((unused)), void* resp,
+		    void** args, void* userdata __attribute__ ((unused)))
 {
 
   struct cls_struct_align a1, a2;
Index: testsuite/libffi.call/cls_align_pointer.c
===================================================================
--- testsuite/libffi.call/cls_align_pointer.c	(revision 111437)
+++ testsuite/libffi.call/cls_align_pointer.c	(working copy)
@@ -19,16 +19,19 @@
   struct cls_struct_align result;
 
   result.a = a1.a + a2.a;
-  result.b = (void *)((size_t)a1.b + (size_t)a2.b);
+  result.b = (void *)((unsigned long)a1.b + (unsigned long)a2.b);
   result.c = a1.c + a2.c;
 
-  printf("%d %d %d %d %d %d: %d %d %d\n", a1.a, (size_t)a1.b, a1.c, a2.a, (size_t)a2.b, a2.c, result.a, (size_t)result.b, result.c);
+  printf("%d %lu %d %d %lu %d: %d %lu %d\n", a1.a, (unsigned long)a1.b, a1.c,
+	 a2.a, (unsigned long)a2.b, a2.c, result.a, (unsigned long)result.b,
+	 result.c);
 
-  return  result;
+  return result;
 }
 
 static void
-cls_struct_align_gn(ffi_cif* cif, void* resp, void** args, void* userdata)
+cls_struct_align_gn(ffi_cif* cif __attribute__ ((unused)), void* resp,
+		    void** args, void* userdata __attribute__ ((unused)))
 {
 
   struct cls_struct_align a1, a2;
@@ -84,14 +87,14 @@
 
   ffi_call(&cif, FFI_FN(cls_struct_align_fn), &res_dbl, args_dbl);
   /* { dg-output "12 4951 127 1 9320 13: 13 14271 140" } */
-  printf("res: %d %d %d\n", res_dbl.a, (size_t)res_dbl.b, res_dbl.c);
+  printf("res: %d %lu %d\n", res_dbl.a, (unsigned long)res_dbl.b, res_dbl.c);
   /* { dg-output "\nres: 13 14271 140" } */
 
   CHECK(ffi_prep_closure(pcl, &cif, cls_struct_align_gn, NULL) == FFI_OK);
 
   res_dbl = ((cls_struct_align(*)(cls_struct_align, cls_struct_align))(pcl))(g_dbl, f_dbl);
   /* { dg-output "\n12 4951 127 1 9320 13: 13 14271 140" } */
-  printf("res: %d %d %d\n", res_dbl.a, (size_t)res_dbl.b, res_dbl.c);
+  printf("res: %d %lu %d\n", res_dbl.a, (unsigned long)res_dbl.b, res_dbl.c);
   /* { dg-output "\nres: 13 14271 140" } */
 
   exit(0);
Index: testsuite/libffi.call/cls_align_sint16.c
===================================================================
--- testsuite/libffi.call/cls_align_sint16.c	(revision 111437)
+++ testsuite/libffi.call/cls_align_sint16.c	(working copy)
@@ -28,7 +28,8 @@
 }
 
 static void
-cls_struct_align_gn(ffi_cif* cif, void* resp, void** args, void* userdata)
+cls_struct_align_gn(ffi_cif* cif __attribute__ ((unused)), void* resp,
+		    void** args, void* userdata __attribute__ ((unused)))
 {
 
   struct cls_struct_align a1, a2;
Index: testsuite/libffi.call/cls_align_sint32.c
===================================================================
--- testsuite/libffi.call/cls_align_sint32.c	(revision 111437)
+++ testsuite/libffi.call/cls_align_sint32.c	(working copy)
@@ -28,7 +28,8 @@
 }
 
 static void
-cls_struct_align_gn(ffi_cif* cif, void* resp, void** args, void* userdata)
+cls_struct_align_gn(ffi_cif* cif __attribute__ ((unused)), void* resp,
+		    void** args, void* userdata __attribute__ ((unused)))
 {
 
   struct cls_struct_align a1, a2;
Index: testsuite/libffi.call/cls_align_sint64.c
===================================================================
--- testsuite/libffi.call/cls_align_sint64.c	(revision 111437)
+++ testsuite/libffi.call/cls_align_sint64.c	(working copy)
@@ -28,7 +28,8 @@
 }
 
 static void
-cls_struct_align_gn(ffi_cif* cif, void* resp, void** args, void* userdata)
+cls_struct_align_gn(ffi_cif* cif __attribute__ ((unused)), void* resp,
+		    void** args, void* userdata __attribute__ ((unused)))
 {
 
   struct cls_struct_align a1, a2;
Index: testsuite/libffi.call/cls_align_uint16.c
===================================================================
--- testsuite/libffi.call/cls_align_uint16.c	(revision 111437)
+++ testsuite/libffi.call/cls_align_uint16.c	(working copy)
@@ -28,7 +28,8 @@
 }
 
 static void
-cls_struct_align_gn(ffi_cif* cif, void* resp, void** args, void* userdata)
+cls_struct_align_gn(ffi_cif* cif __attribute__ ((unused)), void* resp,
+		    void** args, void* userdata __attribute__ ((unused)))
 {
 
   struct cls_struct_align a1, a2;
Index: testsuite/libffi.call/cls_align_uint32.c
===================================================================
--- testsuite/libffi.call/cls_align_uint32.c	(revision 111437)
+++ testsuite/libffi.call/cls_align_uint32.c	(working copy)
@@ -28,7 +28,8 @@
 }
 
 static void
-cls_struct_align_gn(ffi_cif* cif, void* resp, void** args, void* userdata)
+cls_struct_align_gn(ffi_cif* cif __attribute__ ((unused)), void* resp,
+		    void** args, void* userdata __attribute__ ((unused)))
 {
 
   struct cls_struct_align a1, a2;
Index: testsuite/libffi.call/cls_align_uint64.c
===================================================================
--- testsuite/libffi.call/cls_align_uint64.c	(revision 111437)
+++ testsuite/libffi.call/cls_align_uint64.c	(working copy)
@@ -28,7 +28,8 @@
 }
 
 static void
-cls_struct_align_gn(ffi_cif* cif, void* resp, void** args, void* userdata)
+cls_struct_align_gn(ffi_cif* cif __attribute__ ((unused)), void* resp,
+		    void** args, void* userdata __attribute__ ((unused)))
 {
 
   struct cls_struct_align a1, a2;
Index: testsuite/libffi.call/cls_double.c
===================================================================
--- testsuite/libffi.call/cls_double.c	(revision 111437)
+++ testsuite/libffi.call/cls_double.c	(working copy)
@@ -7,8 +7,9 @@
 /* { dg-do run { xfail mips64*-*-* arm*-*-* strongarm*-*-* xscale*-*-* } } */
 #include "ffitest.h"
 
-static void cls_ret_double_fn(ffi_cif* cif,void* resp,void** args,
-			     void* userdata)
+static void cls_ret_double_fn(ffi_cif* cif __attribute__ ((unused)), void* resp,
+			      void** args,
+			      void* userdata __attribute__ ((unused)))
  {
    *(double *)resp = *(double *)args[0];
 
Index: testsuite/libffi.call/cls_float.c
===================================================================
--- testsuite/libffi.call/cls_float.c	(revision 111437)
+++ testsuite/libffi.call/cls_float.c	(working copy)
@@ -7,8 +7,9 @@
 /* { dg-do run { xfail mips64*-*-* arm*-*-* strongarm*-*-* xscale*-*-* } } */
 #include "ffitest.h"
 
-static void cls_ret_float_fn(ffi_cif* cif,void* resp,void** args,
-			     void* userdata)
+static void cls_ret_float_fn(ffi_cif* cif __attribute__ ((unused)), void* resp,
+			     void** args,
+			     void* userdata __attribute__ ((unused)))
  {
    *(float *)resp = *(float *)args[0];
 
Index: testsuite/libffi.call/cls_multi_schar.c
===================================================================
--- testsuite/libffi.call/cls_multi_schar.c	(revision 111437)
+++ testsuite/libffi.call/cls_multi_schar.c	(working copy)
@@ -19,7 +19,8 @@
 
 }
 
-static void test_func_gn(ffi_cif *cif, void *rval, void **avals, void *data)
+static void test_func_gn(ffi_cif *cif __attribute__ ((unused)), void *rval,
+			 void **avals, void *data __attribute__ ((unused)))
 {
   signed char a1, a2;
 
@@ -67,7 +68,7 @@
 
   ffi_call(&cif, FFI_FN(test_func_fn), &res_call, args_dbl);
   /* { dg-output "2 125: 127" } */
-  printf("res: %d\n", res_call);
+  printf("res: %d\n", (signed char)res_call);
   /* { dg-output "\nres: 127" } */
 
   CHECK(ffi_prep_closure(pcl, &cif, test_func_gn, NULL)  == FFI_OK);
Index: testsuite/libffi.call/cls_multi_sshort.c
===================================================================
--- testsuite/libffi.call/cls_multi_sshort.c	(revision 111437)
+++ testsuite/libffi.call/cls_multi_sshort.c	(working copy)
@@ -19,7 +19,8 @@
 
 }
 
-static void test_func_gn(ffi_cif *cif, void *rval, void **avals, void *data)
+static void test_func_gn(ffi_cif *cif __attribute__ ((unused)), void *rval,
+			 void **avals, void *data __attribute__ ((unused)))
 {
   signed short a1, a2;
 
@@ -67,7 +68,7 @@
 
   ffi_call(&cif, FFI_FN(test_func_fn), &res_call, args_dbl);
   /* { dg-output "2 32765: 32767" } */
-  printf("res: %d\n", res_call);
+  printf("res: %d\n", (unsigned short)res_call);
   /* { dg-output "\nres: 32767" } */
 
   CHECK(ffi_prep_closure(pcl, &cif, test_func_gn, NULL)  == FFI_OK);
Index: testsuite/libffi.call/cls_multi_sshortchar.c
===================================================================
--- testsuite/libffi.call/cls_multi_sshortchar.c	(revision 111437)
+++ testsuite/libffi.call/cls_multi_sshortchar.c	(working copy)
@@ -20,7 +20,8 @@
 
 }
 
-static void test_func_gn(ffi_cif *cif, void *rval, void **avals, void *data)
+static void test_func_gn(ffi_cif *cif __attribute__ ((unused)), void *rval,
+			 void **avals, void *data __attribute__ ((unused)))
 {
   signed char a1, a3;
   signed short a2, a4;
@@ -79,7 +80,7 @@
 
   ffi_call(&cif, FFI_FN(test_func_fn), &res_call, args_dbl);
   /* { dg-output "1 32765 127 -128: 32765" } */
-  printf("res: %d\n", res_call);
+  printf("res: %d\n", (signed short)res_call);
   /* { dg-output "\nres: 32765" } */
 
   CHECK(ffi_prep_closure(pcl, &cif, test_func_gn, NULL)  == FFI_OK);
Index: testsuite/libffi.call/cls_multi_uchar.c
===================================================================
--- testsuite/libffi.call/cls_multi_uchar.c	(revision 111437)
+++ testsuite/libffi.call/cls_multi_uchar.c	(working copy)
@@ -20,7 +20,8 @@
 
 }
 
-static void test_func_gn(ffi_cif *cif, void *rval, void **avals, void *data)
+static void test_func_gn(ffi_cif *cif __attribute__ ((unused)), void *rval,
+			 void **avals, void *data __attribute__ ((unused)))
 {
   unsigned char a1, a2, a3, a4;
 
@@ -35,7 +36,10 @@
 
 typedef unsigned char (*test_type)(unsigned char, unsigned char,
 				   unsigned char, unsigned char);
-void test_func(ffi_cif *cif, void *rval, void **avals, void *data)
+
+void test_func(ffi_cif *cif __attribute__ ((unused)),
+	       void *rval __attribute__ ((unused)), void **avals,
+	       void *data __attribute__ ((unused)))
 {
   printf("%d %d %d %d\n", *(unsigned char *)avals[0],
 	 *(unsigned char *)avals[1], *(unsigned char *)avals[2],
@@ -82,7 +86,7 @@
 
   ffi_call(&cif, FFI_FN(test_func_fn), &res_call, args_dbl);
   /* { dg-output "1 2 127 125: 255" } */
-  printf("res: %d\n", res_call);
+  printf("res: %d\n", (unsigned char)res_call);
   /* { dg-output "\nres: 255" } */
 
   CHECK(ffi_prep_closure(pcl, &cif, test_func_gn, NULL)  == FFI_OK);
Index: testsuite/libffi.call/cls_multi_ushort.c
===================================================================
--- testsuite/libffi.call/cls_multi_ushort.c	(revision 111437)
+++ testsuite/libffi.call/cls_multi_ushort.c	(working copy)
@@ -19,7 +19,8 @@
 
 }
 
-static void test_func_gn(ffi_cif *cif, void *rval, void **avals, void *data)
+static void test_func_gn(ffi_cif *cif __attribute__ ((unused)), void *rval,
+			 void **avals, void *data __attribute__ ((unused)))
 {
   unsigned short a1, a2;
 
@@ -67,7 +68,7 @@
 
   ffi_call(&cif, FFI_FN(test_func_fn), &res_call, args_dbl);
   /* { dg-output "2 32765: 32767" } */
-  printf("res: %d\n", res_call);
+  printf("res: %d\n", (unsigned short)res_call);
   /* { dg-output "\nres: 32767" } */
 
   CHECK(ffi_prep_closure(pcl, &cif, test_func_gn, NULL)  == FFI_OK);
Index: testsuite/libffi.call/cls_multi_ushortchar.c
===================================================================
--- testsuite/libffi.call/cls_multi_ushortchar.c	(revision 111437)
+++ testsuite/libffi.call/cls_multi_ushortchar.c	(working copy)
@@ -20,7 +20,8 @@
 
 }
 
-static void test_func_gn(ffi_cif *cif, void *rval, void **avals, void *data)
+static void test_func_gn(ffi_cif *cif __attribute__ ((unused)), void *rval,
+			 void **avals, void *data __attribute__ ((unused)))
 {
   unsigned char a1, a3;
   unsigned short a2, a4;
@@ -79,7 +80,7 @@
 
   ffi_call(&cif, FFI_FN(test_func_fn), &res_call, args_dbl);
   /* { dg-output "1 2 127 128: 258" } */
-  printf("res: %d\n", res_call);
+  printf("res: %d\n", (unsigned short)res_call);
   /* { dg-output "\nres: 258" } */
 
   CHECK(ffi_prep_closure(pcl, &cif, test_func_gn, NULL)  == FFI_OK);
Index: testsuite/libffi.call/cls_schar.c
===================================================================
--- testsuite/libffi.call/cls_schar.c	(revision 111437)
+++ testsuite/libffi.call/cls_schar.c	(working copy)
@@ -7,12 +7,13 @@
 /* { dg-do run { xfail mips64*-*-* arm*-*-* strongarm*-*-* xscale*-*-* } } */
 #include "ffitest.h"
 
-static void cls_ret_schar_fn(ffi_cif* cif,void* resp,void** args,
-			     void* userdata)
+static void cls_ret_schar_fn(ffi_cif* cif __attribute__ ((unused)), void* resp,
+			     void** args,
+			     void* userdata __attribute__ ((unused)))
 {
   *(ffi_arg*)resp = *(signed char *)args[0];
   printf("%d: %d\n",*(signed char *)args[0],
-	 *(ffi_arg*)resp);
+	 (int)*(ffi_arg *)(resp));
 }
 typedef signed char (*cls_ret_schar)(signed char);
 
Index: testsuite/libffi.call/cls_sint.c
===================================================================
--- testsuite/libffi.call/cls_sint.c	(revision 111437)
+++ testsuite/libffi.call/cls_sint.c	(working copy)
@@ -7,12 +7,13 @@
 /* { dg-do run { xfail mips64*-*-* arm*-*-* strongarm*-*-* xscale*-*-* } } */
 #include "ffitest.h"
 
-static void cls_ret_sint_fn(ffi_cif* cif,void* resp,void** args,
-			     void* userdata)
+static void cls_ret_sint_fn(ffi_cif* cif __attribute__ ((unused)), void* resp,
+			    void** args,
+			    void* userdata __attribute__ ((unused)))
 {
   *(ffi_arg*)resp = *(signed int *)args[0];
   printf("%d: %d\n",*(signed int *)args[0],
-	 *(ffi_arg*)resp);
+	 (int)*(ffi_arg *)(resp));
 }
 typedef signed int (*cls_ret_sint)(signed int);
 
Index: testsuite/libffi.call/cls_sshort.c
===================================================================
--- testsuite/libffi.call/cls_sshort.c	(revision 111437)
+++ testsuite/libffi.call/cls_sshort.c	(working copy)
@@ -7,12 +7,13 @@
 /* { dg-do run { xfail mips64*-*-* arm*-*-* strongarm*-*-* xscale*-*-* } } */
 #include "ffitest.h"
 
-static void cls_ret_sshort_fn(ffi_cif* cif,void* resp,void** args,
-			     void* userdata)
+static void cls_ret_sshort_fn(ffi_cif* cif __attribute__ ((unused)), void* resp,
+			      void** args,
+			      void* userdata __attribute__ ((unused)))
 {
   *(ffi_arg*)resp = *(signed short *)args[0];
   printf("%d: %d\n",*(signed short *)args[0],
-	 *(ffi_arg*)resp);
+	 (int)*(ffi_arg *)(resp));
 }
 typedef signed short (*cls_ret_sshort)(signed short);
 
Index: testsuite/libffi.call/cls_uchar.c
===================================================================
--- testsuite/libffi.call/cls_uchar.c	(revision 111437)
+++ testsuite/libffi.call/cls_uchar.c	(working copy)
@@ -7,12 +7,13 @@
 /* { dg-do run { xfail mips64*-*-* arm*-*-* strongarm*-*-* xscale*-*-* } } */
 #include "ffitest.h"
 
-static void cls_ret_uchar_fn(ffi_cif* cif,void* resp,void** args,
-			     void* userdata)
+static void cls_ret_uchar_fn(ffi_cif* cif __attribute__ ((unused)), void* resp,
+			     void** args,
+			     void* userdata __attribute__ ((unused)))
 {
   *(ffi_arg*)resp = *(unsigned char *)args[0];
   printf("%d: %d\n",*(unsigned char *)args[0],
-	 *(ffi_arg*)resp);
+	 (int)*(ffi_arg *)(resp));
 }
 typedef unsigned char (*cls_ret_uchar)(unsigned char);
 
Index: testsuite/libffi.call/cls_uint.c
===================================================================
--- testsuite/libffi.call/cls_uint.c	(revision 111437)
+++ testsuite/libffi.call/cls_uint.c	(working copy)
@@ -7,14 +7,15 @@
 /* { dg-do run { xfail mips64*-*-* arm*-*-* strongarm*-*-* xscale*-*-* } } */
 #include "ffitest.h"
 
-static void cls_ret_uint_fn(ffi_cif* cif,void* resp,void** args,
-			     void* userdata)
- {
-   *(ffi_arg *)resp = *(unsigned int *)args[0];
+static void cls_ret_uint_fn(ffi_cif* cif __attribute__ ((unused)), void* resp,
+			    void** args,
+			    void* userdata __attribute__ ((unused)))
+{
+  *(ffi_arg *)resp = *(unsigned int *)args[0];
 
-   printf("%d: %d\n",*(unsigned int *)args[0],
-	  *(ffi_arg *)resp);
- }
+  printf("%d: %d\n",*(unsigned int *)args[0],
+	 (int)*(ffi_arg *)(resp));
+}
 typedef unsigned int (*cls_ret_uint)(unsigned int);
 
 int main (void)
Index: testsuite/libffi.call/cls_ulonglong.c
===================================================================
--- testsuite/libffi.call/cls_ulonglong.c	(revision 111437)
+++ testsuite/libffi.call/cls_ulonglong.c	(working copy)
@@ -7,14 +7,15 @@
 /* { dg-do run { xfail mips64*-*-* arm*-*-* strongarm*-*-* xscale*-*-* } } */
 #include "ffitest.h"
 
-static void cls_ret_ulonglong_fn(ffi_cif* cif,void* resp,void** args,
-			     void* userdata)
- {
-   *(unsigned long long *)resp=  *(unsigned long long *)args[0];
+static void cls_ret_ulonglong_fn(ffi_cif* cif __attribute__ ((unused)),
+				 void* resp, void** args,
+				 void* userdata __attribute__ ((unused)))
+{
+  *(unsigned long long *)resp=  *(unsigned long long *)args[0];
 
-   printf("%llu: %llu\n",*(unsigned long long *)args[0],
-	  *(unsigned long long *)resp);
- }
+  printf("%llu: %llu\n",*(unsigned long long *)args[0],
+	 *(unsigned long long *)(resp));
+}
 typedef unsigned long long (*cls_ret_ulonglong)(unsigned long long);
 
 int main (void)
Index: testsuite/libffi.call/cls_ushort.c
===================================================================
--- testsuite/libffi.call/cls_ushort.c	(revision 111437)
+++ testsuite/libffi.call/cls_ushort.c	(working copy)
@@ -7,14 +7,15 @@
 /* { dg-do run { xfail mips64*-*-* arm*-*-* strongarm*-*-* xscale*-*-* } } */
 #include "ffitest.h"
 
-static void cls_ret_ushort_fn(ffi_cif* cif,void* resp,void** args,
-			     void* userdata)
- {
-   *(ffi_arg*)resp = *(unsigned short *)args[0];
+static void cls_ret_ushort_fn(ffi_cif* cif __attribute__ ((unused)), void* resp,
+			      void** args,
+			      void* userdata __attribute__ ((unused)))
+{
+  *(ffi_arg*)resp = *(unsigned short *)args[0];
 
-   printf("%d: %d\n",*(unsigned short *)args[0],
-	  *(ffi_arg*)resp);
- }
+  printf("%d: %d\n",*(unsigned short *)args[0],
+	 (int)*(ffi_arg *)(resp));
+}
 typedef unsigned short (*cls_ret_ushort)(unsigned short);
 
 int main (void)
Index: testsuite/libffi.call/float.c
===================================================================
--- testsuite/libffi.call/float.c	(revision 111437)
+++ testsuite/libffi.call/float.c	(working copy)
@@ -8,7 +8,7 @@
 
 #include "ffitest.h"
 
-static int floating(int a, float b, double c, long double d, int e)
+static int floating(int a, float b, double c, long double d)
 {
   int i;
 
@@ -28,7 +28,6 @@
   signed int si1;
   double d;
   long double ld;
-  signed int si2;
 
   args[0] = &ffi_type_sint;
   values[0] = &si1;
@@ -38,26 +37,23 @@
   values[2] = &d;
   args[3] = &ffi_type_longdouble;
   values[3] = &ld;
-  args[4] = &ffi_type_sint;
-  values[4] = &si2;
 
   /* Initialize the cif */
-  CHECK(ffi_prep_cif(&cif, FFI_DEFAULT_ABI, 5,
+  CHECK(ffi_prep_cif(&cif, FFI_DEFAULT_ABI, 4,
 		     &ffi_type_sint, args) == FFI_OK);
 
   si1 = 6;
   f = 3.14159;
   d = (double)1.0/(double)3.0;
   ld = 2.71828182846L;
-  si2 = 10;
 
-  floating (si1, f, d, ld, si2);
+  floating (si1, f, d, ld);
 
   ffi_call(&cif, FFI_FN(floating), &rint, values);
 
-  printf ("%d vs %d\n", (int)rint, floating (si1, f, d, ld, si2));
+  printf ("%d vs %d\n", (int)rint, floating (si1, f, d, ld));
 
-  CHECK(rint == floating(si1, f, d, ld, si2));
+  CHECK((int)rint == floating(si1, f, d, ld));
 
   exit (0);
 }
Index: testsuite/libffi.call/float1.c
===================================================================
--- testsuite/libffi.call/float1.c	(revision 111437)
+++ testsuite/libffi.call/float1.c	(working copy)
@@ -28,25 +28,25 @@
   void *values[MAX_ARGS];
   float f;
   value_type result[2];
-  int i;
+  unsigned int i;
 
   args[0] = &ffi_type_float;
   values[0] = &f;
-  
+
   /* Initialize the cif */
-  CHECK(ffi_prep_cif(&cif, FFI_DEFAULT_ABI, 1, 
+  CHECK(ffi_prep_cif(&cif, FFI_DEFAULT_ABI, 1,
 		     &ffi_type_double, args) == FFI_OK);
-  
+
   f = 3.14159;
-  
+
   /* Put a canary in the return array.  This is a regression test for
      a buffer overrun.  */
   memset(result[1].c, CANARY, sizeof (double));
 
   ffi_call(&cif, FFI_FN(dblit), &result[0].d, values);
-  
+
   /* These are not always the same!! Check for a reasonable delta */
- 
+
   CHECK(result[0].d - dblit(f) < DBL_EPSILON);
 
   /* Check the canary.  */
Index: testsuite/libffi.call/negint.c
===================================================================
--- testsuite/libffi.call/negint.c	(revision 111437)
+++ testsuite/libffi.call/negint.c	(working copy)
@@ -11,7 +11,6 @@
 
 static int checking(int a, short b, signed char c)
 {
-  int i;
 
   return (a < 0 && b < 0 && c < 0);
 }
Index: testsuite/libffi.call/nested_struct.c
===================================================================
--- testsuite/libffi.call/nested_struct.c	(revision 111437)
+++ testsuite/libffi.call/nested_struct.c	(working copy)
@@ -50,7 +50,8 @@
 }
 
 static void
-cls_struct_combined_gn(ffi_cif* cif, void* resp, void** args, void* userdata)
+cls_struct_combined_gn(ffi_cif* cif __attribute__ ((unused)), void* resp,
+		       void** args, void* userdata __attribute__ ((unused)))
 {
   struct cls_struct_16byte1 b0;
   struct cls_struct_16byte2 b1;
Index: testsuite/libffi.call/nested_struct1.c
===================================================================
--- testsuite/libffi.call/nested_struct1.c	(revision 111437)
+++ testsuite/libffi.call/nested_struct1.c	(working copy)
@@ -52,7 +52,8 @@
 }
 
 static void
-cls_struct_combined_gn(ffi_cif* cif, void* resp, void** args, void* userdata)
+cls_struct_combined_gn(ffi_cif* cif __attribute__ ((unused)), void* resp,
+		       void** args, void* userdata __attribute__ ((unused)))
 {
   struct cls_struct_16byte1 b0;
   struct cls_struct_16byte2 b1;
Index: testsuite/libffi.call/nested_struct2.c
===================================================================
--- testsuite/libffi.call/nested_struct2.c	(revision 111437)
+++ testsuite/libffi.call/nested_struct2.c	(working copy)
@@ -27,14 +27,15 @@
   result.x.b = b0.b + b1.x.b + b1.y;
   result.y = b0.b + b1.x.b;
 
-  printf("%d %d %d %d %d: %d %d %d\n", b0.a, b0.b, b1.x.a, b1.x.b, b1.y,
+  printf("%lu %d %lu %d %d: %lu %d %d\n", b0.a, b0.b, b1.x.a, b1.x.b, b1.y,
 	 result.x.a, result.x.b, result.y);
 
   return result;
 }
 
 static void
-B_gn(ffi_cif* cif, void* resp, void** args, void* userdata)
+B_gn(ffi_cif* cif __attribute__ ((unused)), void* resp, void** args,
+     void* userdata __attribute__ ((unused)))
 {
   struct A b0;
   struct B b1;
Index: testsuite/libffi.call/nested_struct3.c
===================================================================
--- testsuite/libffi.call/nested_struct3.c	(revision 111437)
+++ testsuite/libffi.call/nested_struct3.c	(working copy)
@@ -35,7 +35,8 @@
 }
 
 static void
-B_gn(ffi_cif* cif, void* resp, void** args, void* userdata)
+B_gn(ffi_cif* cif __attribute__ ((unused)), void* resp, void** args,
+     void* userdata __attribute__ ((unused)))
 {
   struct A b0;
   struct B b1;
Index: testsuite/libffi.call/nested_struct4.c
===================================================================
--- testsuite/libffi.call/nested_struct4.c	(revision 111437)
+++ testsuite/libffi.call/nested_struct4.c	(working copy)
@@ -3,7 +3,7 @@
 		Contains structs as parameter of the struct itself.
 		Sample taken from Alan Modras patch to src/prep_cif.c.
    Limitations:	none.
-   PR:		none.
+   PR:		PR 25630.
    Originator:	<andreast@gcc.gnu.org> 20051010	 */
 
 /* { dg-do run { xfail mips64*-*-* arm*-*-* strongarm*-*-* xscale*-*-* powerpc*-*-darwin* } } */
Index: testsuite/libffi.call/nested_struct6.c
===================================================================
--- testsuite/libffi.call/nested_struct6.c	(revision 111437)
+++ testsuite/libffi.call/nested_struct6.c	(working copy)
@@ -3,7 +3,7 @@
 		Contains structs as parameter of the struct itself.
 		Sample taken from Alan Modras patch to src/prep_cif.c.
    Limitations:	none.
-   PR:		none.
+   PR:		PR 25630.
    Originator:	<andreast@gcc.gnu.org> 20051010	 */
 
 /* { dg-do run { xfail mips64*-*-* arm*-*-* strongarm*-*-* xscale*-*-* powerpc*-*-darwin* } } */
Index: testsuite/libffi.call/problem1.c
===================================================================
--- testsuite/libffi.call/problem1.c	(revision 111437)
+++ testsuite/libffi.call/problem1.c	(working copy)
@@ -27,7 +27,8 @@
   return result;
 }
 
-void stub(ffi_cif* cif, void* resp, void** args, void* userdata)
+void stub(ffi_cif* cif __attribute__ ((unused)), void* resp, void** args,
+	  void* userdata __attribute__ ((unused)))
 {
   struct my_ffi_struct a1;
   struct my_ffi_struct a2;
Index: testsuite/libffi.call/pyobjc-tc.c
===================================================================
--- testsuite/libffi.call/pyobjc-tc.c	(revision 111437)
+++ testsuite/libffi.call/pyobjc-tc.c	(working copy)
@@ -107,7 +107,7 @@
 
 	ffi_call(&cif, FFI_FN(doit), &result, values);
 
-	printf ("The result is %d\n", result);
+	printf ("The result is %d\n", (int)result);
 
 	}
 	exit(0);
Index: testsuite/libffi.call/return_fl2.c
===================================================================
--- testsuite/libffi.call/return_fl2.c	(revision 111437)
+++ testsuite/libffi.call/return_fl2.c	(working copy)
@@ -7,6 +7,9 @@
 /* { dg-do run } */
 #include "ffitest.h"
 
+/* To avoid a false negative on ix86 do not declare the return_fl static.
+   See PR323.
+*/
 float return_fl(float fl1, float fl2, float fl3, float fl4)
 {
   return fl1 + fl2 + fl3 + fl4;
Index: testsuite/libffi.special/unwindtest.cc
===================================================================
--- testsuite/libffi.special/unwindtest.cc	(revision 111437)
+++ testsuite/libffi.special/unwindtest.cc	(working copy)
@@ -8,15 +8,19 @@
 #include "ffitestcxx.h"
 
 void
-closure_test_fn(ffi_cif* cif, void* resp, void** args, void* userdata)
+closure_test_fn(ffi_cif* cif __attribute__ ((unused)),
+		void* resp __attribute__ ((unused)),
+		void** args __attribute__ ((unused)),
+		void* userdata __attribute__ ((unused)))
 {
   throw 9;
 }
 
 typedef void (*closure_test_type)();
 
-void closure_test_fn1(ffi_cif* cif,void* resp,void** args,
-			     void* userdata)
+void closure_test_fn1(ffi_cif* cif __attribute__ ((unused)), void* resp,
+		      void** args,
+		      void* userdata __attribute__ ((unused)))
  {
     *(ffi_arg*)resp =
       (int)*(float *)args[0] +(int)(*(float *)args[1]) +
@@ -54,7 +58,6 @@
 #endif
   ffi_closure *pcl;
   ffi_type * cl_arg_types[17];
-  int res;
 #ifdef USING_MMAP
   pcl = (ffi_closure *) allocate_mmap (sizeof(ffi_closure));
 #else

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [RFT] libffi testsuite cleanup warnings
  2006-02-25 22:22 [RFT] libffi testsuite cleanup warnings Andreas Tobler
@ 2006-02-27 12:30 ` Rainer Orth
  2006-02-27 18:18   ` Andreas Tobler
  2006-02-28 23:18   ` Andreas Tobler
  0 siblings, 2 replies; 5+ messages in thread
From: Rainer Orth @ 2006-02-27 12:30 UTC (permalink / raw)
  To: Andreas Tobler; +Cc: GCC Patches, Java Patches

Andreas Tobler <toa@pop.agri.ch> writes:

> 2006-02-25  Andreas Tobler  <a.tobler@schweiz.ch>
> 
> 	* testsuite/libffi.call/closure_fn0.c: Clean up warnings discovered by
> 	-W -Wall.

I think it would be much more useful to describe the actual changes here
instead of how you discovered that they are necessary/useful.

> [2 ffi_test_warn2.diff <text/plain>]
> Index: testsuite/libffi.call/closure_fn0.c
> ===================================================================
> --- testsuite/libffi.call/closure_fn0.c	(revision 111437)
> +++ testsuite/libffi.call/closure_fn0.c	(working copy)
> @@ -10,7 +10,8 @@
>  #include "ffitest.h"
>  
>  static void
> -closure_test_fn0(ffi_cif* cif,void* resp,void** args, void* userdata)
> +closure_test_fn0(ffi_cif* cif __attribute__ ((unused)), void* resp, void** args,
> +		 void* userdata)
>  {
>    *(ffi_arg*)resp =
>      (int)*(unsigned long long *)args[0] + (int)(*(int *)args[1]) +

It may be useful to use some macro that expands to __attribte__ ((unused))
when using GCC here instead of hardcoding it directly: libffi used to be
usable with non-GCC compilers (I think there's a PR open to restore this
ability in the GCC copy), and I'd appreciate if it remained that way (or at
least doesn't become less so if it's avoidable).

Thanks.
	Rainer

-- 
-----------------------------------------------------------------------------
Rainer Orth, Faculty of Technology, Bielefeld University

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [RFT] libffi testsuite cleanup warnings
  2006-02-27 12:30 ` Rainer Orth
@ 2006-02-27 18:18   ` Andreas Tobler
  2006-02-28 23:18   ` Andreas Tobler
  1 sibling, 0 replies; 5+ messages in thread
From: Andreas Tobler @ 2006-02-27 18:18 UTC (permalink / raw)
  To: Rainer Orth; +Cc: GCC Patches, Java Patches

Rainer Orth wrote:
> Andreas Tobler <toa@pop.agri.ch> writes:
> 
>> 2006-02-25  Andreas Tobler  <a.tobler@schweiz.ch>
>>
>> 	* testsuite/libffi.call/closure_fn0.c: Clean up warnings discovered by
>> 	-W -Wall.
> 
> I think it would be much more useful to describe the actual changes here
> instead of how you discovered that they are necessary/useful.

Well, I can do that. I was just lazy commenting most of my own bugs.
> 
>> [2 ffi_test_warn2.diff <text/plain>]
>> Index: testsuite/libffi.call/closure_fn0.c
>> ===================================================================
>> --- testsuite/libffi.call/closure_fn0.c	(revision 111437)
>> +++ testsuite/libffi.call/closure_fn0.c	(working copy)
>> @@ -10,7 +10,8 @@
>>  #include "ffitest.h"
>>  
>>  static void
>> -closure_test_fn0(ffi_cif* cif,void* resp,void** args, void* userdata)
>> +closure_test_fn0(ffi_cif* cif __attribute__ ((unused)), void* resp, void** args,
>> +		 void* userdata)
>>  {
>>    *(ffi_arg*)resp =
>>      (int)*(unsigned long long *)args[0] + (int)(*(int *)args[1]) +
> 
> It may be useful to use some macro that expands to __attribte__ ((unused))
> when using GCC here instead of hardcoding it directly: libffi used to be
> usable with non-GCC compilers (I think there's a PR open to restore this
> ability in the GCC copy), and I'd appreciate if it remained that way (or at
> least doesn't become less so if it's avoidable).

I was not aware of the fact that we can/should build libffi with non-GCC.
Sure I can add something like this:

#undef  __UNUSED__
#if defined(__GNUC__)
#define __UNUSED__ __attribute__((__unused__))
#else
#define __UNUSED__
#endif

Andreas

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [RFT] libffi testsuite cleanup warnings
  2006-02-27 12:30 ` Rainer Orth
  2006-02-27 18:18   ` Andreas Tobler
@ 2006-02-28 23:18   ` Andreas Tobler
  2006-03-01 11:10     ` Rainer Orth
  1 sibling, 1 reply; 5+ messages in thread
From: Andreas Tobler @ 2006-02-28 23:18 UTC (permalink / raw)
  To: Rainer Orth; +Cc: GCC Patches, Java Patches

[-- Attachment #1: Type: text/plain, Size: 7406 bytes --]

Rainer Orth wrote:
> Andreas Tobler <toa@pop.agri.ch> writes:
> 
>> 2006-02-25  Andreas Tobler  <a.tobler@schweiz.ch>
>>
>> 	* testsuite/libffi.call/closure_fn0.c: Clean up warnings discovered by
>> 	-W -Wall.
> 
> I think it would be much more useful to describe the actual changes here
> instead of how you discovered that they are necessary/useful.

Here is what I committed.
I hope you appreciate the CL.

Andreas

2006-03-01  Andreas Tobler  <a.tobler@schweiz.ch>

	* testsuite/libffi.special/unwindtest.cc (closure_test_fn): Mark cif,
	args and userdata unused.
	(closure_test_fn1): Mark cif and userdata unused.
	(main): Remove unused res.

2006-02-28  Andreas Tobler  <a.tobler@schweiz.ch>

	* testsuite/libffi.call/call.exp: Adjust FSF address. Add test runs for
	-O2, -O3, -Os and the warning flags -W -Wall.
	* testsuite/libffi.special/special.exp: Likewise.
	* testsuite/libffi.call/ffitest.h: Add an __UNUSED__ macro to mark
	unused parameter unused for gcc or else do nothing.
	* testsuite/libffi.special/ffitestcxx.h: Likewise.
	* testsuite/libffi.call/cls_12byte.c (cls_struct_12byte_gn): Mark cif
	and userdata unused.
	* testsuite/libffi.call/cls_16byte.c (cls_struct_16byte_gn): Likewise.
	* testsuite/libffi.call/cls_18byte.c (cls_struct_18byte_gn): Likewise.
	* testsuite/libffi.call/cls_19byte.c (cls_struct_19byte_gn): Likewise.
	* testsuite/libffi.call/cls_1_1byte.c (cls_struct_1_1byte_gn): Likewise.
	* testsuite/libffi.call/cls_20byte.c (cls_struct_20byte_gn): Likewise.
	* testsuite/libffi.call/cls_20byte1.c (cls_struct_20byte_gn): Likewise.
	* testsuite/libffi.call/cls_24byte.c (cls_struct_24byte_gn): Likewise.
	* testsuite/libffi.call/cls_2byte.c (cls_struct_2byte_gn): Likewise.
	* testsuite/libffi.call/cls_3_1byte.c (cls_struct_3_1byte_gn): Likewise.
	* testsuite/libffi.call/cls_3byte1.c (cls_struct_3byte_gn): Likewise.
	* testsuite/libffi.call/cls_3byte2.c (cls_struct_3byte_gn1): Likewise.
	* testsuite/libffi.call/cls_4_1byte.c (cls_struct_4_1byte_gn): Likewise.
	* testsuite/libffi.call/cls_4byte.c (cls_struct_4byte_gn): Likewise.
	* testsuite/libffi.call/cls_5_1_byte.c (cls_struct_5byte_gn): Likewise.
	* testsuite/libffi.call/cls_5byte.c (cls_struct_5byte_gn): Likewise.
	* testsuite/libffi.call/cls_64byte.c (cls_struct_64byte_gn): Likewise.
	* testsuite/libffi.call/cls_6_1_byte.c (cls_struct_6byte_gn): Likewise.
	* testsuite/libffi.call/cls_6byte.c (cls_struct_6byte_gn): Likewise.
	* testsuite/libffi.call/cls_7_1_byte.c (cls_struct_7byte_gn): Likewise.
	* testsuite/libffi.call/cls_7byte.c (cls_struct_7byte_gn): Likewise.
	* testsuite/libffi.call/cls_8byte.c (cls_struct_8byte_gn): Likewise.
	* testsuite/libffi.call/cls_9byte1.c (cls_struct_9byte_gn): Likewise.
	* testsuite/libffi.call/cls_9byte2.c (cls_struct_9byte_gn): Likewise.
	* testsuite/libffi.call/cls_align_double.c (cls_struct_align_gn):
	Likewise.
	* testsuite/libffi.call/cls_align_float.c (cls_struct_align_gn):
	Likewise.
	* testsuite/libffi.call/cls_align_longdouble.c (cls_struct_align_gn):
	Likewise.
	* testsuite/libffi.call/cls_align_pointer.c (cls_struct_align_fn): Cast
	void* to avoid compiler warning.
	(main): Likewise.
	(cls_struct_align_gn): Mark cif and userdata unused.
	* testsuite/libffi.call/cls_align_sint16.c (cls_struct_align_gn):
	Likewise.
	* testsuite/libffi.call/cls_align_sint32.c (cls_struct_align_gn):
	Likewise.
	* testsuite/libffi.call/cls_align_sint64.c (cls_struct_align_gn):
	Likewise.
	* testsuite/libffi.call/cls_align_uint16.c (cls_struct_align_gn):
	Likewise.
	* testsuite/libffi.call/cls_align_uint32.c (cls_struct_align_gn):
	Likewise.
	* testsuite/libffi.call/cls_double.c (cls_ret_double_fn): Likewise.
	* testsuite/libffi.call/cls_float.c (cls_ret_float_fn): Likewise.
	* testsuite/libffi.call/cls_multi_schar.c (test_func_gn): Mark cif and
	data unused.
	(main): Cast res_call to silence gcc.
	* testsuite/libffi.call/cls_multi_sshort.c (test_func_gn): Mark cif and
	data unused.
	(main): Cast res_call to silence gcc.
	* testsuite/libffi.call/cls_multi_sshortchar.c (test_func_gn): Mark cif
	and data unused.
	(main): Cast res_call to silence gcc.
	* testsuite/libffi.call/cls_multi_uchar.c (test_func_gn): Mark cif and
	data unused.
	(main): Cast res_call to silence gcc.
	* testsuite/libffi.call/cls_multi_ushort.c (test_func_gn): Mark cif and
	data unused.
	(main): Cast res_call to silence gcc.
	* testsuite/libffi.call/cls_multi_ushortchar.c (test_func_gn): Mark cif
	and data unused.
	(main): Cast res_call to silence gcc.
	* testsuite/libffi.call/cls_schar.c (cls_ret_schar_fn): Mark cif and
	userdata unused.
	(cls_ret_schar_fn): Cast printf parameter to silence gcc.
	* testsuite/libffi.call/cls_sint.c (cls_ret_sint_fn): Mark cif and
	userdata unused.
	(cls_ret_sint_fn): Cast printf parameter to silence gcc.
	* testsuite/libffi.call/cls_sshort.c (cls_ret_sshort_fn): Mark cif and
	userdata unused.
	(cls_ret_sshort_fn): Cast printf parameter to silence gcc.
	* testsuite/libffi.call/cls_uchar.c (cls_ret_uchar_fn):  Mark cif and
	userdata unused.
	(cls_ret_uchar_fn): Cast printf parameter to silence gcc.
	* testsuite/libffi.call/cls_uint.c (cls_ret_uint_fn): Mark cif and
	userdata unused.
	(cls_ret_uint_fn): Cast printf parameter to silence gcc.
	* testsuite/libffi.call/cls_ulonglong.c (cls_ret_ulonglong_fn): Mark cif
	and userdata unused.
	* testsuite/libffi.call/cls_ushort.c (cls_ret_ushort_fn): Mark cif and
	userdata unused.
	(cls_ret_ushort_fn): Cast printf parameter to silence gcc.
	* testsuite/libffi.call/float.c (floating): Remove unused parameter e.
	* testsuite/libffi.call/float1.c (main): Remove unused variable i.
	Cleanup white spaces.
	* testsuite/libffi.call/negint.c (checking): Remove unused variable i.
	* testsuite/libffi.call/nested_struct.c (cls_struct_combined_gn): Mark
	cif and userdata unused.
	* testsuite/libffi.call/nested_struct1.c (cls_struct_combined_gn):
	Likewise.
	* testsuite/libffi.call/nested_struct10.c (B_gn): Likewise.
	* testsuite/libffi.call/nested_struct2.c (B_fn): Adjust printf
	formatters to silence gcc.
	(B_gn): Mark cif and userdata unused.
	* testsuite/libffi.call/nested_struct3.c (B_gn): Mark cif and userdata
	unused.
	* testsuite/libffi.call/nested_struct4.c: Mention related PR.
	(B_gn): Mark cif and userdata unused.
	* testsuite/libffi.call/nested_struct5.c (B_gn): Mark cif and userdata
	unused.
	* testsuite/libffi.call/nested_struct6.c: Mention related PR.
	(B_gn): Mark cif and userdata unused.
	* testsuite/libffi.call/nested_struct7.c (B_gn): Mark cif and userdata
	unused.
	* testsuite/libffi.call/nested_struct8.c (B_gn): Likewise.
	* testsuite/libffi.call/nested_struct9.c (B_gn): Likewise.
	* testsuite/libffi.call/problem1.c (stub): Likewise.
	* testsuite/libffi.call/pyobjc-tc.c (main): Cast the result to silence
	gcc.
	* testsuite/libffi.call/return_fl2.c (return_fl): Add the note mentioned
	in the last commit for this test case in the test case itself.
	* testsuite/libffi.call/closure_fn0.c (closure_test_fn0): Mark cif as
	unused.
	* testsuite/libffi.call/closure_fn1.c (closure_test_fn1): Likewise.
	* testsuite/libffi.call/closure_fn2.c (closure_test_fn2): Likewise.
	* testsuite/libffi.call/closure_fn3.c (closure_test_fn3): Likewise.
	* testsuite/libffi.call/closure_fn4.c (closure_test_fn0): Likewise.
	* testsuite/libffi.call/closure_fn5.c (closure_test_fn5): Likewise.
	* testsuite/libffi.call/closure_fn6.c (closure_test_fn0): Likewise.

[-- Attachment #2: ffi_ts_cleanup_orth1.diff --]
[-- Type: text/plain, Size: 46101 bytes --]

Index: testsuite/libffi.call/call.exp
===================================================================
--- testsuite/libffi.call/call.exp	(revision 111581)
+++ testsuite/libffi.call/call.exp	(working copy)
@@ -1,18 +1,18 @@
-#   Copyright (C) 2003 Free Software Foundation, Inc.
+# Copyright (C) 2003, 2006 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
 # the Free Software Foundation; either version 2 of the License, or
 # (at your option) any later version.
-# 
+#
 # This program is distributed in the hope that it will be useful,
 # but WITHOUT ANY WARRANTY; without even the implied warranty of
 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 # GNU General Public License for more details.
-# 
+#
 # You should have received a copy of the GNU General Public License
 # along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
 
 # libffi testsuite that uses the 'dg.exp' driver.
 
@@ -23,7 +23,10 @@
 
 global srcdir subdir
 
-dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/*.\[cS\]]] "" "" 
+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-finish
 
Index: testsuite/libffi.call/ffitest.h
===================================================================
--- testsuite/libffi.call/ffitest.h	(revision 111581)
+++ testsuite/libffi.call/ffitest.h	(working copy)
@@ -20,6 +20,14 @@
 #endif
 #endif
 
+/* Define __UNUSED__ that also other compilers than gcc can run the tests.  */
+#undef __UNUSED__
+#if defined(__GNUC__)
+#define __UNUSED__ __attribute__((__unused__))
+#else
+#define __UNUSED__
+#endif
+
 /* Prefer MAP_ANON(YMOUS) to /dev/zero, since we don't need to keep a
    file open.  */
 #ifdef HAVE_MMAP_ANON
Index: testsuite/libffi.call/cls_12byte.c
===================================================================
--- testsuite/libffi.call/cls_12byte.c	(revision 111581)
+++ testsuite/libffi.call/cls_12byte.c	(working copy)
@@ -28,7 +28,8 @@
   return result;
 }
 
-static void cls_struct_12byte_gn(ffi_cif* cif, void* resp, void** args, void* userdata)
+static void cls_struct_12byte_gn(ffi_cif* cif __UNUSED__, void* resp,
+				 void** args , void* userdata __UNUSED__)
 {
   struct cls_struct_12byte b1, b2;
 
Index: testsuite/libffi.call/cls_16byte.c
===================================================================
--- testsuite/libffi.call/cls_16byte.c	(revision 111581)
+++ testsuite/libffi.call/cls_16byte.c	(working copy)
@@ -29,7 +29,8 @@
   return result;
 }
 
-static void cls_struct_16byte_gn(ffi_cif* cif, void* resp, void** args, void* userdata)
+static void cls_struct_16byte_gn(ffi_cif* cif __UNUSED__, void* resp,
+				 void** args, void* userdata __UNUSED__)
 {
   struct cls_struct_16byte b1, b2;
 
Index: testsuite/libffi.call/cls_18byte.c
===================================================================
--- testsuite/libffi.call/cls_18byte.c	(revision 111581)
+++ testsuite/libffi.call/cls_18byte.c	(working copy)
@@ -33,7 +33,8 @@
 }
 
 static void
-cls_struct_18byte_gn(ffi_cif* cif, void* resp, void** args, void* userdata)
+cls_struct_18byte_gn(ffi_cif* cif __UNUSED__, void* resp, void** args,
+		     void* userdata __UNUSED__)
 {
   struct cls_struct_18byte a1, a2;
 
Index: testsuite/libffi.call/cls_19byte.c
===================================================================
--- testsuite/libffi.call/cls_19byte.c	(revision 111581)
+++ testsuite/libffi.call/cls_19byte.c	(working copy)
@@ -36,7 +36,8 @@
 }
 
 static void
-cls_struct_19byte_gn(ffi_cif* cif, void* resp, void** args, void* userdata)
+cls_struct_19byte_gn(ffi_cif* cif __UNUSED__, void* resp, void** args,
+		     void* userdata __UNUSED__)
 {
   struct cls_struct_19byte a1, a2;
 
Index: testsuite/libffi.call/cls_1_1byte.c
===================================================================
--- testsuite/libffi.call/cls_1_1byte.c	(revision 111581)
+++ testsuite/libffi.call/cls_1_1byte.c	(working copy)
@@ -26,7 +26,8 @@
 }
 
 static void
-cls_struct_1_1byte_gn(ffi_cif* cif, void* resp, void** args, void* userdata)
+cls_struct_1_1byte_gn(ffi_cif* cif __UNUSED__, void* resp, void** args,
+		      void* userdata __UNUSED__)
 {
 
   struct cls_struct_1_1byte a1, a2;
Index: testsuite/libffi.call/cls_20byte.c
===================================================================
--- testsuite/libffi.call/cls_20byte.c	(revision 111581)
+++ testsuite/libffi.call/cls_20byte.c	(working copy)
@@ -29,7 +29,8 @@
 }
 
 static void
-cls_struct_20byte_gn(ffi_cif* cif, void* resp, void** args, void* userdata)
+cls_struct_20byte_gn(ffi_cif* cif __UNUSED__, void* resp, void** args,
+		     void* userdata __UNUSED__)
 {
   struct cls_struct_20byte a1, a2;
 
Index: testsuite/libffi.call/cls_20byte1.c
===================================================================
--- testsuite/libffi.call/cls_20byte1.c	(revision 111581)
+++ testsuite/libffi.call/cls_20byte1.c	(working copy)
@@ -29,7 +29,8 @@
 }
 
 static void
-cls_struct_20byte_gn(ffi_cif* cif, void* resp, void** args, void* userdata)
+cls_struct_20byte_gn(ffi_cif* cif __UNUSED__, void* resp, void** args,
+		     void* userdata __UNUSED__)
 {
   struct cls_struct_20byte a1, a2;
 
Index: testsuite/libffi.call/cls_24byte.c
===================================================================
--- testsuite/libffi.call/cls_24byte.c	(revision 111581)
+++ testsuite/libffi.call/cls_24byte.c	(working copy)
@@ -38,7 +38,8 @@
 }
 
 static void
-cls_struct_24byte_gn(ffi_cif* cif, void* resp, void** args, void* userdata)
+cls_struct_24byte_gn(ffi_cif* cif __UNUSED__, void* resp, void** args,
+		     void* userdata __UNUSED__)
 {
   struct cls_struct_24byte b0, b1, b2, b3;
 
Index: testsuite/libffi.call/cls_2byte.c
===================================================================
--- testsuite/libffi.call/cls_2byte.c	(revision 111581)
+++ testsuite/libffi.call/cls_2byte.c	(working copy)
@@ -28,7 +28,8 @@
 }
 
 static void
-cls_struct_2byte_gn(ffi_cif* cif, void* resp, void** args, void* userdata)
+cls_struct_2byte_gn(ffi_cif* cif __UNUSED__, void* resp, void** args,
+		    void* userdata __UNUSED__)
 {
 
   struct cls_struct_2byte a1, a2;
Index: testsuite/libffi.call/cls_3_1byte.c
===================================================================
--- testsuite/libffi.call/cls_3_1byte.c	(revision 111581)
+++ testsuite/libffi.call/cls_3_1byte.c	(working copy)
@@ -32,7 +32,8 @@
 }
 
 static void
-cls_struct_3_1byte_gn(ffi_cif* cif, void* resp, void** args, void* userdata)
+cls_struct_3_1byte_gn(ffi_cif* cif __UNUSED__, void* resp, void** args,
+		      void* userdata __UNUSED__)
 {
 
   struct cls_struct_3_1byte a1, a2;
Index: testsuite/libffi.call/cls_3byte1.c
===================================================================
--- testsuite/libffi.call/cls_3byte1.c	(revision 111581)
+++ testsuite/libffi.call/cls_3byte1.c	(working copy)
@@ -28,7 +28,8 @@
 }
 
 static void
-cls_struct_3byte_gn(ffi_cif* cif, void* resp, void** args, void* userdata)
+cls_struct_3byte_gn(ffi_cif* cif __UNUSED__, void* resp, void** args,
+		    void* userdata __UNUSED__)
 {
 
   struct cls_struct_3byte a1, a2;
Index: testsuite/libffi.call/cls_3byte2.c
===================================================================
--- testsuite/libffi.call/cls_3byte2.c	(revision 111581)
+++ testsuite/libffi.call/cls_3byte2.c	(working copy)
@@ -28,7 +28,8 @@
 }
 
 static void
-cls_struct_3byte_gn1(ffi_cif* cif, void* resp, void** args, void* userdata)
+cls_struct_3byte_gn1(ffi_cif* cif __UNUSED__, void* resp, void** args,
+		     void* userdata __UNUSED__)
 {
 
   struct cls_struct_3byte_1 a1, a2;
Index: testsuite/libffi.call/cls_4_1byte.c
===================================================================
--- testsuite/libffi.call/cls_4_1byte.c	(revision 111581)
+++ testsuite/libffi.call/cls_4_1byte.c	(working copy)
@@ -34,7 +34,8 @@
 }
 
 static void
-cls_struct_4_1byte_gn(ffi_cif* cif, void* resp, void** args, void* userdata)
+cls_struct_4_1byte_gn(ffi_cif* cif __UNUSED__, void* resp, void** args,
+		      void* userdata __UNUSED__)
 {
 
   struct cls_struct_4_1byte a1, a2;
Index: testsuite/libffi.call/cls_4byte.c
===================================================================
--- testsuite/libffi.call/cls_4byte.c	(revision 111581)
+++ testsuite/libffi.call/cls_4byte.c	(working copy)
@@ -28,7 +28,8 @@
 }
 
 static void
-cls_struct_4byte_gn(ffi_cif* cif, void* resp, void** args, void* userdata)
+cls_struct_4byte_gn(ffi_cif* cif __UNUSED__, void* resp, void** args,
+		    void* userdata __UNUSED__)
 {
 
   struct cls_struct_4byte a1, a2;
Index: testsuite/libffi.call/cls_5_1_byte.c
===================================================================
--- testsuite/libffi.call/cls_5_1_byte.c	(revision 111581)
+++ testsuite/libffi.call/cls_5_1_byte.c	(working copy)
@@ -36,7 +36,8 @@
 }
 
 static void
-cls_struct_5byte_gn(ffi_cif* cif, void* resp, void** args, void* userdata)
+cls_struct_5byte_gn(ffi_cif* cif __UNUSED__, void* resp, void** args,
+		    void* userdata __UNUSED__)
 {
 
   struct cls_struct_5byte a1, a2;
Index: testsuite/libffi.call/cls_5byte.c
===================================================================
--- testsuite/libffi.call/cls_5byte.c	(revision 111581)
+++ testsuite/libffi.call/cls_5byte.c	(working copy)
@@ -31,7 +31,8 @@
 }
 
 static void
-cls_struct_5byte_gn(ffi_cif* cif, void* resp, void** args, void* userdata)
+cls_struct_5byte_gn(ffi_cif* cif __UNUSED__, void* resp, void** args,
+		    void* userdata __UNUSED__)
 {
 
   struct cls_struct_5byte a1, a2;
Index: testsuite/libffi.call/cls_64byte.c
===================================================================
--- testsuite/libffi.call/cls_64byte.c	(revision 111581)
+++ testsuite/libffi.call/cls_64byte.c	(working copy)
@@ -43,7 +43,8 @@
 }
 
 static void
-cls_struct_64byte_gn(ffi_cif* cif, void* resp, void** args, void* userdata)
+cls_struct_64byte_gn(ffi_cif* cif __UNUSED__, void* resp, void** args,
+		     void* userdata __UNUSED__)
 {
   struct cls_struct_64byte b0, b1, b2, b3;
 
Index: testsuite/libffi.call/cls_6_1_byte.c
===================================================================
--- testsuite/libffi.call/cls_6_1_byte.c	(revision 111581)
+++ testsuite/libffi.call/cls_6_1_byte.c	(working copy)
@@ -38,7 +38,8 @@
 }
 
 static void
-cls_struct_6byte_gn(ffi_cif* cif, void* resp, void** args, void* userdata)
+cls_struct_6byte_gn(ffi_cif* cif __UNUSED__, void* resp, void** args,
+		    void* userdata __UNUSED__)
 {
 
   struct cls_struct_6byte a1, a2;
Index: testsuite/libffi.call/cls_6byte.c
===================================================================
--- testsuite/libffi.call/cls_6byte.c	(revision 111581)
+++ testsuite/libffi.call/cls_6byte.c	(working copy)
@@ -33,7 +33,8 @@
 }
 
 static void
-cls_struct_6byte_gn(ffi_cif* cif, void* resp, void** args, void* userdata)
+cls_struct_6byte_gn(ffi_cif* cif __UNUSED__, void* resp, void** args,
+		    void* userdata __UNUSED__)
 {
 
   struct cls_struct_6byte a1, a2;
Index: testsuite/libffi.call/cls_7_1_byte.c
===================================================================
--- testsuite/libffi.call/cls_7_1_byte.c	(revision 111581)
+++ testsuite/libffi.call/cls_7_1_byte.c	(working copy)
@@ -40,7 +40,8 @@
 }
 
 static void
-cls_struct_7byte_gn(ffi_cif* cif, void* resp, void** args, void* userdata)
+cls_struct_7byte_gn(ffi_cif* cif __UNUSED__, void* resp, void** args,
+		    void* userdata __UNUSED__)
 {
 
   struct cls_struct_7byte a1, a2;
Index: testsuite/libffi.call/cls_7byte.c
===================================================================
--- testsuite/libffi.call/cls_7byte.c	(revision 111581)
+++ testsuite/libffi.call/cls_7byte.c	(working copy)
@@ -33,7 +33,8 @@
 }
 
 static void
-cls_struct_7byte_gn(ffi_cif* cif, void* resp, void** args, void* userdata)
+cls_struct_7byte_gn(ffi_cif* cif __UNUSED__, void* resp, void** args,
+		    void* userdata __UNUSED__)
 {
 
   struct cls_struct_7byte a1, a2;
Index: testsuite/libffi.call/cls_8byte.c
===================================================================
--- testsuite/libffi.call/cls_8byte.c	(revision 111581)
+++ testsuite/libffi.call/cls_8byte.c	(working copy)
@@ -27,7 +27,8 @@
 }
 
 static void
-cls_struct_8byte_gn(ffi_cif* cif, void* resp, void** args, void* userdata)
+cls_struct_8byte_gn(ffi_cif* cif __UNUSED__, void* resp, void** args,
+		    void* userdata __UNUSED__)
 {
 
   struct cls_struct_8byte a1, a2;
Index: testsuite/libffi.call/cls_9byte1.c
===================================================================
--- testsuite/libffi.call/cls_9byte1.c	(revision 111581)
+++ testsuite/libffi.call/cls_9byte1.c	(working copy)
@@ -29,8 +29,8 @@
   return result;
 }
 
-static void cls_struct_9byte_gn(ffi_cif* cif, void* resp, void** args,
-				void* userdata)
+static void cls_struct_9byte_gn(ffi_cif* cif __UNUSED__, void* resp,
+				void** args, void* userdata __UNUSED__)
 {
   struct cls_struct_9byte b1, b2;
 
Index: testsuite/libffi.call/cls_9byte2.c
===================================================================
--- testsuite/libffi.call/cls_9byte2.c	(revision 111581)
+++ testsuite/libffi.call/cls_9byte2.c	(working copy)
@@ -29,8 +29,8 @@
   return result;
 }
 
-static void cls_struct_9byte_gn(ffi_cif* cif, void* resp, void** args,
-				void* userdata)
+static void cls_struct_9byte_gn(ffi_cif* cif __UNUSED__, void* resp,
+				void** args, void* userdata __UNUSED__)
 {
   struct cls_struct_9byte b1, b2;
 
Index: testsuite/libffi.call/cls_align_double.c
===================================================================
--- testsuite/libffi.call/cls_align_double.c	(revision 111581)
+++ testsuite/libffi.call/cls_align_double.c	(working copy)
@@ -28,7 +28,8 @@
 }
 
 static void
-cls_struct_align_gn(ffi_cif* cif, void* resp, void** args, void* userdata)
+cls_struct_align_gn(ffi_cif* cif __UNUSED__, void* resp, void** args,
+		    void* userdata __UNUSED__)
 {
 
   struct cls_struct_align a1, a2;
Index: testsuite/libffi.call/cls_align_float.c
===================================================================
--- testsuite/libffi.call/cls_align_float.c	(revision 111581)
+++ testsuite/libffi.call/cls_align_float.c	(working copy)
@@ -28,7 +28,8 @@
 }
 
 static void
-cls_struct_align_gn(ffi_cif* cif, void* resp, void** args, void* userdata)
+cls_struct_align_gn(ffi_cif* cif __UNUSED__, void* resp, void** args,
+		    void* userdata __UNUSED__)
 {
 
   struct cls_struct_align a1, a2;
Index: testsuite/libffi.call/cls_align_longdouble.c
===================================================================
--- testsuite/libffi.call/cls_align_longdouble.c	(revision 111581)
+++ testsuite/libffi.call/cls_align_longdouble.c	(working copy)
@@ -29,7 +29,8 @@
 }
 
 static void
-cls_struct_align_gn(ffi_cif* cif, void* resp, void** args, void* userdata)
+cls_struct_align_gn(ffi_cif* cif __UNUSED__, void* resp, void** args,
+		    void* userdata __UNUSED__)
 {
 
   struct cls_struct_align a1, a2;
Index: testsuite/libffi.call/cls_align_pointer.c
===================================================================
--- testsuite/libffi.call/cls_align_pointer.c	(revision 111581)
+++ testsuite/libffi.call/cls_align_pointer.c	(working copy)
@@ -19,16 +19,19 @@
   struct cls_struct_align result;
 
   result.a = a1.a + a2.a;
-  result.b = (void *)((size_t)a1.b + (size_t)a2.b);
+  result.b = (void *)((unsigned long)a1.b + (unsigned long)a2.b);
   result.c = a1.c + a2.c;
 
-  printf("%d %d %d %d %d %d: %d %d %d\n", a1.a, (size_t)a1.b, a1.c, a2.a, (size_t)a2.b, a2.c, result.a, (size_t)result.b, result.c);
+  printf("%d %lu %d %d %lu %d: %d %lu %d\n", a1.a, (unsigned long)a1.b, a1.c,
+	 a2.a, (unsigned long)a2.b, a2.c, result.a, (unsigned long)result.b,
+	 result.c);
 
-  return  result;
+  return result;
 }
 
 static void
-cls_struct_align_gn(ffi_cif* cif, void* resp, void** args, void* userdata)
+cls_struct_align_gn(ffi_cif* cif __UNUSED__, void* resp, void** args,
+		    void* userdata __UNUSED__)
 {
 
   struct cls_struct_align a1, a2;
@@ -84,14 +87,14 @@
 
   ffi_call(&cif, FFI_FN(cls_struct_align_fn), &res_dbl, args_dbl);
   /* { dg-output "12 4951 127 1 9320 13: 13 14271 140" } */
-  printf("res: %d %d %d\n", res_dbl.a, (size_t)res_dbl.b, res_dbl.c);
+  printf("res: %d %lu %d\n", res_dbl.a, (unsigned long)res_dbl.b, res_dbl.c);
   /* { dg-output "\nres: 13 14271 140" } */
 
   CHECK(ffi_prep_closure(pcl, &cif, cls_struct_align_gn, NULL) == FFI_OK);
 
   res_dbl = ((cls_struct_align(*)(cls_struct_align, cls_struct_align))(pcl))(g_dbl, f_dbl);
   /* { dg-output "\n12 4951 127 1 9320 13: 13 14271 140" } */
-  printf("res: %d %d %d\n", res_dbl.a, (size_t)res_dbl.b, res_dbl.c);
+  printf("res: %d %lu %d\n", res_dbl.a, (unsigned long)res_dbl.b, res_dbl.c);
   /* { dg-output "\nres: 13 14271 140" } */
 
   exit(0);
Index: testsuite/libffi.call/cls_align_sint16.c
===================================================================
--- testsuite/libffi.call/cls_align_sint16.c	(revision 111581)
+++ testsuite/libffi.call/cls_align_sint16.c	(working copy)
@@ -28,7 +28,8 @@
 }
 
 static void
-cls_struct_align_gn(ffi_cif* cif, void* resp, void** args, void* userdata)
+cls_struct_align_gn(ffi_cif* cif __UNUSED__, void* resp, void** args,
+		    void* userdata __UNUSED__)
 {
 
   struct cls_struct_align a1, a2;
Index: testsuite/libffi.call/cls_align_sint32.c
===================================================================
--- testsuite/libffi.call/cls_align_sint32.c	(revision 111581)
+++ testsuite/libffi.call/cls_align_sint32.c	(working copy)
@@ -28,7 +28,8 @@
 }
 
 static void
-cls_struct_align_gn(ffi_cif* cif, void* resp, void** args, void* userdata)
+cls_struct_align_gn(ffi_cif* cif __UNUSED__, void* resp, void** args,
+		    void* userdata __UNUSED__)
 {
 
   struct cls_struct_align a1, a2;
Index: testsuite/libffi.call/cls_align_sint64.c
===================================================================
--- testsuite/libffi.call/cls_align_sint64.c	(revision 111581)
+++ testsuite/libffi.call/cls_align_sint64.c	(working copy)
@@ -28,7 +28,8 @@
 }
 
 static void
-cls_struct_align_gn(ffi_cif* cif, void* resp, void** args, void* userdata)
+cls_struct_align_gn(ffi_cif* cif __UNUSED__, void* resp, void** args,
+		    void* userdata __UNUSED__)
 {
 
   struct cls_struct_align a1, a2;
Index: testsuite/libffi.call/cls_align_uint16.c
===================================================================
--- testsuite/libffi.call/cls_align_uint16.c	(revision 111581)
+++ testsuite/libffi.call/cls_align_uint16.c	(working copy)
@@ -28,7 +28,8 @@
 }
 
 static void
-cls_struct_align_gn(ffi_cif* cif, void* resp, void** args, void* userdata)
+cls_struct_align_gn(ffi_cif* cif __UNUSED__, void* resp, void** args,
+		    void* userdata __UNUSED__)
 {
 
   struct cls_struct_align a1, a2;
Index: testsuite/libffi.call/cls_align_uint32.c
===================================================================
--- testsuite/libffi.call/cls_align_uint32.c	(revision 111581)
+++ testsuite/libffi.call/cls_align_uint32.c	(working copy)
@@ -28,7 +28,8 @@
 }
 
 static void
-cls_struct_align_gn(ffi_cif* cif, void* resp, void** args, void* userdata)
+cls_struct_align_gn(ffi_cif* cif __UNUSED__, void* resp, void** args,
+		    void* userdata __UNUSED__)
 {
 
   struct cls_struct_align a1, a2;
Index: testsuite/libffi.call/cls_double.c
===================================================================
--- testsuite/libffi.call/cls_double.c	(revision 111581)
+++ testsuite/libffi.call/cls_double.c	(working copy)
@@ -7,8 +7,8 @@
 /* { dg-do run { xfail mips64*-*-* arm*-*-* strongarm*-*-* xscale*-*-* } } */
 #include "ffitest.h"
 
-static void cls_ret_double_fn(ffi_cif* cif,void* resp,void** args,
-			     void* userdata)
+static void cls_ret_double_fn(ffi_cif* cif __UNUSED__, void* resp, void** args,
+			      void* userdata __UNUSED__)
  {
    *(double *)resp = *(double *)args[0];
 
Index: testsuite/libffi.call/cls_float.c
===================================================================
--- testsuite/libffi.call/cls_float.c	(revision 111581)
+++ testsuite/libffi.call/cls_float.c	(working copy)
@@ -7,8 +7,8 @@
 /* { dg-do run { xfail mips64*-*-* arm*-*-* strongarm*-*-* xscale*-*-* } } */
 #include "ffitest.h"
 
-static void cls_ret_float_fn(ffi_cif* cif,void* resp,void** args,
-			     void* userdata)
+static void cls_ret_float_fn(ffi_cif* cif __UNUSED__, void* resp, void** args,
+			     void* userdata __UNUSED__)
  {
    *(float *)resp = *(float *)args[0];
 
Index: testsuite/libffi.call/cls_multi_schar.c
===================================================================
--- testsuite/libffi.call/cls_multi_schar.c	(revision 111581)
+++ testsuite/libffi.call/cls_multi_schar.c	(working copy)
@@ -19,7 +19,8 @@
 
 }
 
-static void test_func_gn(ffi_cif *cif, void *rval, void **avals, void *data)
+static void test_func_gn(ffi_cif *cif __UNUSED__, void *rval, void **avals,
+			 void *data __UNUSED__)
 {
   signed char a1, a2;
 
@@ -67,7 +68,7 @@
 
   ffi_call(&cif, FFI_FN(test_func_fn), &res_call, args_dbl);
   /* { dg-output "2 125: 127" } */
-  printf("res: %d\n", res_call);
+  printf("res: %d\n", (signed char)res_call);
   /* { dg-output "\nres: 127" } */
 
   CHECK(ffi_prep_closure(pcl, &cif, test_func_gn, NULL)  == FFI_OK);
Index: testsuite/libffi.call/cls_multi_sshort.c
===================================================================
--- testsuite/libffi.call/cls_multi_sshort.c	(revision 111581)
+++ testsuite/libffi.call/cls_multi_sshort.c	(working copy)
@@ -19,7 +19,8 @@
 
 }
 
-static void test_func_gn(ffi_cif *cif, void *rval, void **avals, void *data)
+static void test_func_gn(ffi_cif *cif __UNUSED__, void *rval, void **avals,
+			 void *data __UNUSED__)
 {
   signed short a1, a2;
 
@@ -67,7 +68,7 @@
 
   ffi_call(&cif, FFI_FN(test_func_fn), &res_call, args_dbl);
   /* { dg-output "2 32765: 32767" } */
-  printf("res: %d\n", res_call);
+  printf("res: %d\n", (unsigned short)res_call);
   /* { dg-output "\nres: 32767" } */
 
   CHECK(ffi_prep_closure(pcl, &cif, test_func_gn, NULL)  == FFI_OK);
Index: testsuite/libffi.call/cls_multi_sshortchar.c
===================================================================
--- testsuite/libffi.call/cls_multi_sshortchar.c	(revision 111581)
+++ testsuite/libffi.call/cls_multi_sshortchar.c	(working copy)
@@ -20,7 +20,8 @@
 
 }
 
-static void test_func_gn(ffi_cif *cif, void *rval, void **avals, void *data)
+static void test_func_gn(ffi_cif *cif __UNUSED__, void *rval, void **avals,
+			 void *data __UNUSED__)
 {
   signed char a1, a3;
   signed short a2, a4;
@@ -79,7 +80,7 @@
 
   ffi_call(&cif, FFI_FN(test_func_fn), &res_call, args_dbl);
   /* { dg-output "1 32765 127 -128: 32765" } */
-  printf("res: %d\n", res_call);
+  printf("res: %d\n", (signed short)res_call);
   /* { dg-output "\nres: 32765" } */
 
   CHECK(ffi_prep_closure(pcl, &cif, test_func_gn, NULL)  == FFI_OK);
Index: testsuite/libffi.call/cls_multi_uchar.c
===================================================================
--- testsuite/libffi.call/cls_multi_uchar.c	(revision 111581)
+++ testsuite/libffi.call/cls_multi_uchar.c	(working copy)
@@ -20,7 +20,8 @@
 
 }
 
-static void test_func_gn(ffi_cif *cif, void *rval, void **avals, void *data)
+static void test_func_gn(ffi_cif *cif __UNUSED__, void *rval, void **avals,
+			 void *data __UNUSED__)
 {
   unsigned char a1, a2, a3, a4;
 
@@ -35,7 +36,9 @@
 
 typedef unsigned char (*test_type)(unsigned char, unsigned char,
 				   unsigned char, unsigned char);
-void test_func(ffi_cif *cif, void *rval, void **avals, void *data)
+
+void test_func(ffi_cif *cif __UNUSED__, void *rval __UNUSED__, void **avals,
+	       void *data __UNUSED__)
 {
   printf("%d %d %d %d\n", *(unsigned char *)avals[0],
 	 *(unsigned char *)avals[1], *(unsigned char *)avals[2],
@@ -82,7 +85,7 @@
 
   ffi_call(&cif, FFI_FN(test_func_fn), &res_call, args_dbl);
   /* { dg-output "1 2 127 125: 255" } */
-  printf("res: %d\n", res_call);
+  printf("res: %d\n", (unsigned char)res_call);
   /* { dg-output "\nres: 255" } */
 
   CHECK(ffi_prep_closure(pcl, &cif, test_func_gn, NULL)  == FFI_OK);
Index: testsuite/libffi.call/cls_multi_ushort.c
===================================================================
--- testsuite/libffi.call/cls_multi_ushort.c	(revision 111581)
+++ testsuite/libffi.call/cls_multi_ushort.c	(working copy)
@@ -19,7 +19,8 @@
 
 }
 
-static void test_func_gn(ffi_cif *cif, void *rval, void **avals, void *data)
+static void test_func_gn(ffi_cif *cif __UNUSED__, void *rval, void **avals,
+			 void *data __UNUSED__)
 {
   unsigned short a1, a2;
 
@@ -67,7 +68,7 @@
 
   ffi_call(&cif, FFI_FN(test_func_fn), &res_call, args_dbl);
   /* { dg-output "2 32765: 32767" } */
-  printf("res: %d\n", res_call);
+  printf("res: %d\n", (unsigned short)res_call);
   /* { dg-output "\nres: 32767" } */
 
   CHECK(ffi_prep_closure(pcl, &cif, test_func_gn, NULL)  == FFI_OK);
Index: testsuite/libffi.call/cls_multi_ushortchar.c
===================================================================
--- testsuite/libffi.call/cls_multi_ushortchar.c	(revision 111581)
+++ testsuite/libffi.call/cls_multi_ushortchar.c	(working copy)
@@ -20,7 +20,8 @@
 
 }
 
-static void test_func_gn(ffi_cif *cif, void *rval, void **avals, void *data)
+static void test_func_gn(ffi_cif *cif __UNUSED__, void *rval, void **avals,
+			 void *data __UNUSED__)
 {
   unsigned char a1, a3;
   unsigned short a2, a4;
@@ -79,7 +80,7 @@
 
   ffi_call(&cif, FFI_FN(test_func_fn), &res_call, args_dbl);
   /* { dg-output "1 2 127 128: 258" } */
-  printf("res: %d\n", res_call);
+  printf("res: %d\n", (unsigned short)res_call);
   /* { dg-output "\nres: 258" } */
 
   CHECK(ffi_prep_closure(pcl, &cif, test_func_gn, NULL)  == FFI_OK);
Index: testsuite/libffi.call/cls_schar.c
===================================================================
--- testsuite/libffi.call/cls_schar.c	(revision 111581)
+++ testsuite/libffi.call/cls_schar.c	(working copy)
@@ -7,12 +7,12 @@
 /* { dg-do run { xfail mips64*-*-* arm*-*-* strongarm*-*-* xscale*-*-* } } */
 #include "ffitest.h"
 
-static void cls_ret_schar_fn(ffi_cif* cif,void* resp,void** args,
-			     void* userdata)
+static void cls_ret_schar_fn(ffi_cif* cif __UNUSED__, void* resp, void** args,
+			     void* userdata __UNUSED__)
 {
   *(ffi_arg*)resp = *(signed char *)args[0];
   printf("%d: %d\n",*(signed char *)args[0],
-	 *(ffi_arg*)resp);
+	 (int)*(ffi_arg *)(resp));
 }
 typedef signed char (*cls_ret_schar)(signed char);
 
Index: testsuite/libffi.call/cls_sint.c
===================================================================
--- testsuite/libffi.call/cls_sint.c	(revision 111581)
+++ testsuite/libffi.call/cls_sint.c	(working copy)
@@ -7,12 +7,12 @@
 /* { dg-do run { xfail mips64*-*-* arm*-*-* strongarm*-*-* xscale*-*-* } } */
 #include "ffitest.h"
 
-static void cls_ret_sint_fn(ffi_cif* cif,void* resp,void** args,
-			     void* userdata)
+static void cls_ret_sint_fn(ffi_cif* cif __UNUSED__, void* resp, void** args,
+			    void* userdata __UNUSED__)
 {
   *(ffi_arg*)resp = *(signed int *)args[0];
   printf("%d: %d\n",*(signed int *)args[0],
-	 *(ffi_arg*)resp);
+	 (int)*(ffi_arg *)(resp));
 }
 typedef signed int (*cls_ret_sint)(signed int);
 
Index: testsuite/libffi.call/cls_sshort.c
===================================================================
--- testsuite/libffi.call/cls_sshort.c	(revision 111581)
+++ testsuite/libffi.call/cls_sshort.c	(working copy)
@@ -7,12 +7,12 @@
 /* { dg-do run { xfail mips64*-*-* arm*-*-* strongarm*-*-* xscale*-*-* } } */
 #include "ffitest.h"
 
-static void cls_ret_sshort_fn(ffi_cif* cif,void* resp,void** args,
-			     void* userdata)
+static void cls_ret_sshort_fn(ffi_cif* cif __UNUSED__, void* resp, void** args,
+			      void* userdata __UNUSED__)
 {
   *(ffi_arg*)resp = *(signed short *)args[0];
   printf("%d: %d\n",*(signed short *)args[0],
-	 *(ffi_arg*)resp);
+	 (int)*(ffi_arg *)(resp));
 }
 typedef signed short (*cls_ret_sshort)(signed short);
 
Index: testsuite/libffi.call/cls_uchar.c
===================================================================
--- testsuite/libffi.call/cls_uchar.c	(revision 111581)
+++ testsuite/libffi.call/cls_uchar.c	(working copy)
@@ -7,12 +7,12 @@
 /* { dg-do run { xfail mips64*-*-* arm*-*-* strongarm*-*-* xscale*-*-* } } */
 #include "ffitest.h"
 
-static void cls_ret_uchar_fn(ffi_cif* cif,void* resp,void** args,
-			     void* userdata)
+static void cls_ret_uchar_fn(ffi_cif* cif __UNUSED__, void* resp, void** args,
+			     void* userdata __UNUSED__)
 {
   *(ffi_arg*)resp = *(unsigned char *)args[0];
   printf("%d: %d\n",*(unsigned char *)args[0],
-	 *(ffi_arg*)resp);
+	 (int)*(ffi_arg *)(resp));
 }
 typedef unsigned char (*cls_ret_uchar)(unsigned char);
 
Index: testsuite/libffi.call/cls_uint.c
===================================================================
--- testsuite/libffi.call/cls_uint.c	(revision 111581)
+++ testsuite/libffi.call/cls_uint.c	(working copy)
@@ -7,14 +7,14 @@
 /* { dg-do run { xfail mips64*-*-* arm*-*-* strongarm*-*-* xscale*-*-* } } */
 #include "ffitest.h"
 
-static void cls_ret_uint_fn(ffi_cif* cif,void* resp,void** args,
-			     void* userdata)
- {
-   *(ffi_arg *)resp = *(unsigned int *)args[0];
+static void cls_ret_uint_fn(ffi_cif* cif __UNUSED__, void* resp, void** args,
+			    void* userdata __UNUSED__)
+{
+  *(ffi_arg *)resp = *(unsigned int *)args[0];
 
-   printf("%d: %d\n",*(unsigned int *)args[0],
-	  *(ffi_arg *)resp);
- }
+  printf("%d: %d\n",*(unsigned int *)args[0],
+	 (int)*(ffi_arg *)(resp));
+}
 typedef unsigned int (*cls_ret_uint)(unsigned int);
 
 int main (void)
Index: testsuite/libffi.call/cls_ulonglong.c
===================================================================
--- testsuite/libffi.call/cls_ulonglong.c	(revision 111581)
+++ testsuite/libffi.call/cls_ulonglong.c	(working copy)
@@ -7,14 +7,14 @@
 /* { dg-do run { xfail mips64*-*-* arm*-*-* strongarm*-*-* xscale*-*-* } } */
 #include "ffitest.h"
 
-static void cls_ret_ulonglong_fn(ffi_cif* cif,void* resp,void** args,
-			     void* userdata)
- {
-   *(unsigned long long *)resp=  *(unsigned long long *)args[0];
+static void cls_ret_ulonglong_fn(ffi_cif* cif __UNUSED__, void* resp,
+				 void** args, void* userdata __UNUSED__)
+{
+  *(unsigned long long *)resp=  *(unsigned long long *)args[0];
 
-   printf("%llu: %llu\n",*(unsigned long long *)args[0],
-	  *(unsigned long long *)resp);
- }
+  printf("%llu: %llu\n",*(unsigned long long *)args[0],
+	 *(unsigned long long *)(resp));
+}
 typedef unsigned long long (*cls_ret_ulonglong)(unsigned long long);
 
 int main (void)
Index: testsuite/libffi.call/cls_ushort.c
===================================================================
--- testsuite/libffi.call/cls_ushort.c	(revision 111581)
+++ testsuite/libffi.call/cls_ushort.c	(working copy)
@@ -7,14 +7,14 @@
 /* { dg-do run { xfail mips64*-*-* arm*-*-* strongarm*-*-* xscale*-*-* } } */
 #include "ffitest.h"
 
-static void cls_ret_ushort_fn(ffi_cif* cif,void* resp,void** args,
-			     void* userdata)
- {
-   *(ffi_arg*)resp = *(unsigned short *)args[0];
+static void cls_ret_ushort_fn(ffi_cif* cif __UNUSED__, void* resp, void** args,
+			      void* userdata __UNUSED__)
+{
+  *(ffi_arg*)resp = *(unsigned short *)args[0];
 
-   printf("%d: %d\n",*(unsigned short *)args[0],
-	  *(ffi_arg*)resp);
- }
+  printf("%d: %d\n",*(unsigned short *)args[0],
+	 (int)*(ffi_arg *)(resp));
+}
 typedef unsigned short (*cls_ret_ushort)(unsigned short);
 
 int main (void)
Index: testsuite/libffi.call/float.c
===================================================================
--- testsuite/libffi.call/float.c	(revision 111581)
+++ testsuite/libffi.call/float.c	(working copy)
@@ -8,7 +8,7 @@
 
 #include "ffitest.h"
 
-static int floating(int a, float b, double c, long double d, int e)
+static int floating(int a, float b, double c, long double d)
 {
   int i;
 
@@ -28,7 +28,6 @@
   signed int si1;
   double d;
   long double ld;
-  signed int si2;
 
   args[0] = &ffi_type_sint;
   values[0] = &si1;
@@ -38,26 +37,23 @@
   values[2] = &d;
   args[3] = &ffi_type_longdouble;
   values[3] = &ld;
-  args[4] = &ffi_type_sint;
-  values[4] = &si2;
 
   /* Initialize the cif */
-  CHECK(ffi_prep_cif(&cif, FFI_DEFAULT_ABI, 5,
+  CHECK(ffi_prep_cif(&cif, FFI_DEFAULT_ABI, 4,
 		     &ffi_type_sint, args) == FFI_OK);
 
   si1 = 6;
   f = 3.14159;
   d = (double)1.0/(double)3.0;
   ld = 2.71828182846L;
-  si2 = 10;
 
-  floating (si1, f, d, ld, si2);
+  floating (si1, f, d, ld);
 
   ffi_call(&cif, FFI_FN(floating), &rint, values);
 
-  printf ("%d vs %d\n", (int)rint, floating (si1, f, d, ld, si2));
+  printf ("%d vs %d\n", (int)rint, floating (si1, f, d, ld));
 
-  CHECK(rint == floating(si1, f, d, ld, si2));
+  CHECK((int)rint == floating(si1, f, d, ld));
 
   exit (0);
 }
Index: testsuite/libffi.call/float1.c
===================================================================
--- testsuite/libffi.call/float1.c	(revision 111581)
+++ testsuite/libffi.call/float1.c	(working copy)
@@ -28,25 +28,25 @@
   void *values[MAX_ARGS];
   float f;
   value_type result[2];
-  int i;
+  unsigned int i;
 
   args[0] = &ffi_type_float;
   values[0] = &f;
-  
+
   /* Initialize the cif */
-  CHECK(ffi_prep_cif(&cif, FFI_DEFAULT_ABI, 1, 
+  CHECK(ffi_prep_cif(&cif, FFI_DEFAULT_ABI, 1,
 		     &ffi_type_double, args) == FFI_OK);
-  
+
   f = 3.14159;
-  
+
   /* Put a canary in the return array.  This is a regression test for
      a buffer overrun.  */
   memset(result[1].c, CANARY, sizeof (double));
 
   ffi_call(&cif, FFI_FN(dblit), &result[0].d, values);
-  
+
   /* These are not always the same!! Check for a reasonable delta */
- 
+
   CHECK(result[0].d - dblit(f) < DBL_EPSILON);
 
   /* Check the canary.  */
Index: testsuite/libffi.call/negint.c
===================================================================
--- testsuite/libffi.call/negint.c	(revision 111581)
+++ testsuite/libffi.call/negint.c	(working copy)
@@ -11,7 +11,6 @@
 
 static int checking(int a, short b, signed char c)
 {
-  int i;
 
   return (a < 0 && b < 0 && c < 0);
 }
Index: testsuite/libffi.call/nested_struct.c
===================================================================
--- testsuite/libffi.call/nested_struct.c	(revision 111581)
+++ testsuite/libffi.call/nested_struct.c	(working copy)
@@ -50,7 +50,8 @@
 }
 
 static void
-cls_struct_combined_gn(ffi_cif* cif, void* resp, void** args, void* userdata)
+cls_struct_combined_gn(ffi_cif* cif __UNUSED__, void* resp, void** args,
+		       void* userdata __UNUSED__)
 {
   struct cls_struct_16byte1 b0;
   struct cls_struct_16byte2 b1;
Index: testsuite/libffi.call/nested_struct1.c
===================================================================
--- testsuite/libffi.call/nested_struct1.c	(revision 111581)
+++ testsuite/libffi.call/nested_struct1.c	(working copy)
@@ -52,7 +52,8 @@
 }
 
 static void
-cls_struct_combined_gn(ffi_cif* cif, void* resp, void** args, void* userdata)
+cls_struct_combined_gn(ffi_cif* cif __UNUSED__, void* resp, void** args,
+		       void* userdata __UNUSED__)
 {
   struct cls_struct_16byte1 b0;
   struct cls_struct_16byte2 b1;
Index: testsuite/libffi.call/nested_struct10.c
===================================================================
--- testsuite/libffi.call/nested_struct10.c	(revision 111581)
+++ testsuite/libffi.call/nested_struct10.c	(working copy)
@@ -41,8 +41,8 @@
 }
 
 static void
-B_gn(ffi_cif* cif __attribute__((unused)), void* resp, void** args,
-     void* userdata __attribute__((unused)))
+B_gn(ffi_cif* cif __UNUSED__, void* resp, void** args,
+     void* userdata __UNUSED__)
 {
   struct A b0;
   struct B b1;
Index: testsuite/libffi.call/nested_struct2.c
===================================================================
--- testsuite/libffi.call/nested_struct2.c	(revision 111581)
+++ testsuite/libffi.call/nested_struct2.c	(working copy)
@@ -27,14 +27,15 @@
   result.x.b = b0.b + b1.x.b + b1.y;
   result.y = b0.b + b1.x.b;
 
-  printf("%d %d %d %d %d: %d %d %d\n", b0.a, b0.b, b1.x.a, b1.x.b, b1.y,
+  printf("%lu %d %lu %d %d: %lu %d %d\n", b0.a, b0.b, b1.x.a, b1.x.b, b1.y,
 	 result.x.a, result.x.b, result.y);
 
   return result;
 }
 
 static void
-B_gn(ffi_cif* cif, void* resp, void** args, void* userdata)
+B_gn(ffi_cif* cif __UNUSED__, void* resp, void** args,
+     void* userdata __UNUSED__)
 {
   struct A b0;
   struct B b1;
Index: testsuite/libffi.call/nested_struct3.c
===================================================================
--- testsuite/libffi.call/nested_struct3.c	(revision 111581)
+++ testsuite/libffi.call/nested_struct3.c	(working copy)
@@ -35,7 +35,8 @@
 }
 
 static void
-B_gn(ffi_cif* cif, void* resp, void** args, void* userdata)
+B_gn(ffi_cif* cif __UNUSED__, void* resp, void** args,
+     void* userdata __UNUSED__)
 {
   struct A b0;
   struct B b1;
Index: testsuite/libffi.call/nested_struct4.c
===================================================================
--- testsuite/libffi.call/nested_struct4.c	(revision 111581)
+++ testsuite/libffi.call/nested_struct4.c	(working copy)
@@ -3,7 +3,7 @@
 		Contains structs as parameter of the struct itself.
 		Sample taken from Alan Modras patch to src/prep_cif.c.
    Limitations:	none.
-   PR:		none.
+   PR:		PR 25630.
    Originator:	<andreast@gcc.gnu.org> 20051010	 */
 
 /* { dg-do run { xfail mips64*-*-* arm*-*-* strongarm*-*-* xscale*-*-* powerpc*-*-darwin* } } */
@@ -35,8 +35,8 @@
 }
 
 static void
-B_gn(ffi_cif* cif __attribute__((unused)), void* resp, void** args,
-     void* userdata __attribute__((unused)))
+B_gn(ffi_cif* cif __UNUSED__, void* resp, void** args,
+     void* userdata __UNUSED__)
 {
   struct A b0;
   struct B b1;
Index: testsuite/libffi.call/nested_struct5.c
===================================================================
--- testsuite/libffi.call/nested_struct5.c	(revision 111581)
+++ testsuite/libffi.call/nested_struct5.c	(working copy)
@@ -35,8 +35,8 @@
 }
 
 static void
-B_gn(ffi_cif* cif __attribute__((unused)), void* resp, void** args,
-     void* userdata __attribute__((unused)))
+B_gn(ffi_cif* cif __UNUSED__, void* resp, void** args,
+     void* userdata __UNUSED__)
 {
   struct A b0;
   struct B b1;
Index: testsuite/libffi.call/nested_struct6.c
===================================================================
--- testsuite/libffi.call/nested_struct6.c	(revision 111581)
+++ testsuite/libffi.call/nested_struct6.c	(working copy)
@@ -3,7 +3,7 @@
 		Contains structs as parameter of the struct itself.
 		Sample taken from Alan Modras patch to src/prep_cif.c.
    Limitations:	none.
-   PR:		none.
+   PR:		PR 25630.
    Originator:	<andreast@gcc.gnu.org> 20051010	 */
 
 /* { dg-do run { xfail mips64*-*-* arm*-*-* strongarm*-*-* xscale*-*-* powerpc*-*-darwin* } } */
@@ -40,8 +40,8 @@
 }
 
 static void
-B_gn(ffi_cif* cif __attribute__((unused)), void* resp, void** args,
-     void* userdata __attribute__((unused)))
+B_gn(ffi_cif* cif __UNUSED__, void* resp, void** args,
+     void* userdata __UNUSED__)
 {
   struct A b0;
   struct B b1;
Index: testsuite/libffi.call/nested_struct7.c
===================================================================
--- testsuite/libffi.call/nested_struct7.c	(revision 111581)
+++ testsuite/libffi.call/nested_struct7.c	(working copy)
@@ -35,8 +35,8 @@
 }
 
 static void
-B_gn(ffi_cif* cif __attribute__((unused)), void* resp, void** args,
-     void* userdata __attribute__((unused)))
+B_gn(ffi_cif* cif __UNUSED__, void* resp, void** args,
+     void* userdata __UNUSED__)
 {
   struct A b0;
   struct B b1;
Index: testsuite/libffi.call/nested_struct8.c
===================================================================
--- testsuite/libffi.call/nested_struct8.c	(revision 111581)
+++ testsuite/libffi.call/nested_struct8.c	(working copy)
@@ -40,8 +40,8 @@
 }
 
 static void
-B_gn(ffi_cif* cif __attribute__((unused)), void* resp, void** args,
-     void* userdata __attribute__((unused)))
+B_gn(ffi_cif* cif __UNUSED__, void* resp, void** args,
+     void* userdata __UNUSED__)
 {
   struct A b0;
   struct B b1;
Index: testsuite/libffi.call/nested_struct9.c
===================================================================
--- testsuite/libffi.call/nested_struct9.c	(revision 111581)
+++ testsuite/libffi.call/nested_struct9.c	(working copy)
@@ -40,8 +40,8 @@
 }
 
 static void
-B_gn(ffi_cif* cif __attribute__((unused)), void* resp, void** args,
-     void* userdata __attribute__((unused)))
+B_gn(ffi_cif* cif __UNUSED__, void* resp, void** args,
+     void* userdata __UNUSED__)
 {
   struct A b0;
   struct B b1;
Index: testsuite/libffi.call/problem1.c
===================================================================
--- testsuite/libffi.call/problem1.c	(revision 111581)
+++ testsuite/libffi.call/problem1.c	(working copy)
@@ -27,7 +27,8 @@
   return result;
 }
 
-void stub(ffi_cif* cif, void* resp, void** args, void* userdata)
+void stub(ffi_cif* cif __UNUSED__, void* resp, void** args,
+	  void* userdata __UNUSED__)
 {
   struct my_ffi_struct a1;
   struct my_ffi_struct a2;
Index: testsuite/libffi.call/pyobjc-tc.c
===================================================================
--- testsuite/libffi.call/pyobjc-tc.c	(revision 111581)
+++ testsuite/libffi.call/pyobjc-tc.c	(working copy)
@@ -107,7 +107,7 @@
 
 	ffi_call(&cif, FFI_FN(doit), &result, values);
 
-	printf ("The result is %d\n", result);
+	printf ("The result is %d\n", (int)result);
 
 	}
 	exit(0);
Index: testsuite/libffi.call/return_fl2.c
===================================================================
--- testsuite/libffi.call/return_fl2.c	(revision 111581)
+++ testsuite/libffi.call/return_fl2.c	(working copy)
@@ -7,6 +7,9 @@
 /* { dg-do run } */
 #include "ffitest.h"
 
+/* To avoid a false negative on ix86 do not declare the return_fl static.
+   See PR323.
+*/
 float return_fl(float fl1, float fl2, float fl3, float fl4)
 {
   return fl1 + fl2 + fl3 + fl4;
Index: testsuite/libffi.call/closure_fn0.c
===================================================================
--- testsuite/libffi.call/closure_fn0.c	(revision 111581)
+++ testsuite/libffi.call/closure_fn0.c	(working copy)
@@ -10,7 +10,8 @@
 #include "ffitest.h"
 
 static void
-closure_test_fn0(ffi_cif* cif,void* resp,void** args, void* userdata)
+closure_test_fn0(ffi_cif* cif __UNUSED__, void* resp, void** args,
+		 void* userdata)
 {
   *(ffi_arg*)resp =
     (int)*(unsigned long long *)args[0] + (int)(*(int *)args[1]) +
Index: testsuite/libffi.call/closure_fn1.c
===================================================================
--- testsuite/libffi.call/closure_fn1.c	(revision 111581)
+++ testsuite/libffi.call/closure_fn1.c	(working copy)
@@ -10,7 +10,7 @@
 #include "ffitest.h"
 
 
-static void closure_test_fn1(ffi_cif* cif,void* resp,void** args,
+static void closure_test_fn1(ffi_cif* cif __UNUSED__, void* resp, void** args,
 			     void* userdata)
 {
   *(ffi_arg*)resp =
Index: testsuite/libffi.call/closure_fn2.c
===================================================================
--- testsuite/libffi.call/closure_fn2.c	(revision 111581)
+++ testsuite/libffi.call/closure_fn2.c	(working copy)
@@ -9,7 +9,7 @@
 /* { dg-do run { xfail mips64*-*-* arm*-*-* strongarm*-*-* xscale*-*-* } } */
 #include "ffitest.h"
 
-static void closure_test_fn2(ffi_cif* cif,void* resp,void** args,
+static void closure_test_fn2(ffi_cif* cif __UNUSED__, void* resp, void** args,
 			     void* userdata)
 {
   *(ffi_arg*)resp =
Index: testsuite/libffi.call/closure_fn3.c
===================================================================
--- testsuite/libffi.call/closure_fn3.c	(revision 111581)
+++ testsuite/libffi.call/closure_fn3.c	(working copy)
@@ -9,7 +9,7 @@
 /* { dg-do run { xfail mips64*-*-* arm*-*-* strongarm*-*-* xscale*-*-* } } */
 #include "ffitest.h"
 
-static void closure_test_fn3(ffi_cif* cif,void* resp,void** args,
+static void closure_test_fn3(ffi_cif* cif __UNUSED__, void* resp, void** args,
 			     void* userdata)
  {
    *(ffi_arg*)resp =
Index: testsuite/libffi.call/closure_fn4.c
===================================================================
--- testsuite/libffi.call/closure_fn4.c	(revision 111581)
+++ testsuite/libffi.call/closure_fn4.c	(working copy)
@@ -11,7 +11,8 @@
 #include "ffitest.h"
 
 static void
-closure_test_fn0(ffi_cif* cif,void* resp,void** args, void* userdata)
+closure_test_fn0(ffi_cif* cif __UNUSED__, void* resp, void** args,
+		 void* userdata)
 {
   *(ffi_arg*)resp =
     (int)*(unsigned long long *)args[0] + (int)*(unsigned long long *)args[1] +
Index: testsuite/libffi.call/closure_fn5.c
===================================================================
--- testsuite/libffi.call/closure_fn5.c	(revision 111581)
+++ testsuite/libffi.call/closure_fn5.c	(working copy)
@@ -7,11 +7,11 @@
    Originator:	<andreast@gcc.gnu.org> 20031026	 */
 
 /* { dg-do run { xfail mips64*-*-* arm*-*-* strongarm*-*-* xscale*-*-* } } */
-
 #include "ffitest.h"
 
 static void
-closure_test_fn5(ffi_cif* cif,void* resp,void** args, void* userdata)
+closure_test_fn5(ffi_cif* cif __UNUSED__, void* resp, void** args,
+		 void* userdata)
 {
   *(ffi_arg*)resp =
     (int)*(unsigned long long *)args[0] + (int)*(unsigned long long *)args[1] +
Index: testsuite/libffi.call/closure_fn6.c
===================================================================
--- testsuite/libffi.call/closure_fn6.c	(revision 111581)
+++ testsuite/libffi.call/closure_fn6.c	(working copy)
@@ -9,7 +9,8 @@
 #include "ffitest.h"
 
 static void
-closure_test_fn0(ffi_cif* cif,void* resp,void** args, void* userdata)
+closure_test_fn0(ffi_cif* cif __UNUSED__, void* resp, void** args,
+		 void* userdata)
 {
   *(ffi_arg*)resp =
     (int)*(unsigned long long *)args[0] +

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [RFT] libffi testsuite cleanup warnings
  2006-02-28 23:18   ` Andreas Tobler
@ 2006-03-01 11:10     ` Rainer Orth
  0 siblings, 0 replies; 5+ messages in thread
From: Rainer Orth @ 2006-03-01 11:10 UTC (permalink / raw)
  To: Andreas Tobler; +Cc: GCC Patches, Java Patches

Andreas Tobler writes:

> > I think it would be much more useful to describe the actual changes here
> > instead of how you discovered that they are necessary/useful.
> 
> Here is what I committed.
> I hope you appreciate the CL.

indeed, as well as the use of __UNUSED__.

Thanks.
	Rainer

-----------------------------------------------------------------------------
Rainer Orth, Faculty of Technology, Bielefeld University

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2006-03-01 11:10 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2006-02-25 22:22 [RFT] libffi testsuite cleanup warnings Andreas Tobler
2006-02-27 12:30 ` Rainer Orth
2006-02-27 18:18   ` Andreas Tobler
2006-02-28 23:18   ` Andreas Tobler
2006-03-01 11:10     ` Rainer Orth

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).