mirror of
https://github.com/partic2/libffi
synced 2026-11-11 02:27:19 +00:00
Add David Gilbert's variadic function call support
This commit is contained in:
@@ -37,7 +37,8 @@ int main (void)
|
||||
arg_types[1] = &ffi_type_longdouble;
|
||||
arg_types[2] = NULL;
|
||||
|
||||
CHECK(ffi_prep_cif(&cif, FFI_DEFAULT_ABI, 2, &ffi_type_sint,
|
||||
/* This printf call is variadic */
|
||||
CHECK(ffi_prep_cif_var(&cif, FFI_DEFAULT_ABI, 1, 2, &ffi_type_sint,
|
||||
arg_types) == FFI_OK);
|
||||
|
||||
args[0] = &format;
|
||||
@@ -49,6 +50,10 @@ int main (void)
|
||||
printf("res: %d\n", (int) res);
|
||||
// { dg-output "\nres: 4" }
|
||||
|
||||
/* The call to cls_longdouble_va_fn is static, so have to use a normal prep_cif */
|
||||
CHECK(ffi_prep_cif(&cif, FFI_DEFAULT_ABI, 2, &ffi_type_sint,
|
||||
arg_types) == FFI_OK);
|
||||
|
||||
CHECK(ffi_prep_closure_loc(pcl, &cif, cls_longdouble_va_fn, NULL, code) == FFI_OK);
|
||||
|
||||
res = ((int(*)(char*, long double))(code))(format, ldArg);
|
||||
|
||||
Reference in New Issue
Block a user