diff options
author | Anthony Green <green@moxielogic.com> | 2019-11-22 18:54:30 -0500 |
---|---|---|
committer | Anthony Green <green@moxielogic.com> | 2019-11-22 18:54:30 -0500 |
commit | 332a539e88d26a0524c10a39283a3099d071ca10 (patch) | |
tree | 748a6c3894f8a8840aa841e5447a78812fb7196f | |
parent | 1761a10645dadc0840bf1ff3a4998f9a342e8cad (diff) | |
download | libffi-332a539e88d26a0524c10a39283a3099d071ca10.tar.gz |
Move closure tests so we can easily XFAIL them for some targets
-rw-r--r-- | testsuite/libffi.closures/closure.exp | 50 | ||||
-rw-r--r-- | testsuite/libffi.closures/closure_fn0.c (renamed from testsuite/libffi.call/closure_fn0.c) | 0 | ||||
-rw-r--r-- | testsuite/libffi.closures/closure_fn1.c (renamed from testsuite/libffi.call/closure_fn1.c) | 0 | ||||
-rw-r--r-- | testsuite/libffi.closures/closure_fn2.c (renamed from testsuite/libffi.call/closure_fn2.c) | 0 | ||||
-rw-r--r-- | testsuite/libffi.closures/closure_fn3.c (renamed from testsuite/libffi.call/closure_fn3.c) | 0 | ||||
-rw-r--r-- | testsuite/libffi.closures/closure_fn4.c (renamed from testsuite/libffi.call/closure_fn4.c) | 0 | ||||
-rw-r--r-- | testsuite/libffi.closures/closure_fn5.c (renamed from testsuite/libffi.call/closure_fn5.c) | 0 | ||||
-rw-r--r-- | testsuite/libffi.closures/closure_fn6.c (renamed from testsuite/libffi.call/closure_fn6.c) | 0 | ||||
-rw-r--r-- | testsuite/libffi.closures/closure_loc_fn0.c (renamed from testsuite/libffi.call/closure_loc_fn0.c) | 0 | ||||
-rw-r--r-- | testsuite/libffi.closures/closure_simple.c (renamed from testsuite/libffi.call/closure_simple.c) | 0 | ||||
-rw-r--r-- | testsuite/libffi.closures/cls_12byte.c (renamed from testsuite/libffi.call/cls_12byte.c) | 0 | ||||
-rw-r--r-- | testsuite/libffi.closures/cls_16byte.c (renamed from testsuite/libffi.call/cls_16byte.c) | 0 | ||||
-rw-r--r-- | testsuite/libffi.closures/cls_18byte.c (renamed from testsuite/libffi.call/cls_18byte.c) | 0 | ||||
-rw-r--r-- | testsuite/libffi.closures/cls_19byte.c (renamed from testsuite/libffi.call/cls_19byte.c) | 0 | ||||
-rw-r--r-- | testsuite/libffi.closures/cls_1_1byte.c (renamed from testsuite/libffi.call/cls_1_1byte.c) | 0 | ||||
-rw-r--r-- | testsuite/libffi.closures/cls_20byte.c (renamed from testsuite/libffi.call/cls_20byte.c) | 0 | ||||
-rw-r--r-- | testsuite/libffi.closures/cls_20byte1.c (renamed from testsuite/libffi.call/cls_20byte1.c) | 0 | ||||
-rw-r--r-- | testsuite/libffi.closures/cls_24byte.c (renamed from testsuite/libffi.call/cls_24byte.c) | 0 | ||||
-rw-r--r-- | testsuite/libffi.closures/cls_2byte.c (renamed from testsuite/libffi.call/cls_2byte.c) | 0 | ||||
-rw-r--r-- | testsuite/libffi.closures/cls_3_1byte.c (renamed from testsuite/libffi.call/cls_3_1byte.c) | 0 | ||||
-rw-r--r-- | testsuite/libffi.closures/cls_3byte1.c (renamed from testsuite/libffi.call/cls_3byte1.c) | 0 | ||||
-rw-r--r-- | testsuite/libffi.closures/cls_3byte2.c (renamed from testsuite/libffi.call/cls_3byte2.c) | 0 | ||||
-rw-r--r-- | testsuite/libffi.closures/cls_3float.c (renamed from testsuite/libffi.call/cls_3float.c) | 0 | ||||
-rw-r--r-- | testsuite/libffi.closures/cls_4_1byte.c (renamed from testsuite/libffi.call/cls_4_1byte.c) | 0 | ||||
-rw-r--r-- | testsuite/libffi.closures/cls_4byte.c (renamed from testsuite/libffi.call/cls_4byte.c) | 0 | ||||
-rw-r--r-- | testsuite/libffi.closures/cls_5_1_byte.c (renamed from testsuite/libffi.call/cls_5_1_byte.c) | 0 | ||||
-rw-r--r-- | testsuite/libffi.closures/cls_5byte.c (renamed from testsuite/libffi.call/cls_5byte.c) | 0 | ||||
-rw-r--r-- | testsuite/libffi.closures/cls_64byte.c (renamed from testsuite/libffi.call/cls_64byte.c) | 0 | ||||
-rw-r--r-- | testsuite/libffi.closures/cls_6_1_byte.c (renamed from testsuite/libffi.call/cls_6_1_byte.c) | 0 | ||||
-rw-r--r-- | testsuite/libffi.closures/cls_6byte.c (renamed from testsuite/libffi.call/cls_6byte.c) | 0 | ||||
-rw-r--r-- | testsuite/libffi.closures/cls_7_1_byte.c (renamed from testsuite/libffi.call/cls_7_1_byte.c) | 0 | ||||
-rw-r--r-- | testsuite/libffi.closures/cls_7byte.c (renamed from testsuite/libffi.call/cls_7byte.c) | 0 | ||||
-rw-r--r-- | testsuite/libffi.closures/cls_8byte.c (renamed from testsuite/libffi.call/cls_8byte.c) | 0 | ||||
-rw-r--r-- | testsuite/libffi.closures/cls_9byte1.c (renamed from testsuite/libffi.call/cls_9byte1.c) | 0 | ||||
-rw-r--r-- | testsuite/libffi.closures/cls_9byte2.c (renamed from testsuite/libffi.call/cls_9byte2.c) | 0 | ||||
-rw-r--r-- | testsuite/libffi.closures/cls_align_double.c (renamed from testsuite/libffi.call/cls_align_double.c) | 0 | ||||
-rw-r--r-- | testsuite/libffi.closures/cls_align_float.c (renamed from testsuite/libffi.call/cls_align_float.c) | 0 | ||||
-rw-r--r-- | testsuite/libffi.closures/cls_align_longdouble.c (renamed from testsuite/libffi.call/cls_align_longdouble.c) | 0 | ||||
-rw-r--r-- | testsuite/libffi.closures/cls_align_longdouble_split.c (renamed from testsuite/libffi.call/cls_align_longdouble_split.c) | 0 | ||||
-rw-r--r-- | testsuite/libffi.closures/cls_align_longdouble_split2.c (renamed from testsuite/libffi.call/cls_align_longdouble_split2.c) | 0 | ||||
-rw-r--r-- | testsuite/libffi.closures/cls_align_pointer.c (renamed from testsuite/libffi.call/cls_align_pointer.c) | 0 | ||||
-rw-r--r-- | testsuite/libffi.closures/cls_align_sint16.c (renamed from testsuite/libffi.call/cls_align_sint16.c) | 0 | ||||
-rw-r--r-- | testsuite/libffi.closures/cls_align_sint32.c (renamed from testsuite/libffi.call/cls_align_sint32.c) | 0 | ||||
-rw-r--r-- | testsuite/libffi.closures/cls_align_sint64.c (renamed from testsuite/libffi.call/cls_align_sint64.c) | 0 | ||||
-rw-r--r-- | testsuite/libffi.closures/cls_align_uint16.c (renamed from testsuite/libffi.call/cls_align_uint16.c) | 0 | ||||
-rw-r--r-- | testsuite/libffi.closures/cls_align_uint32.c (renamed from testsuite/libffi.call/cls_align_uint32.c) | 0 | ||||
-rw-r--r-- | testsuite/libffi.closures/cls_align_uint64.c (renamed from testsuite/libffi.call/cls_align_uint64.c) | 0 | ||||
-rw-r--r-- | testsuite/libffi.closures/cls_dbls_struct.c (renamed from testsuite/libffi.call/cls_dbls_struct.c) | 0 | ||||
-rw-r--r-- | testsuite/libffi.closures/cls_double.c (renamed from testsuite/libffi.call/cls_double.c) | 0 | ||||
-rw-r--r-- | testsuite/libffi.closures/cls_double_va.c (renamed from testsuite/libffi.call/cls_double_va.c) | 0 | ||||
-rw-r--r-- | testsuite/libffi.closures/cls_float.c (renamed from testsuite/libffi.call/cls_float.c) | 0 | ||||
-rw-r--r-- | testsuite/libffi.closures/cls_longdouble.c (renamed from testsuite/libffi.call/cls_longdouble.c) | 0 | ||||
-rw-r--r-- | testsuite/libffi.closures/cls_longdouble_va.c (renamed from testsuite/libffi.call/cls_longdouble_va.c) | 0 | ||||
-rw-r--r-- | testsuite/libffi.closures/cls_many_mixed_args.c (renamed from testsuite/libffi.call/cls_many_mixed_args.c) | 0 | ||||
-rw-r--r-- | testsuite/libffi.closures/cls_many_mixed_float_double.c (renamed from testsuite/libffi.call/cls_many_mixed_float_double.c) | 0 | ||||
-rw-r--r-- | testsuite/libffi.closures/cls_multi_schar.c (renamed from testsuite/libffi.call/cls_multi_schar.c) | 0 | ||||
-rw-r--r-- | testsuite/libffi.closures/cls_multi_sshort.c (renamed from testsuite/libffi.call/cls_multi_sshort.c) | 0 | ||||
-rw-r--r-- | testsuite/libffi.closures/cls_multi_sshortchar.c (renamed from testsuite/libffi.call/cls_multi_sshortchar.c) | 0 | ||||
-rw-r--r-- | testsuite/libffi.closures/cls_multi_uchar.c (renamed from testsuite/libffi.call/cls_multi_uchar.c) | 0 | ||||
-rw-r--r-- | testsuite/libffi.closures/cls_multi_ushort.c (renamed from testsuite/libffi.call/cls_multi_ushort.c) | 0 | ||||
-rw-r--r-- | testsuite/libffi.closures/cls_multi_ushortchar.c (renamed from testsuite/libffi.call/cls_multi_ushortchar.c) | 0 | ||||
-rw-r--r-- | testsuite/libffi.closures/cls_pointer.c (renamed from testsuite/libffi.call/cls_pointer.c) | 0 | ||||
-rw-r--r-- | testsuite/libffi.closures/cls_pointer_stack.c (renamed from testsuite/libffi.call/cls_pointer_stack.c) | 0 | ||||
-rw-r--r-- | testsuite/libffi.closures/cls_schar.c (renamed from testsuite/libffi.call/cls_schar.c) | 0 | ||||
-rw-r--r-- | testsuite/libffi.closures/cls_sint.c (renamed from testsuite/libffi.call/cls_sint.c) | 0 | ||||
-rw-r--r-- | testsuite/libffi.closures/cls_sshort.c (renamed from testsuite/libffi.call/cls_sshort.c) | 0 | ||||
-rw-r--r-- | testsuite/libffi.closures/cls_struct_va1.c (renamed from testsuite/libffi.call/cls_struct_va1.c) | 0 | ||||
-rw-r--r-- | testsuite/libffi.closures/cls_uchar.c (renamed from testsuite/libffi.call/cls_uchar.c) | 0 | ||||
-rw-r--r-- | testsuite/libffi.closures/cls_uchar_va.c (renamed from testsuite/libffi.call/cls_uchar_va.c) | 0 | ||||
-rw-r--r-- | testsuite/libffi.closures/cls_uint.c (renamed from testsuite/libffi.call/cls_uint.c) | 0 | ||||
-rw-r--r-- | testsuite/libffi.closures/cls_uint_va.c (renamed from testsuite/libffi.call/cls_uint_va.c) | 0 | ||||
-rw-r--r-- | testsuite/libffi.closures/cls_ulong_va.c (renamed from testsuite/libffi.call/cls_ulong_va.c) | 0 | ||||
-rw-r--r-- | testsuite/libffi.closures/cls_ulonglong.c (renamed from testsuite/libffi.call/cls_ulonglong.c) | 0 | ||||
-rw-r--r-- | testsuite/libffi.closures/cls_ushort.c (renamed from testsuite/libffi.call/cls_ushort.c) | 0 | ||||
-rw-r--r-- | testsuite/libffi.closures/cls_ushort_va.c (renamed from testsuite/libffi.call/cls_ushort_va.c) | 0 | ||||
-rw-r--r-- | testsuite/libffi.closures/ffitest.h | 138 |
76 files changed, 188 insertions, 0 deletions
diff --git a/testsuite/libffi.closures/closure.exp b/testsuite/libffi.closures/closure.exp new file mode 100644 index 0000000..eafbef0 --- /dev/null +++ b/testsuite/libffi.closures/closure.exp @@ -0,0 +1,50 @@ +# Copyright (C) 2003, 2006, 2009, 2010, 2014, 2019 Free Software Foundation, Inc. +# Copyright (C) 2019 Anthony Green + +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; see the file COPYING3. If not see +# <http://www.gnu.org/licenses/>. + +dg-init +libffi-init + +global srcdir subdir + +if { [string match $compiler_vendor "microsoft"] } { + # -wd4005 macro redefinition + # -wd4244 implicit conversion to type of smaller size + # -wd4305 truncation to smaller type + # -wd4477 printf %lu of uintptr_t + # -wd4312 implicit conversion to type of greater size + # -wd4311 pointer truncation to unsigned long + # -EHsc C++ Exception Handling (no SEH exceptions) + set additional_options "-wd4005 -wd4244 -wd4305 -wd4477 -wd4312 -wd4311 -EHsc"; +} else { + set additional_options ""; +} + +set tlist [lsort [glob -nocomplain -- $srcdir/$subdir/*.c]] + +if { [libffi_feature_test "#if FFI_CLOSURES"] } { + run-many-tests $tlist "" +} else { + foreach test $tlist { + unsupported "$test" + } +} + +dg-finish + +# Local Variables: +# tcl-indent-level:4 +# End: diff --git a/testsuite/libffi.call/closure_fn0.c b/testsuite/libffi.closures/closure_fn0.c index a579ff6..a579ff6 100644 --- a/testsuite/libffi.call/closure_fn0.c +++ b/testsuite/libffi.closures/closure_fn0.c diff --git a/testsuite/libffi.call/closure_fn1.c b/testsuite/libffi.closures/closure_fn1.c index 9123173..9123173 100644 --- a/testsuite/libffi.call/closure_fn1.c +++ b/testsuite/libffi.closures/closure_fn1.c diff --git a/testsuite/libffi.call/closure_fn2.c b/testsuite/libffi.closures/closure_fn2.c index 08ff9d9..08ff9d9 100644 --- a/testsuite/libffi.call/closure_fn2.c +++ b/testsuite/libffi.closures/closure_fn2.c diff --git a/testsuite/libffi.call/closure_fn3.c b/testsuite/libffi.closures/closure_fn3.c index 9b54d80..9b54d80 100644 --- a/testsuite/libffi.call/closure_fn3.c +++ b/testsuite/libffi.closures/closure_fn3.c diff --git a/testsuite/libffi.call/closure_fn4.c b/testsuite/libffi.closures/closure_fn4.c index d4a1530..d4a1530 100644 --- a/testsuite/libffi.call/closure_fn4.c +++ b/testsuite/libffi.closures/closure_fn4.c diff --git a/testsuite/libffi.call/closure_fn5.c b/testsuite/libffi.closures/closure_fn5.c index 9907442..9907442 100644 --- a/testsuite/libffi.call/closure_fn5.c +++ b/testsuite/libffi.closures/closure_fn5.c diff --git a/testsuite/libffi.call/closure_fn6.c b/testsuite/libffi.closures/closure_fn6.c index 73c54fd..73c54fd 100644 --- a/testsuite/libffi.call/closure_fn6.c +++ b/testsuite/libffi.closures/closure_fn6.c diff --git a/testsuite/libffi.call/closure_loc_fn0.c b/testsuite/libffi.closures/closure_loc_fn0.c index b3afa0b..b3afa0b 100644 --- a/testsuite/libffi.call/closure_loc_fn0.c +++ b/testsuite/libffi.closures/closure_loc_fn0.c diff --git a/testsuite/libffi.call/closure_simple.c b/testsuite/libffi.closures/closure_simple.c index 5a4e728..5a4e728 100644 --- a/testsuite/libffi.call/closure_simple.c +++ b/testsuite/libffi.closures/closure_simple.c diff --git a/testsuite/libffi.call/cls_12byte.c b/testsuite/libffi.closures/cls_12byte.c index ea0825d..ea0825d 100644 --- a/testsuite/libffi.call/cls_12byte.c +++ b/testsuite/libffi.closures/cls_12byte.c diff --git a/testsuite/libffi.call/cls_16byte.c b/testsuite/libffi.closures/cls_16byte.c index 89a08a2..89a08a2 100644 --- a/testsuite/libffi.call/cls_16byte.c +++ b/testsuite/libffi.closures/cls_16byte.c diff --git a/testsuite/libffi.call/cls_18byte.c b/testsuite/libffi.closures/cls_18byte.c index 9f75da8..9f75da8 100644 --- a/testsuite/libffi.call/cls_18byte.c +++ b/testsuite/libffi.closures/cls_18byte.c diff --git a/testsuite/libffi.call/cls_19byte.c b/testsuite/libffi.closures/cls_19byte.c index 278794b..278794b 100644 --- a/testsuite/libffi.call/cls_19byte.c +++ b/testsuite/libffi.closures/cls_19byte.c diff --git a/testsuite/libffi.call/cls_1_1byte.c b/testsuite/libffi.closures/cls_1_1byte.c index 82492c0..82492c0 100644 --- a/testsuite/libffi.call/cls_1_1byte.c +++ b/testsuite/libffi.closures/cls_1_1byte.c diff --git a/testsuite/libffi.call/cls_20byte.c b/testsuite/libffi.closures/cls_20byte.c index 3f8bb28..3f8bb28 100644 --- a/testsuite/libffi.call/cls_20byte.c +++ b/testsuite/libffi.closures/cls_20byte.c diff --git a/testsuite/libffi.call/cls_20byte1.c b/testsuite/libffi.closures/cls_20byte1.c index 6562727..6562727 100644 --- a/testsuite/libffi.call/cls_20byte1.c +++ b/testsuite/libffi.closures/cls_20byte1.c diff --git a/testsuite/libffi.call/cls_24byte.c b/testsuite/libffi.closures/cls_24byte.c index 1d82f6e..1d82f6e 100644 --- a/testsuite/libffi.call/cls_24byte.c +++ b/testsuite/libffi.closures/cls_24byte.c diff --git a/testsuite/libffi.call/cls_2byte.c b/testsuite/libffi.closures/cls_2byte.c index 81bb0a6..81bb0a6 100644 --- a/testsuite/libffi.call/cls_2byte.c +++ b/testsuite/libffi.closures/cls_2byte.c diff --git a/testsuite/libffi.call/cls_3_1byte.c b/testsuite/libffi.closures/cls_3_1byte.c index b782746..b782746 100644 --- a/testsuite/libffi.call/cls_3_1byte.c +++ b/testsuite/libffi.closures/cls_3_1byte.c diff --git a/testsuite/libffi.call/cls_3byte1.c b/testsuite/libffi.closures/cls_3byte1.c index a02c463..a02c463 100644 --- a/testsuite/libffi.call/cls_3byte1.c +++ b/testsuite/libffi.closures/cls_3byte1.c diff --git a/testsuite/libffi.call/cls_3byte2.c b/testsuite/libffi.closures/cls_3byte2.c index c7251ce..c7251ce 100644 --- a/testsuite/libffi.call/cls_3byte2.c +++ b/testsuite/libffi.closures/cls_3byte2.c diff --git a/testsuite/libffi.call/cls_3float.c b/testsuite/libffi.closures/cls_3float.c index 48888f8..48888f8 100644 --- a/testsuite/libffi.call/cls_3float.c +++ b/testsuite/libffi.closures/cls_3float.c diff --git a/testsuite/libffi.call/cls_4_1byte.c b/testsuite/libffi.closures/cls_4_1byte.c index 2d6d8b6..2d6d8b6 100644 --- a/testsuite/libffi.call/cls_4_1byte.c +++ b/testsuite/libffi.closures/cls_4_1byte.c diff --git a/testsuite/libffi.call/cls_4byte.c b/testsuite/libffi.closures/cls_4byte.c index 4ac3787..4ac3787 100644 --- a/testsuite/libffi.call/cls_4byte.c +++ b/testsuite/libffi.closures/cls_4byte.c diff --git a/testsuite/libffi.call/cls_5_1_byte.c b/testsuite/libffi.closures/cls_5_1_byte.c index ad9d51c..ad9d51c 100644 --- a/testsuite/libffi.call/cls_5_1_byte.c +++ b/testsuite/libffi.closures/cls_5_1_byte.c diff --git a/testsuite/libffi.call/cls_5byte.c b/testsuite/libffi.closures/cls_5byte.c index 4e0c000..4e0c000 100644 --- a/testsuite/libffi.call/cls_5byte.c +++ b/testsuite/libffi.closures/cls_5byte.c diff --git a/testsuite/libffi.call/cls_64byte.c b/testsuite/libffi.closures/cls_64byte.c index a55edc2..a55edc2 100644 --- a/testsuite/libffi.call/cls_64byte.c +++ b/testsuite/libffi.closures/cls_64byte.c diff --git a/testsuite/libffi.call/cls_6_1_byte.c b/testsuite/libffi.closures/cls_6_1_byte.c index b4dcdba..b4dcdba 100644 --- a/testsuite/libffi.call/cls_6_1_byte.c +++ b/testsuite/libffi.closures/cls_6_1_byte.c diff --git a/testsuite/libffi.call/cls_6byte.c b/testsuite/libffi.closures/cls_6byte.c index 7406780..7406780 100644 --- a/testsuite/libffi.call/cls_6byte.c +++ b/testsuite/libffi.closures/cls_6byte.c diff --git a/testsuite/libffi.call/cls_7_1_byte.c b/testsuite/libffi.closures/cls_7_1_byte.c index 14a7e96..14a7e96 100644 --- a/testsuite/libffi.call/cls_7_1_byte.c +++ b/testsuite/libffi.closures/cls_7_1_byte.c diff --git a/testsuite/libffi.call/cls_7byte.c b/testsuite/libffi.closures/cls_7byte.c index 1645cc6..1645cc6 100644 --- a/testsuite/libffi.call/cls_7byte.c +++ b/testsuite/libffi.closures/cls_7byte.c diff --git a/testsuite/libffi.call/cls_8byte.c b/testsuite/libffi.closures/cls_8byte.c index f6c1ea5..f6c1ea5 100644 --- a/testsuite/libffi.call/cls_8byte.c +++ b/testsuite/libffi.closures/cls_8byte.c diff --git a/testsuite/libffi.call/cls_9byte1.c b/testsuite/libffi.closures/cls_9byte1.c index 0b85722..0b85722 100644 --- a/testsuite/libffi.call/cls_9byte1.c +++ b/testsuite/libffi.closures/cls_9byte1.c diff --git a/testsuite/libffi.call/cls_9byte2.c b/testsuite/libffi.closures/cls_9byte2.c index edf991d..edf991d 100644 --- a/testsuite/libffi.call/cls_9byte2.c +++ b/testsuite/libffi.closures/cls_9byte2.c diff --git a/testsuite/libffi.call/cls_align_double.c b/testsuite/libffi.closures/cls_align_double.c index aad5f3c..aad5f3c 100644 --- a/testsuite/libffi.call/cls_align_double.c +++ b/testsuite/libffi.closures/cls_align_double.c diff --git a/testsuite/libffi.call/cls_align_float.c b/testsuite/libffi.closures/cls_align_float.c index 37e0855..37e0855 100644 --- a/testsuite/libffi.call/cls_align_float.c +++ b/testsuite/libffi.closures/cls_align_float.c diff --git a/testsuite/libffi.call/cls_align_longdouble.c b/testsuite/libffi.closures/cls_align_longdouble.c index b3322d8..b3322d8 100644 --- a/testsuite/libffi.call/cls_align_longdouble.c +++ b/testsuite/libffi.closures/cls_align_longdouble.c diff --git a/testsuite/libffi.call/cls_align_longdouble_split.c b/testsuite/libffi.closures/cls_align_longdouble_split.c index cc1c43b..cc1c43b 100644 --- a/testsuite/libffi.call/cls_align_longdouble_split.c +++ b/testsuite/libffi.closures/cls_align_longdouble_split.c diff --git a/testsuite/libffi.call/cls_align_longdouble_split2.c b/testsuite/libffi.closures/cls_align_longdouble_split2.c index 5d3bec0..5d3bec0 100644 --- a/testsuite/libffi.call/cls_align_longdouble_split2.c +++ b/testsuite/libffi.closures/cls_align_longdouble_split2.c diff --git a/testsuite/libffi.call/cls_align_pointer.c b/testsuite/libffi.closures/cls_align_pointer.c index 8fbf36a..8fbf36a 100644 --- a/testsuite/libffi.call/cls_align_pointer.c +++ b/testsuite/libffi.closures/cls_align_pointer.c diff --git a/testsuite/libffi.call/cls_align_sint16.c b/testsuite/libffi.closures/cls_align_sint16.c index 039b874..039b874 100644 --- a/testsuite/libffi.call/cls_align_sint16.c +++ b/testsuite/libffi.closures/cls_align_sint16.c diff --git a/testsuite/libffi.call/cls_align_sint32.c b/testsuite/libffi.closures/cls_align_sint32.c index c96c6d1..c96c6d1 100644 --- a/testsuite/libffi.call/cls_align_sint32.c +++ b/testsuite/libffi.closures/cls_align_sint32.c diff --git a/testsuite/libffi.call/cls_align_sint64.c b/testsuite/libffi.closures/cls_align_sint64.c index 9aa7bdd..9aa7bdd 100644 --- a/testsuite/libffi.call/cls_align_sint64.c +++ b/testsuite/libffi.closures/cls_align_sint64.c diff --git a/testsuite/libffi.call/cls_align_uint16.c b/testsuite/libffi.closures/cls_align_uint16.c index 97620b7..97620b7 100644 --- a/testsuite/libffi.call/cls_align_uint16.c +++ b/testsuite/libffi.closures/cls_align_uint16.c diff --git a/testsuite/libffi.call/cls_align_uint32.c b/testsuite/libffi.closures/cls_align_uint32.c index 5766fad..5766fad 100644 --- a/testsuite/libffi.call/cls_align_uint32.c +++ b/testsuite/libffi.closures/cls_align_uint32.c diff --git a/testsuite/libffi.call/cls_align_uint64.c b/testsuite/libffi.closures/cls_align_uint64.c index a52cb89..a52cb89 100644 --- a/testsuite/libffi.call/cls_align_uint64.c +++ b/testsuite/libffi.closures/cls_align_uint64.c diff --git a/testsuite/libffi.call/cls_dbls_struct.c b/testsuite/libffi.closures/cls_dbls_struct.c index e451dea..e451dea 100644 --- a/testsuite/libffi.call/cls_dbls_struct.c +++ b/testsuite/libffi.closures/cls_dbls_struct.c diff --git a/testsuite/libffi.call/cls_double.c b/testsuite/libffi.closures/cls_double.c index 84ad4cb..84ad4cb 100644 --- a/testsuite/libffi.call/cls_double.c +++ b/testsuite/libffi.closures/cls_double.c diff --git a/testsuite/libffi.call/cls_double_va.c b/testsuite/libffi.closures/cls_double_va.c index e077f92..e077f92 100644 --- a/testsuite/libffi.call/cls_double_va.c +++ b/testsuite/libffi.closures/cls_double_va.c diff --git a/testsuite/libffi.call/cls_float.c b/testsuite/libffi.closures/cls_float.c index 0090fed..0090fed 100644 --- a/testsuite/libffi.call/cls_float.c +++ b/testsuite/libffi.closures/cls_float.c diff --git a/testsuite/libffi.call/cls_longdouble.c b/testsuite/libffi.closures/cls_longdouble.c index d24e72e..d24e72e 100644 --- a/testsuite/libffi.call/cls_longdouble.c +++ b/testsuite/libffi.closures/cls_longdouble.c diff --git a/testsuite/libffi.call/cls_longdouble_va.c b/testsuite/libffi.closures/cls_longdouble_va.c index 39b438b..39b438b 100644 --- a/testsuite/libffi.call/cls_longdouble_va.c +++ b/testsuite/libffi.closures/cls_longdouble_va.c diff --git a/testsuite/libffi.call/cls_many_mixed_args.c b/testsuite/libffi.closures/cls_many_mixed_args.c index 7fd6c82..7fd6c82 100644 --- a/testsuite/libffi.call/cls_many_mixed_args.c +++ b/testsuite/libffi.closures/cls_many_mixed_args.c diff --git a/testsuite/libffi.call/cls_many_mixed_float_double.c b/testsuite/libffi.closures/cls_many_mixed_float_double.c index 62b0697..62b0697 100644 --- a/testsuite/libffi.call/cls_many_mixed_float_double.c +++ b/testsuite/libffi.closures/cls_many_mixed_float_double.c diff --git a/testsuite/libffi.call/cls_multi_schar.c b/testsuite/libffi.closures/cls_multi_schar.c index 71df7b6..71df7b6 100644 --- a/testsuite/libffi.call/cls_multi_schar.c +++ b/testsuite/libffi.closures/cls_multi_schar.c diff --git a/testsuite/libffi.call/cls_multi_sshort.c b/testsuite/libffi.closures/cls_multi_sshort.c index 4c39153..4c39153 100644 --- a/testsuite/libffi.call/cls_multi_sshort.c +++ b/testsuite/libffi.closures/cls_multi_sshort.c diff --git a/testsuite/libffi.call/cls_multi_sshortchar.c b/testsuite/libffi.closures/cls_multi_sshortchar.c index 1c3aeb5..1c3aeb5 100644 --- a/testsuite/libffi.call/cls_multi_sshortchar.c +++ b/testsuite/libffi.closures/cls_multi_sshortchar.c diff --git a/testsuite/libffi.call/cls_multi_uchar.c b/testsuite/libffi.closures/cls_multi_uchar.c index 009c02c..009c02c 100644 --- a/testsuite/libffi.call/cls_multi_uchar.c +++ b/testsuite/libffi.closures/cls_multi_uchar.c diff --git a/testsuite/libffi.call/cls_multi_ushort.c b/testsuite/libffi.closures/cls_multi_ushort.c index dd10ca7..dd10ca7 100644 --- a/testsuite/libffi.call/cls_multi_ushort.c +++ b/testsuite/libffi.closures/cls_multi_ushort.c diff --git a/testsuite/libffi.call/cls_multi_ushortchar.c b/testsuite/libffi.closures/cls_multi_ushortchar.c index 2588e97..2588e97 100644 --- a/testsuite/libffi.call/cls_multi_ushortchar.c +++ b/testsuite/libffi.closures/cls_multi_ushortchar.c diff --git a/testsuite/libffi.call/cls_pointer.c b/testsuite/libffi.closures/cls_pointer.c index d82a87a..d82a87a 100644 --- a/testsuite/libffi.call/cls_pointer.c +++ b/testsuite/libffi.closures/cls_pointer.c diff --git a/testsuite/libffi.call/cls_pointer_stack.c b/testsuite/libffi.closures/cls_pointer_stack.c index 1f1d915..1f1d915 100644 --- a/testsuite/libffi.call/cls_pointer_stack.c +++ b/testsuite/libffi.closures/cls_pointer_stack.c diff --git a/testsuite/libffi.call/cls_schar.c b/testsuite/libffi.closures/cls_schar.c index 82986b1..82986b1 100644 --- a/testsuite/libffi.call/cls_schar.c +++ b/testsuite/libffi.closures/cls_schar.c diff --git a/testsuite/libffi.call/cls_sint.c b/testsuite/libffi.closures/cls_sint.c index c7e13b7..c7e13b7 100644 --- a/testsuite/libffi.call/cls_sint.c +++ b/testsuite/libffi.closures/cls_sint.c diff --git a/testsuite/libffi.call/cls_sshort.c b/testsuite/libffi.closures/cls_sshort.c index 846d57e..846d57e 100644 --- a/testsuite/libffi.call/cls_sshort.c +++ b/testsuite/libffi.closures/cls_sshort.c diff --git a/testsuite/libffi.call/cls_struct_va1.c b/testsuite/libffi.closures/cls_struct_va1.c index 6d1fdae..6d1fdae 100644 --- a/testsuite/libffi.call/cls_struct_va1.c +++ b/testsuite/libffi.closures/cls_struct_va1.c diff --git a/testsuite/libffi.call/cls_uchar.c b/testsuite/libffi.closures/cls_uchar.c index c1317e7..c1317e7 100644 --- a/testsuite/libffi.call/cls_uchar.c +++ b/testsuite/libffi.closures/cls_uchar.c diff --git a/testsuite/libffi.call/cls_uchar_va.c b/testsuite/libffi.closures/cls_uchar_va.c index 6491c5b..6491c5b 100644 --- a/testsuite/libffi.call/cls_uchar_va.c +++ b/testsuite/libffi.closures/cls_uchar_va.c diff --git a/testsuite/libffi.call/cls_uint.c b/testsuite/libffi.closures/cls_uint.c index 885cff5..885cff5 100644 --- a/testsuite/libffi.call/cls_uint.c +++ b/testsuite/libffi.closures/cls_uint.c diff --git a/testsuite/libffi.call/cls_uint_va.c b/testsuite/libffi.closures/cls_uint_va.c index b04cfd1..b04cfd1 100644 --- a/testsuite/libffi.call/cls_uint_va.c +++ b/testsuite/libffi.closures/cls_uint_va.c diff --git a/testsuite/libffi.call/cls_ulong_va.c b/testsuite/libffi.closures/cls_ulong_va.c index 0315082..0315082 100644 --- a/testsuite/libffi.call/cls_ulong_va.c +++ b/testsuite/libffi.closures/cls_ulong_va.c diff --git a/testsuite/libffi.call/cls_ulonglong.c b/testsuite/libffi.closures/cls_ulonglong.c index 62f2cae..62f2cae 100644 --- a/testsuite/libffi.call/cls_ulonglong.c +++ b/testsuite/libffi.closures/cls_ulonglong.c diff --git a/testsuite/libffi.call/cls_ushort.c b/testsuite/libffi.closures/cls_ushort.c index a00100e..a00100e 100644 --- a/testsuite/libffi.call/cls_ushort.c +++ b/testsuite/libffi.closures/cls_ushort.c diff --git a/testsuite/libffi.call/cls_ushort_va.c b/testsuite/libffi.closures/cls_ushort_va.c index 37aa106..37aa106 100644 --- a/testsuite/libffi.call/cls_ushort_va.c +++ b/testsuite/libffi.closures/cls_ushort_va.c diff --git a/testsuite/libffi.closures/ffitest.h b/testsuite/libffi.closures/ffitest.h new file mode 100644 index 0000000..cfce1ad --- /dev/null +++ b/testsuite/libffi.closures/ffitest.h @@ -0,0 +1,138 @@ +#include <stdlib.h> +#include <stdio.h> +#include <string.h> +#include <fcntl.h> +#include <ffi.h> +#include "fficonfig.h" + +#if defined HAVE_STDINT_H +#include <stdint.h> +#endif + +#if defined HAVE_INTTYPES_H +#include <inttypes.h> +#endif + +#define MAX_ARGS 256 + +#define CHECK(x) (void)(!(x) ? (abort(), 1) : 0) + +/* Define macros so that compilers other than gcc can run the tests. */ +#undef __UNUSED__ +#if defined(__GNUC__) +#define __UNUSED__ __attribute__((__unused__)) +#define __STDCALL__ __attribute__((stdcall)) +#define __THISCALL__ __attribute__((thiscall)) +#define __FASTCALL__ __attribute__((fastcall)) +#define __MSABI__ __attribute__((ms_abi)) +#else +#define __UNUSED__ +#define __STDCALL__ __stdcall +#define __THISCALL__ __thiscall +#define __FASTCALL__ __fastcall +#endif + +#ifndef ABI_NUM +#define ABI_NUM FFI_DEFAULT_ABI +#define ABI_ATTR +#endif + +/* Prefer MAP_ANON(YMOUS) to /dev/zero, since we don't need to keep a + file open. */ +#ifdef HAVE_MMAP_ANON +# undef HAVE_MMAP_DEV_ZERO + +# include <sys/mman.h> +# ifndef MAP_FAILED +# define MAP_FAILED -1 +# endif +# if !defined (MAP_ANONYMOUS) && defined (MAP_ANON) +# define MAP_ANONYMOUS MAP_ANON +# endif +# define USING_MMAP + +#endif + +#ifdef HAVE_MMAP_DEV_ZERO + +# include <sys/mman.h> +# ifndef MAP_FAILED +# define MAP_FAILED -1 +# endif +# define USING_MMAP + +#endif + +/* MinGW kludge. */ +#if defined(_WIN64) | defined(_WIN32) +#define PRIdLL "I64d" +#define PRIuLL "I64u" +#else +#define PRIdLL "lld" +#define PRIuLL "llu" +#endif + +/* Tru64 UNIX kludge. */ +#if defined(__alpha__) && defined(__osf__) +/* Tru64 UNIX V4.0 doesn't support %lld/%lld, but long is 64-bit. */ +#undef PRIdLL +#define PRIdLL "ld" +#undef PRIuLL +#define PRIuLL "lu" +#define PRId8 "hd" +#define PRIu8 "hu" +#define PRId64 "ld" +#define PRIu64 "lu" +#define PRIuPTR "lu" +#endif + +/* PA HP-UX kludge. */ +#if defined(__hppa__) && defined(__hpux__) && !defined(PRIuPTR) +#define PRIuPTR "lu" +#endif + +/* IRIX kludge. */ +#if defined(__sgi) +/* IRIX 6.5 <inttypes.h> provides all definitions, but only for C99 + compilations. */ +#define PRId8 "hhd" +#define PRIu8 "hhu" +#if (_MIPS_SZLONG == 32) +#define PRId64 "lld" +#define PRIu64 "llu" +#endif +/* This doesn't match <inttypes.h>, which always has "lld" here, but the + arguments are uint64_t, int64_t, which are unsigned long, long for + 64-bit in <sgidefs.h>. */ +#if (_MIPS_SZLONG == 64) +#define PRId64 "ld" +#define PRIu64 "lu" +#endif +/* This doesn't match <inttypes.h>, which has "u" here, but the arguments + are uintptr_t, which is always unsigned long. */ +#define PRIuPTR "lu" +#endif + +/* Solaris < 10 kludge. */ +#if defined(__sun__) && defined(__svr4__) && !defined(PRIuPTR) +#if defined(__arch64__) || defined (__x86_64__) +#define PRIuPTR "lu" +#else +#define PRIuPTR "u" +#endif +#endif + +/* MSVC kludge. */ +#if defined _MSC_VER +#if !defined(__cplusplus) || defined(__STDC_FORMAT_MACROS) +#define PRIuPTR "lu" +#define PRIu8 "u" +#define PRId8 "d" +#define PRIu64 "I64u" +#define PRId64 "I64d" +#endif +#endif + +#ifndef PRIuPTR +#define PRIuPTR "u" +#endif |