diff options
Diffstat (limited to 'libffi/testsuite/libffi.call/cls_longdouble_va.c')
-rw-r--r-- | libffi/testsuite/libffi.call/cls_longdouble_va.c | 19 |
1 files changed, 6 insertions, 13 deletions
diff --git a/libffi/testsuite/libffi.call/cls_longdouble_va.c b/libffi/testsuite/libffi.call/cls_longdouble_va.c index c3599d7b789..0e910d5bd37 100644 --- a/libffi/testsuite/libffi.call/cls_longdouble_va.c +++ b/libffi/testsuite/libffi.call/cls_longdouble_va.c @@ -4,7 +4,8 @@ PR: none. Originator: Blake Chaffin 6/6/2007 */ -/* { dg-do run { xfail mips*-*-* arm*-*-* strongarm*-*-* xscale*-*-* x86_64-*-mingw* x86_64-*-cygwin* } } */ +/* { dg-do run { xfail mips*-*-* arm*-*-* strongarm*-*-* xscale*-*-* } } */ +/* { dg-output "" { xfail x86_64-*-mingw* } } */ #include "ffitest.h" static void @@ -20,19 +21,11 @@ cls_longdouble_va_fn(ffi_cif* cif __UNUSED__, void* resp, int main (void) { ffi_cif cif; -#ifndef USING_MMAP - static ffi_closure cl; -#endif - ffi_closure *pcl; + void *code; + ffi_closure *pcl = ffi_closure_alloc(sizeof(ffi_closure), &code); void* args[3]; ffi_type* arg_types[3]; -#ifdef USING_MMAP - pcl = allocate_mmap (sizeof(ffi_closure)); -#else - pcl = &cl; -#endif - char* format = "%L.1f\n"; long double ldArg = 7; ffi_arg res = 0; @@ -53,9 +46,9 @@ int main (void) printf("res: %d\n", (int) res); // { dg-output "\nres: 4" { xfail i*86-*-linux-* x86_64-*-linux-* sh*-*-linux-* } } - CHECK(ffi_prep_closure(pcl, &cif, cls_longdouble_va_fn, NULL) == FFI_OK); + CHECK(ffi_prep_closure_loc(pcl, &cif, cls_longdouble_va_fn, NULL, code) == FFI_OK); - res = ((int(*)(char*, long double))(pcl))(format, ldArg); + res = ((int(*)(char*, long double))(code))(format, ldArg); // { dg-output "\n7.0" } printf("res: %d\n", (int) res); // { dg-output "\nres: 4" } |