Patchwork [libffi] Remove warnings

login
register
mail settings
Submitter Anthony Green
Date Aug. 6, 2010, 8:04 p.m.
Message ID <m339urjyn1.fsf@redhat.com>
Download mbox | patch
Permalink /patch/61152/
State New
Headers show

Comments

Anthony Green - Aug. 6, 2010, 8:04 p.m.
I'm checking in the following libffi patch.

This patch from Dan Witte cleans up a number of build warnings.

Thanks,

AG


2010-04-13  Dan Witte  <dwitte@mozilla.com>

	* msvcc.sh: Build with -W3 instead of -Wall.
	* src/powerpc/ffi_darwin.c: Remove build warnings.
	* src/x86/ffi.c: Ditto.
	* src/x86/ffitarget.h: Ditto.

Patch

Index: libffi/msvcc.sh
===================================================================
--- libffi.orig/msvcc.sh
+++ libffi/msvcc.sh
@@ -42,7 +42,7 @@ 
 # format and translated into something sensible for cl or ml.
 #
 
-args="-nologo -W3"
+args="-nologo"
 md=-MD
 cl="cl"
 ml="ml"
@@ -108,7 +108,8 @@  do
       shift 1
     ;;
     -Wall)
-      args="$args -Wall"
+      # -Wall on MSVC is overzealous. Use -W3 instead.
+      args="$args -W3"
       shift 1
     ;;
     -Werror)
Index: libffi/src/powerpc/ffi_darwin.c
===================================================================
--- libffi.orig/src/powerpc/ffi_darwin.c
+++ libffi/src/powerpc/ffi_darwin.c
@@ -344,7 +344,7 @@  ffi_status
 ffi_prep_cif_machdep (ffi_cif *cif)
 {
   /* All this is for the DARWIN ABI.  */
-  int i;
+  unsigned i;
   ffi_type **ptr;
   unsigned bytes;
   int fparg_count = 0, intarg_count = 0;
@@ -542,11 +542,11 @@  ffi_call (ffi_cif *cif, void (*fn)(void)
     {
     case FFI_AIX:
       ffi_call_AIX(&ecif, -(long)cif->bytes, cif->flags, ecif.rvalue, fn,
-		   ffi_prep_args);
+		   FFI_FN(ffi_prep_args));
       break;
     case FFI_DARWIN:
       ffi_call_DARWIN(&ecif, -(long)cif->bytes, cif->flags, ecif.rvalue, fn,
-		      ffi_prep_args);
+		      FFI_FN(ffi_prep_args));
       break;
     default:
       FFI_ASSERT(0);
@@ -799,9 +799,9 @@  ffi_closure_helper_DARWIN (ffi_closure *
 	  if (arg_types[i]->elements[0]->type == FFI_TYPE_DOUBLE)
 	    size_al = ALIGN (arg_types[i]->size, 8);
 	  if (size_al < 3 && cif->abi == FFI_DARWIN)
-	    avalue[i] = (void *) pgr + 8 - size_al;
+	    avalue[i] = (char *) pgr + 8 - size_al;
 	  else
-	    avalue[i] = (void *) pgr;
+	    avalue[i] = pgr;
 	  pgr += (size_al + 7) / 8;
 #else
 	  /* Structures that match the basic modes (QI 1 byte, HI 2 bytes,
@@ -812,9 +812,9 @@  ffi_closure_helper_DARWIN (ffi_closure *
 	  if (arg_types[i]->elements[0]->type == FFI_TYPE_DOUBLE)
 	    size_al = ALIGN(arg_types[i]->size, 8);
 	  if (size_al < 3 && cif->abi == FFI_DARWIN)
-	    avalue[i] = (void*) pgr + 4 - size_al;
+	    avalue[i] = (char*) pgr + 4 - size_al;
 	  else
-	    avalue[i] = (void*) pgr;
+	    avalue[i] = pgr;
 	  pgr += (size_al + 3) / 4;
 #endif
 	  break;
Index: libffi/src/x86/ffi.c
===================================================================
--- libffi.orig/src/x86/ffi.c
+++ libffi/src/x86/ffi.c
@@ -209,7 +209,7 @@  ffi_status ffi_prep_cif_machdep(ffi_cif 
 #endif
         {
           cif->flags = FFI_TYPE_STRUCT;
-          // allocate space for return value pointer
+          /* allocate space for return value pointer */
           cif->bytes += ALIGN(sizeof(void*), FFI_SIZEOF_ARG);
         }
       break;
@@ -234,7 +234,7 @@  ffi_status ffi_prep_cif_machdep(ffi_cif 
     }
 
 #ifdef X86_WIN64
-  // ensure space for storing four registers
+  /* ensure space for storing four registers */
   cif->bytes += 4 * sizeof(ffi_arg);
 #endif
 
@@ -292,8 +292,8 @@  void ffi_call(ffi_cif *cif, void (*fn)(v
 #ifdef X86_WIN64
     case FFI_WIN64:
       {
-        // Make copies of all struct arguments
-        // NOTE: not sure if responsibility should be here or in caller
+        /* Make copies of all struct arguments
+           NOTE: not sure if responsibility should be here or in caller */
         unsigned int i;
         for (i=0; i < cif->nargs;i++) {
           size_t size = cif->arg_types[i]->size;
Index: libffi/src/x86/ffitarget.h
===================================================================
--- libffi.orig/src/x86/ffitarget.h
+++ libffi/src/x86/ffitarget.h
@@ -38,7 +38,7 @@ 
 
 #ifdef X86_WIN64
 #define FFI_SIZEOF_ARG 8
-#define USE_BUILTIN_FFS 0 // not yet implemented in mingw-64 
+#define USE_BUILTIN_FFS 0 /* not yet implemented in mingw-64 */
 #endif
 
 /* ---- Generic type definitions ----------------------------------------- */