OSDN Git Service

* testsuite/libffi.call/cls_multi_ushort.c,
[pf3gnuchains/gcc-fork.git] / libffi / testsuite / libffi.call / cls_float.c
index dd0a48b..8bed628 100644 (file)
@@ -4,11 +4,11 @@
    PR:         none.
    Originator: <andreast@gcc.gnu.org> 20030828  */
 
-/* { dg-do run { xfail mips*-*-* arm*-*-* strongarm*-*-* xscale*-*-* } } */
+/* { dg-do run } */
 #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];
 
@@ -21,9 +21,18 @@ typedef float (*cls_ret_float)(float);
 int main (void)
 {
   ffi_cif cif;
+#ifndef USING_MMAP
   static ffi_closure cl;
-  ffi_closure *pcl = &cl;
+#endif
+  ffi_closure *pcl;
   ffi_type * cl_arg_types[2];
+  float res;
+
+#ifdef USING_MMAP
+  pcl = allocate_mmap (sizeof(ffi_closure));
+#else
+  pcl = &cl;
+#endif
 
 
   cl_arg_types[0] = &ffi_type_float;
@@ -34,10 +43,9 @@ int main (void)
                     &ffi_type_float, cl_arg_types) == FFI_OK);
 
   CHECK(ffi_prep_closure(pcl, &cif, cls_ret_float_fn, NULL)  == FFI_OK);
-  ((((cls_ret_float)pcl)(-2122.12)));
-  /* { dg-output "\\-2122.12: \\-2122.12\n" } */
-  printf("%f \n",(((cls_ret_float)pcl)(-2122.12)));
+  res = ((((cls_ret_float)pcl)(-2122.12)));
   /* { dg-output "\\-2122.12: \\-2122.12" } */
-  /* { dg-output "\n\-2122.120117" } */
+  printf("res: %.6f\n", res);
+  /* { dg-output "\nres: \-2122.120117" } */
   exit(0);
 }