diff options
Diffstat (limited to 'testsuite/libffi.closures/cls_longdouble_va.c')
-rw-r--r-- | testsuite/libffi.closures/cls_longdouble_va.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/testsuite/libffi.closures/cls_longdouble_va.c b/testsuite/libffi.closures/cls_longdouble_va.c index 39b438b..79b42b0 100644 --- a/testsuite/libffi.closures/cls_longdouble_va.c +++ b/testsuite/libffi.closures/cls_longdouble_va.c @@ -10,6 +10,9 @@ #include "ffitest.h" +#define BUF_SIZE 50 +static char buffer[BUF_SIZE]; + static void cls_longdouble_va_fn(ffi_cif* cif __UNUSED__, void* resp, void** args, void* userdata __UNUSED__) @@ -18,6 +21,9 @@ cls_longdouble_va_fn(ffi_cif* cif __UNUSED__, void* resp, long double ldValue = *(long double*)args[1]; *(ffi_arg*)resp = printf(format, ldValue); + CHECK(*(ffi_arg*)resp == 4); + snprintf(buffer, BUF_SIZE, format, ldValue); + CHECK(strncmp(buffer, "7.0\n", BUF_SIZE) == 0); } int main (void) @@ -48,6 +54,7 @@ int main (void) /* { dg-output "7.0" } */ printf("res: %d\n", (int) res); /* { dg-output "\nres: 4" } */ + CHECK(res == 4); CHECK(ffi_prep_closure_loc(pcl, &cif, cls_longdouble_va_fn, NULL, code) == FFI_OK); @@ -56,6 +63,7 @@ int main (void) /* { dg-output "\n7.0" } */ printf("res: %d\n", (int) res); /* { dg-output "\nres: 4" } */ + CHECK(res == 4); exit(0); } |