diff options
| author | Raghuram Subramani <raghus2247@gmail.com> | 2022-06-19 19:47:51 +0530 | 
|---|---|---|
| committer | Raghuram Subramani <raghus2247@gmail.com> | 2022-06-19 19:47:51 +0530 | 
| commit | 4fd287655a72b9aea14cdac715ad5b90ed082ed2 (patch) | |
| tree | 65d393bc0e699dd12d05b29ba568e04cea666207 /circuitpython/lib/libffi/testsuite/libffi.call/cls_uint.c | |
| parent | 0150f70ce9c39e9e6dd878766c0620c85e47bed0 (diff) | |
add circuitpython code
Diffstat (limited to 'circuitpython/lib/libffi/testsuite/libffi.call/cls_uint.c')
| -rw-r--r-- | circuitpython/lib/libffi/testsuite/libffi.call/cls_uint.c | 43 | 
1 files changed, 43 insertions, 0 deletions
| diff --git a/circuitpython/lib/libffi/testsuite/libffi.call/cls_uint.c b/circuitpython/lib/libffi/testsuite/libffi.call/cls_uint.c new file mode 100644 index 0000000..885cff5 --- /dev/null +++ b/circuitpython/lib/libffi/testsuite/libffi.call/cls_uint.c @@ -0,0 +1,43 @@ +/* Area:	closure_call +   Purpose:	Check return value uint. +   Limitations:	none. +   PR:		none. +   Originator:	<andreast@gcc.gnu.org> 20030828	 */ + +/* { dg-do run } */ +#include "ffitest.h" + +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], +	 (int)*(ffi_arg *)(resp)); +} +typedef unsigned int (*cls_ret_uint)(unsigned int); + +int main (void) +{ +  ffi_cif cif; +  void *code; +  ffi_closure *pcl = ffi_closure_alloc(sizeof(ffi_closure), &code); +  ffi_type * cl_arg_types[2]; +  unsigned int res; + +  cl_arg_types[0] = &ffi_type_uint; +  cl_arg_types[1] = NULL; + +  /* Initialize the cif */ +  CHECK(ffi_prep_cif(&cif, FFI_DEFAULT_ABI, 1, +		     &ffi_type_uint, cl_arg_types) == FFI_OK); + +  CHECK(ffi_prep_closure_loc(pcl, &cif, cls_ret_uint_fn, NULL, code)  == FFI_OK); + +  res = (*((cls_ret_uint)code))(2147483647); +  /* { dg-output "2147483647: 2147483647" } */ +  printf("res: %d\n",res); +  /* { dg-output "\nres: 2147483647" } */ + +  exit(0); +} | 
