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/many2.c | |
| parent | 0150f70ce9c39e9e6dd878766c0620c85e47bed0 (diff) | |
add circuitpython code
Diffstat (limited to 'circuitpython/lib/libffi/testsuite/libffi.call/many2.c')
| -rw-r--r-- | circuitpython/lib/libffi/testsuite/libffi.call/many2.c | 57 | 
1 files changed, 57 insertions, 0 deletions
| diff --git a/circuitpython/lib/libffi/testsuite/libffi.call/many2.c b/circuitpython/lib/libffi/testsuite/libffi.call/many2.c new file mode 100644 index 0000000..1c85746 --- /dev/null +++ b/circuitpython/lib/libffi/testsuite/libffi.call/many2.c @@ -0,0 +1,57 @@ +/* Area:        ffi_call +   Purpose:     Check uint8_t arguments. +   Limitations: none. +   PR:          PR45677. +   Originator:  Dan Witte <dwitte@gmail.com> 20100916  */ + +/* { dg-do run } */ + +#include "ffitest.h" + +#define NARGS 7 + +typedef unsigned char u8; + +#ifdef __GNUC__ +__attribute__((noinline)) +#endif +uint8_t +foo (uint8_t a, uint8_t b, uint8_t c, uint8_t d, +     uint8_t e, uint8_t f, uint8_t g) +{ +  return a + b + c + d + e + f + g; +} + +uint8_t ABI_ATTR +bar (uint8_t a, uint8_t b, uint8_t c, uint8_t d, +     uint8_t e, uint8_t f, uint8_t g) +{ +  return foo (a, b, c, d, e, f, g); +} + +int +main (void) +{ +  ffi_type *ffitypes[NARGS]; +  int i; +  ffi_cif cif; +  ffi_arg result = 0; +  uint8_t args[NARGS]; +  void *argptrs[NARGS]; + +  for (i = 0; i < NARGS; ++i) +    ffitypes[i] = &ffi_type_uint8; + +  CHECK (ffi_prep_cif (&cif, ABI_NUM, NARGS, +		       &ffi_type_uint8, ffitypes) == FFI_OK); + +  for (i = 0; i < NARGS; ++i) +    { +      args[i] = i; +      argptrs[i] = &args[i]; +    } +  ffi_call (&cif, FFI_FN (bar), &result, argptrs); + +  CHECK (result == 21); +  return 0; +} | 
