Home | History | Annotate | Download | only in libffi.call
      1 /* Area:	ffi_call
      2    Purpose:	Check return value signed char.
      3    Limitations:	none.
      4    PR:		none.
      5    Originator:	From the original ffitest.c  */
      6 
      7 /* { dg-do run } */
      8 #include "ffitest.h"
      9 
     10 static signed char return_sc(signed char sc)
     11 {
     12   return sc;
     13 }
     14 int main (void)
     15 {
     16   ffi_cif cif;
     17   ffi_type *args[MAX_ARGS];
     18   void *values[MAX_ARGS];
     19   ffi_arg rint;
     20   signed char sc;
     21 
     22   args[0] = &ffi_type_schar;
     23   values[0] = ≻
     24 
     25   /* Initialize the cif */
     26   CHECK(ffi_prep_cif(&cif, FFI_DEFAULT_ABI, 1,
     27 		     &ffi_type_schar, args) == FFI_OK);
     28 
     29   for (sc = (signed char) -127;
     30        sc < (signed char) 127; sc++)
     31     {
     32       ffi_call(&cif, FFI_FN(return_sc), &rint, values);
     33       CHECK((signed char)rint == sc);
     34     }
     35   exit(0);
     36 }
     37