diff options
Diffstat (limited to 'libffi/testsuite/libffi.call/closure_fn4.c')
-rw-r--r-- | libffi/testsuite/libffi.call/closure_fn4.c | 17 |
1 files changed, 9 insertions, 8 deletions
diff --git a/libffi/testsuite/libffi.call/closure_fn4.c b/libffi/testsuite/libffi.call/closure_fn4.c index 2085020b457..87ca0db9185 100644 --- a/libffi/testsuite/libffi.call/closure_fn4.c +++ b/libffi/testsuite/libffi.call/closure_fn4.c @@ -25,7 +25,7 @@ closure_test_fn0(ffi_cif* cif,void* resp,void** args, void* userdata) (int)*(unsigned long long *)args[13] + (int)*(unsigned long long *)args[14] + *(int *)args[15] + (int)(long)userdata; - + printf("%d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d: %d\n", (int)*(unsigned long long *)args[0], (int)*(unsigned long long *)args[1], @@ -44,7 +44,7 @@ closure_test_fn0(ffi_cif* cif,void* resp,void** args, void* userdata) (int)*(unsigned long long *)args[14], *(int *)args[15], (int)(long)userdata, (int)*(ffi_arg *)resp); - + } typedef int (*closure_test_type0)(unsigned long long, unsigned long long, @@ -63,25 +63,26 @@ int main (void) ffi_closure *pcl = &cl; ffi_type * cl_arg_types[17]; int i, res; - + for (i = 0; i < 15; i++) { cl_arg_types[i] = &ffi_type_uint64; } cl_arg_types[15] = &ffi_type_uint; cl_arg_types[16] = NULL; - + /* Initialize the cif */ CHECK(ffi_prep_cif(&cif, FFI_DEFAULT_ABI, 16, &ffi_type_sint, cl_arg_types) == FFI_OK); - + CHECK(ffi_prep_closure(pcl, &cif, closure_test_fn0, (void *) 3 /* userdata */) == FFI_OK); - + res = (*((closure_test_type0)pcl)) (1LL, 2LL, 3LL, 4LL, 127LL, 429LL, 7LL, 8LL, 9LL, 10LL, 11LL, 12LL, 13LL, 19LL, 21LL, 1); /* { dg-output "1 2 3 4 127 429 7 8 9 10 11 12 13 19 21 1 3: 680" } */ - CHECK(res == 680); - + printf("res: %d\n",res); + /* { dg-output "\nres: 680" } */ + exit(0); } |