ffi 1.17.3 → 1.17.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (277) hide show
  1. checksums.yaml +4 -4
  2. checksums.yaml.gz.sig +0 -0
  3. data/CHANGELOG.md +10 -1
  4. data/ext/ffi_c/StructLayout.c +129 -12
  5. data/ffi.gemspec +3 -1
  6. data/lib/ffi/version.rb +1 -1
  7. data.tar.gz.sig +0 -0
  8. metadata +1 -269
  9. metadata.gz.sig +0 -0
  10. data/ext/ffi_c/libffi/.allow-ai-service +0 -0
  11. data/ext/ffi_c/libffi/.ci/Containerfile.ppc64le +0 -12
  12. data/ext/ffi_c/libffi/.ci/ar-lib +0 -270
  13. data/ext/ffi_c/libffi/.ci/bfin-sim.exp +0 -58
  14. data/ext/ffi_c/libffi/.ci/build-cross-in-container.sh +0 -18
  15. data/ext/ffi_c/libffi/.ci/build-in-container.sh +0 -10
  16. data/ext/ffi_c/libffi/.ci/build.sh +0 -129
  17. data/ext/ffi_c/libffi/.ci/compile +0 -351
  18. data/ext/ffi_c/libffi/.ci/install.sh +0 -74
  19. data/ext/ffi_c/libffi/.ci/m32r-sim.exp +0 -58
  20. data/ext/ffi_c/libffi/.ci/moxie-sim.exp +0 -60
  21. data/ext/ffi_c/libffi/.ci/msvs-detect +0 -1103
  22. data/ext/ffi_c/libffi/.ci/or1k-sim.exp +0 -58
  23. data/ext/ffi_c/libffi/.ci/powerpc-eabisim.exp +0 -58
  24. data/ext/ffi_c/libffi/.ci/site.exp +0 -35
  25. data/ext/ffi_c/libffi/.ci/unix-noexec.exp +0 -7
  26. data/ext/ffi_c/libffi/.ci/wine-sim.exp +0 -55
  27. data/ext/ffi_c/libffi/.gail-labels +0 -44
  28. data/ext/ffi_c/libffi/.gitattributes +0 -4
  29. data/ext/ffi_c/libffi/.github/issue_template.md +0 -10
  30. data/ext/ffi_c/libffi/.github/workflows/build.yml +0 -358
  31. data/ext/ffi_c/libffi/.github/workflows/emscripten.yml +0 -215
  32. data/ext/ffi_c/libffi/.github/workflows/label-new-issue.yaml +0 -15
  33. data/ext/ffi_c/libffi/.github/workflows/tarball.yml +0 -55
  34. data/ext/ffi_c/libffi/.gitignore +0 -46
  35. data/ext/ffi_c/libffi/testsuite/Makefile.am +0 -89
  36. data/ext/ffi_c/libffi/testsuite/config/default.exp +0 -1
  37. data/ext/ffi_c/libffi/testsuite/emscripten/build-tests.sh +0 -34
  38. data/ext/ffi_c/libffi/testsuite/emscripten/build.sh +0 -46
  39. data/ext/ffi_c/libffi/testsuite/emscripten/conftest.py +0 -86
  40. data/ext/ffi_c/libffi/testsuite/emscripten/node-tests.sh +0 -23
  41. data/ext/ffi_c/libffi/testsuite/emscripten/test.html +0 -7
  42. data/ext/ffi_c/libffi/testsuite/emscripten/test_libffi.py +0 -51
  43. data/ext/ffi_c/libffi/testsuite/lib/libffi.exp +0 -695
  44. data/ext/ffi_c/libffi/testsuite/lib/target-libpath.exp +0 -283
  45. data/ext/ffi_c/libffi/testsuite/lib/wrapper.exp +0 -45
  46. data/ext/ffi_c/libffi/testsuite/libffi.bhaible/Makefile +0 -28
  47. data/ext/ffi_c/libffi/testsuite/libffi.bhaible/README +0 -78
  48. data/ext/ffi_c/libffi/testsuite/libffi.bhaible/alignof.h +0 -50
  49. data/ext/ffi_c/libffi/testsuite/libffi.bhaible/bhaible.exp +0 -63
  50. data/ext/ffi_c/libffi/testsuite/libffi.bhaible/test-call.c +0 -1746
  51. data/ext/ffi_c/libffi/testsuite/libffi.bhaible/test-callback.c +0 -2885
  52. data/ext/ffi_c/libffi/testsuite/libffi.bhaible/testcases.c +0 -747
  53. data/ext/ffi_c/libffi/testsuite/libffi.call/align_mixed.c +0 -46
  54. data/ext/ffi_c/libffi/testsuite/libffi.call/align_stdcall.c +0 -46
  55. data/ext/ffi_c/libffi/testsuite/libffi.call/bpo_38748.c +0 -41
  56. data/ext/ffi_c/libffi/testsuite/libffi.call/call.exp +0 -54
  57. data/ext/ffi_c/libffi/testsuite/libffi.call/callback.c +0 -99
  58. data/ext/ffi_c/libffi/testsuite/libffi.call/callback2.c +0 -108
  59. data/ext/ffi_c/libffi/testsuite/libffi.call/callback3.c +0 -114
  60. data/ext/ffi_c/libffi/testsuite/libffi.call/callback4.c +0 -119
  61. data/ext/ffi_c/libffi/testsuite/libffi.call/err_bad_typedef.c +0 -26
  62. data/ext/ffi_c/libffi/testsuite/libffi.call/ffitest.h +0 -166
  63. data/ext/ffi_c/libffi/testsuite/libffi.call/float.c +0 -59
  64. data/ext/ffi_c/libffi/testsuite/libffi.call/float1.c +0 -60
  65. data/ext/ffi_c/libffi/testsuite/libffi.call/float2.c +0 -61
  66. data/ext/ffi_c/libffi/testsuite/libffi.call/float3.c +0 -74
  67. data/ext/ffi_c/libffi/testsuite/libffi.call/float4.c +0 -62
  68. data/ext/ffi_c/libffi/testsuite/libffi.call/float_va.c +0 -110
  69. data/ext/ffi_c/libffi/testsuite/libffi.call/longjmp.c +0 -60
  70. data/ext/ffi_c/libffi/testsuite/libffi.call/many.c +0 -59
  71. data/ext/ffi_c/libffi/testsuite/libffi.call/many2.c +0 -57
  72. data/ext/ffi_c/libffi/testsuite/libffi.call/many_double.c +0 -70
  73. data/ext/ffi_c/libffi/testsuite/libffi.call/many_mixed.c +0 -78
  74. data/ext/ffi_c/libffi/testsuite/libffi.call/negint.c +0 -52
  75. data/ext/ffi_c/libffi/testsuite/libffi.call/offsets.c +0 -46
  76. data/ext/ffi_c/libffi/testsuite/libffi.call/overread.c +0 -54
  77. data/ext/ffi_c/libffi/testsuite/libffi.call/pr1172638.c +0 -127
  78. data/ext/ffi_c/libffi/testsuite/libffi.call/promotion.c +0 -59
  79. data/ext/ffi_c/libffi/testsuite/libffi.call/pyobjc_tc.c +0 -114
  80. data/ext/ffi_c/libffi/testsuite/libffi.call/return_dbl.c +0 -36
  81. data/ext/ffi_c/libffi/testsuite/libffi.call/return_dbl1.c +0 -43
  82. data/ext/ffi_c/libffi/testsuite/libffi.call/return_dbl2.c +0 -42
  83. data/ext/ffi_c/libffi/testsuite/libffi.call/return_fl.c +0 -35
  84. data/ext/ffi_c/libffi/testsuite/libffi.call/return_fl1.c +0 -36
  85. data/ext/ffi_c/libffi/testsuite/libffi.call/return_fl2.c +0 -49
  86. data/ext/ffi_c/libffi/testsuite/libffi.call/return_fl3.c +0 -42
  87. data/ext/ffi_c/libffi/testsuite/libffi.call/return_ldl.c +0 -34
  88. data/ext/ffi_c/libffi/testsuite/libffi.call/return_ll.c +0 -41
  89. data/ext/ffi_c/libffi/testsuite/libffi.call/return_ll1.c +0 -48
  90. data/ext/ffi_c/libffi/testsuite/libffi.call/return_sc.c +0 -36
  91. data/ext/ffi_c/libffi/testsuite/libffi.call/return_sl.c +0 -42
  92. data/ext/ffi_c/libffi/testsuite/libffi.call/return_uc.c +0 -38
  93. data/ext/ffi_c/libffi/testsuite/libffi.call/return_ul.c +0 -42
  94. data/ext/ffi_c/libffi/testsuite/libffi.call/s55.c +0 -60
  95. data/ext/ffi_c/libffi/testsuite/libffi.call/strlen.c +0 -43
  96. data/ext/ffi_c/libffi/testsuite/libffi.call/strlen2.c +0 -49
  97. data/ext/ffi_c/libffi/testsuite/libffi.call/strlen3.c +0 -49
  98. data/ext/ffi_c/libffi/testsuite/libffi.call/strlen4.c +0 -55
  99. data/ext/ffi_c/libffi/testsuite/libffi.call/struct1.c +0 -67
  100. data/ext/ffi_c/libffi/testsuite/libffi.call/struct10.c +0 -57
  101. data/ext/ffi_c/libffi/testsuite/libffi.call/struct2.c +0 -67
  102. data/ext/ffi_c/libffi/testsuite/libffi.call/struct3.c +0 -60
  103. data/ext/ffi_c/libffi/testsuite/libffi.call/struct4.c +0 -64
  104. data/ext/ffi_c/libffi/testsuite/libffi.call/struct5.c +0 -66
  105. data/ext/ffi_c/libffi/testsuite/libffi.call/struct6.c +0 -64
  106. data/ext/ffi_c/libffi/testsuite/libffi.call/struct7.c +0 -74
  107. data/ext/ffi_c/libffi/testsuite/libffi.call/struct8.c +0 -81
  108. data/ext/ffi_c/libffi/testsuite/libffi.call/struct9.c +0 -68
  109. data/ext/ffi_c/libffi/testsuite/libffi.call/struct_by_value_2.c +0 -63
  110. data/ext/ffi_c/libffi/testsuite/libffi.call/struct_by_value_3.c +0 -65
  111. data/ext/ffi_c/libffi/testsuite/libffi.call/struct_by_value_3f.c +0 -65
  112. data/ext/ffi_c/libffi/testsuite/libffi.call/struct_by_value_4.c +0 -67
  113. data/ext/ffi_c/libffi/testsuite/libffi.call/struct_by_value_4f.c +0 -67
  114. data/ext/ffi_c/libffi/testsuite/libffi.call/struct_by_value_big.c +0 -93
  115. data/ext/ffi_c/libffi/testsuite/libffi.call/struct_by_value_small.c +0 -61
  116. data/ext/ffi_c/libffi/testsuite/libffi.call/struct_int_float.c +0 -88
  117. data/ext/ffi_c/libffi/testsuite/libffi.call/struct_return_2H.c +0 -63
  118. data/ext/ffi_c/libffi/testsuite/libffi.call/struct_return_8H.c +0 -90
  119. data/ext/ffi_c/libffi/testsuite/libffi.call/uninitialized.c +0 -61
  120. data/ext/ffi_c/libffi/testsuite/libffi.call/va_1.c +0 -78
  121. data/ext/ffi_c/libffi/testsuite/libffi.call/va_2.c +0 -220
  122. data/ext/ffi_c/libffi/testsuite/libffi.call/va_3.c +0 -154
  123. data/ext/ffi_c/libffi/testsuite/libffi.call/va_struct1.c +0 -134
  124. data/ext/ffi_c/libffi/testsuite/libffi.call/va_struct2.c +0 -135
  125. data/ext/ffi_c/libffi/testsuite/libffi.call/va_struct3.c +0 -141
  126. data/ext/ffi_c/libffi/testsuite/libffi.call/x32.c +0 -31
  127. data/ext/ffi_c/libffi/testsuite/libffi.closures/closure.exp +0 -67
  128. data/ext/ffi_c/libffi/testsuite/libffi.closures/closure_fn0.c +0 -90
  129. data/ext/ffi_c/libffi/testsuite/libffi.closures/closure_fn1.c +0 -83
  130. data/ext/ffi_c/libffi/testsuite/libffi.closures/closure_fn2.c +0 -83
  131. data/ext/ffi_c/libffi/testsuite/libffi.closures/closure_fn3.c +0 -102
  132. data/ext/ffi_c/libffi/testsuite/libffi.closures/closure_fn4.c +0 -91
  133. data/ext/ffi_c/libffi/testsuite/libffi.closures/closure_fn5.c +0 -94
  134. data/ext/ffi_c/libffi/testsuite/libffi.closures/closure_fn6.c +0 -92
  135. data/ext/ffi_c/libffi/testsuite/libffi.closures/closure_loc_fn0.c +0 -96
  136. data/ext/ffi_c/libffi/testsuite/libffi.closures/closure_simple.c +0 -61
  137. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_12byte.c +0 -112
  138. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_16byte.c +0 -117
  139. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_18byte.c +0 -120
  140. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_19byte.c +0 -131
  141. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_1_1byte.c +0 -93
  142. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_20byte.c +0 -109
  143. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_20byte1.c +0 -113
  144. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_24byte.c +0 -145
  145. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_2byte.c +0 -103
  146. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_3_1byte.c +0 -114
  147. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_3byte1.c +0 -103
  148. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_3byte2.c +0 -103
  149. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_3float.c +0 -113
  150. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_4_1byte.c +0 -120
  151. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_4byte.c +0 -103
  152. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_5_1_byte.c +0 -137
  153. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_5byte.c +0 -116
  154. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_64byte.c +0 -148
  155. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_6_1_byte.c +0 -140
  156. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_6byte.c +0 -121
  157. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_7_1_byte.c +0 -155
  158. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_7byte.c +0 -121
  159. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_8byte.c +0 -102
  160. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_9byte1.c +0 -103
  161. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_9byte2.c +0 -103
  162. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_align_double.c +0 -111
  163. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_align_float.c +0 -109
  164. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_align_longdouble.c +0 -111
  165. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_align_longdouble_split.c +0 -147
  166. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_align_longdouble_split2.c +0 -152
  167. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_align_pointer.c +0 -113
  168. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_align_sint16.c +0 -108
  169. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_align_sint32.c +0 -106
  170. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_align_sint64.c +0 -109
  171. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_align_uint16.c +0 -108
  172. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_align_uint32.c +0 -109
  173. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_align_uint64.c +0 -111
  174. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_dbls_struct.c +0 -68
  175. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_double.c +0 -43
  176. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_double_va.c +0 -69
  177. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_float.c +0 -46
  178. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_longdouble.c +0 -115
  179. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_longdouble_va.c +0 -80
  180. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_many_mixed_args.c +0 -70
  181. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_many_mixed_float_double.c +0 -55
  182. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_multi_schar.c +0 -78
  183. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_multi_sshort.c +0 -79
  184. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_multi_sshortchar.c +0 -94
  185. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_multi_uchar.c +0 -99
  186. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_multi_ushort.c +0 -78
  187. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_multi_ushortchar.c +0 -94
  188. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_pointer.c +0 -79
  189. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_pointer_stack.c +0 -152
  190. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_schar.c +0 -47
  191. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_sint.c +0 -44
  192. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_sshort.c +0 -45
  193. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_struct_va1.c +0 -125
  194. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_uchar.c +0 -45
  195. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_uint.c +0 -47
  196. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_uint_va.c +0 -49
  197. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_ulong_va.c +0 -49
  198. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_ulonglong.c +0 -49
  199. data/ext/ffi_c/libffi/testsuite/libffi.closures/cls_ushort.c +0 -46
  200. data/ext/ffi_c/libffi/testsuite/libffi.closures/err_bad_abi.c +0 -36
  201. data/ext/ffi_c/libffi/testsuite/libffi.closures/ffitest.h +0 -1
  202. data/ext/ffi_c/libffi/testsuite/libffi.closures/huge_struct.c +0 -342
  203. data/ext/ffi_c/libffi/testsuite/libffi.closures/nested_struct.c +0 -175
  204. data/ext/ffi_c/libffi/testsuite/libffi.closures/nested_struct1.c +0 -161
  205. data/ext/ffi_c/libffi/testsuite/libffi.closures/nested_struct10.c +0 -146
  206. data/ext/ffi_c/libffi/testsuite/libffi.closures/nested_struct11.c +0 -137
  207. data/ext/ffi_c/libffi/testsuite/libffi.closures/nested_struct12.c +0 -86
  208. data/ext/ffi_c/libffi/testsuite/libffi.closures/nested_struct13.c +0 -115
  209. data/ext/ffi_c/libffi/testsuite/libffi.closures/nested_struct2.c +0 -119
  210. data/ext/ffi_c/libffi/testsuite/libffi.closures/nested_struct3.c +0 -120
  211. data/ext/ffi_c/libffi/testsuite/libffi.closures/nested_struct4.c +0 -120
  212. data/ext/ffi_c/libffi/testsuite/libffi.closures/nested_struct5.c +0 -121
  213. data/ext/ffi_c/libffi/testsuite/libffi.closures/nested_struct6.c +0 -142
  214. data/ext/ffi_c/libffi/testsuite/libffi.closures/nested_struct7.c +0 -120
  215. data/ext/ffi_c/libffi/testsuite/libffi.closures/nested_struct8.c +0 -142
  216. data/ext/ffi_c/libffi/testsuite/libffi.closures/nested_struct9.c +0 -142
  217. data/ext/ffi_c/libffi/testsuite/libffi.closures/problem1.c +0 -90
  218. data/ext/ffi_c/libffi/testsuite/libffi.closures/single_entry_structs1.c +0 -86
  219. data/ext/ffi_c/libffi/testsuite/libffi.closures/single_entry_structs2.c +0 -102
  220. data/ext/ffi_c/libffi/testsuite/libffi.closures/single_entry_structs3.c +0 -101
  221. data/ext/ffi_c/libffi/testsuite/libffi.closures/stret_large.c +0 -145
  222. data/ext/ffi_c/libffi/testsuite/libffi.closures/stret_large2.c +0 -148
  223. data/ext/ffi_c/libffi/testsuite/libffi.closures/stret_medium.c +0 -124
  224. data/ext/ffi_c/libffi/testsuite/libffi.closures/stret_medium2.c +0 -125
  225. data/ext/ffi_c/libffi/testsuite/libffi.closures/testclosure.c +0 -75
  226. data/ext/ffi_c/libffi/testsuite/libffi.closures/unwindtest.cc +0 -120
  227. data/ext/ffi_c/libffi/testsuite/libffi.closures/unwindtest_ffi_call.cc +0 -57
  228. data/ext/ffi_c/libffi/testsuite/libffi.complex/cls_align_complex.inc +0 -91
  229. data/ext/ffi_c/libffi/testsuite/libffi.complex/cls_align_complex_double.c +0 -10
  230. data/ext/ffi_c/libffi/testsuite/libffi.complex/cls_align_complex_float.c +0 -10
  231. data/ext/ffi_c/libffi/testsuite/libffi.complex/cls_align_complex_longdouble.c +0 -10
  232. data/ext/ffi_c/libffi/testsuite/libffi.complex/cls_complex.inc +0 -42
  233. data/ext/ffi_c/libffi/testsuite/libffi.complex/cls_complex_double.c +0 -10
  234. data/ext/ffi_c/libffi/testsuite/libffi.complex/cls_complex_float.c +0 -10
  235. data/ext/ffi_c/libffi/testsuite/libffi.complex/cls_complex_longdouble.c +0 -10
  236. data/ext/ffi_c/libffi/testsuite/libffi.complex/cls_complex_struct.inc +0 -71
  237. data/ext/ffi_c/libffi/testsuite/libffi.complex/cls_complex_struct_double.c +0 -10
  238. data/ext/ffi_c/libffi/testsuite/libffi.complex/cls_complex_struct_float.c +0 -10
  239. data/ext/ffi_c/libffi/testsuite/libffi.complex/cls_complex_struct_longdouble.c +0 -10
  240. data/ext/ffi_c/libffi/testsuite/libffi.complex/cls_complex_va.inc +0 -80
  241. data/ext/ffi_c/libffi/testsuite/libffi.complex/cls_complex_va_double.c +0 -10
  242. data/ext/ffi_c/libffi/testsuite/libffi.complex/cls_complex_va_float.c +0 -16
  243. data/ext/ffi_c/libffi/testsuite/libffi.complex/cls_complex_va_longdouble.c +0 -10
  244. data/ext/ffi_c/libffi/testsuite/libffi.complex/complex.exp +0 -36
  245. data/ext/ffi_c/libffi/testsuite/libffi.complex/complex.inc +0 -51
  246. data/ext/ffi_c/libffi/testsuite/libffi.complex/complex_defs_double.inc +0 -7
  247. data/ext/ffi_c/libffi/testsuite/libffi.complex/complex_defs_float.inc +0 -7
  248. data/ext/ffi_c/libffi/testsuite/libffi.complex/complex_defs_longdouble.inc +0 -7
  249. data/ext/ffi_c/libffi/testsuite/libffi.complex/complex_double.c +0 -10
  250. data/ext/ffi_c/libffi/testsuite/libffi.complex/complex_float.c +0 -10
  251. data/ext/ffi_c/libffi/testsuite/libffi.complex/complex_int.c +0 -86
  252. data/ext/ffi_c/libffi/testsuite/libffi.complex/complex_longdouble.c +0 -10
  253. data/ext/ffi_c/libffi/testsuite/libffi.complex/ffitest.h +0 -1
  254. data/ext/ffi_c/libffi/testsuite/libffi.complex/many_complex.inc +0 -78
  255. data/ext/ffi_c/libffi/testsuite/libffi.complex/many_complex_double.c +0 -10
  256. data/ext/ffi_c/libffi/testsuite/libffi.complex/many_complex_float.c +0 -10
  257. data/ext/ffi_c/libffi/testsuite/libffi.complex/many_complex_longdouble.c +0 -10
  258. data/ext/ffi_c/libffi/testsuite/libffi.complex/return_complex.inc +0 -37
  259. data/ext/ffi_c/libffi/testsuite/libffi.complex/return_complex1.inc +0 -41
  260. data/ext/ffi_c/libffi/testsuite/libffi.complex/return_complex1_double.c +0 -10
  261. data/ext/ffi_c/libffi/testsuite/libffi.complex/return_complex1_float.c +0 -10
  262. data/ext/ffi_c/libffi/testsuite/libffi.complex/return_complex1_longdouble.c +0 -10
  263. data/ext/ffi_c/libffi/testsuite/libffi.complex/return_complex2.inc +0 -44
  264. data/ext/ffi_c/libffi/testsuite/libffi.complex/return_complex2_double.c +0 -10
  265. data/ext/ffi_c/libffi/testsuite/libffi.complex/return_complex2_float.c +0 -10
  266. data/ext/ffi_c/libffi/testsuite/libffi.complex/return_complex2_longdouble.c +0 -10
  267. data/ext/ffi_c/libffi/testsuite/libffi.complex/return_complex_double.c +0 -10
  268. data/ext/ffi_c/libffi/testsuite/libffi.complex/return_complex_float.c +0 -10
  269. data/ext/ffi_c/libffi/testsuite/libffi.complex/return_complex_longdouble.c +0 -10
  270. data/ext/ffi_c/libffi/testsuite/libffi.go/aa-direct.c +0 -34
  271. data/ext/ffi_c/libffi/testsuite/libffi.go/closure1.c +0 -28
  272. data/ext/ffi_c/libffi/testsuite/libffi.go/ffitest.h +0 -1
  273. data/ext/ffi_c/libffi/testsuite/libffi.go/go.exp +0 -36
  274. data/ext/ffi_c/libffi/testsuite/libffi.go/static-chain.h +0 -19
  275. data/ext/ffi_c/libffi/testsuite/libffi.threads/ffitest.h +0 -1
  276. data/ext/ffi_c/libffi/testsuite/libffi.threads/threads.exp +0 -50
  277. data/ext/ffi_c/libffi/testsuite/libffi.threads/tsan.c +0 -74
@@ -1,43 +0,0 @@
1
- /* Area: ffi_call
2
- Purpose: Check return value double.
3
- Limitations: none.
4
- PR: none.
5
- Originator: <andreast@gcc.gnu.org> 20050212 */
6
-
7
- /* { dg-do run } */
8
- #include "ffitest.h"
9
-
10
- static double return_dbl(double dbl1, float fl2, unsigned int in3, double dbl4)
11
- {
12
- return dbl1 + fl2 + in3 + dbl4;
13
- }
14
- int main (void)
15
- {
16
- ffi_cif cif;
17
- ffi_type *args[MAX_ARGS];
18
- void *values[MAX_ARGS];
19
- double dbl1, dbl4, rdbl;
20
- float fl2;
21
- unsigned int in3;
22
- args[0] = &ffi_type_double;
23
- args[1] = &ffi_type_float;
24
- args[2] = &ffi_type_uint;
25
- args[3] = &ffi_type_double;
26
- values[0] = &dbl1;
27
- values[1] = &fl2;
28
- values[2] = &in3;
29
- values[3] = &dbl4;
30
-
31
- /* Initialize the cif */
32
- CHECK(ffi_prep_cif(&cif, FFI_DEFAULT_ABI, 4,
33
- &ffi_type_double, args) == FFI_OK);
34
- dbl1 = 127.0;
35
- fl2 = 128.0;
36
- in3 = 255;
37
- dbl4 = 512.7;
38
-
39
- ffi_call(&cif, FFI_FN(return_dbl), &rdbl, values);
40
- printf ("%f vs %f\n", rdbl, return_dbl(dbl1, fl2, in3, dbl4));
41
- CHECK(rdbl == dbl1 + fl2 + in3 + dbl4);
42
- exit(0);
43
- }
@@ -1,42 +0,0 @@
1
- /* Area: ffi_call
2
- Purpose: Check return value double.
3
- Limitations: none.
4
- PR: none.
5
- Originator: <andreast@gcc.gnu.org> 20050212 */
6
-
7
- /* { dg-do run } */
8
- #include "ffitest.h"
9
-
10
- static double return_dbl(double dbl1, double dbl2, unsigned int in3, double dbl4)
11
- {
12
- return dbl1 + dbl2 + in3 + dbl4;
13
- }
14
- int main (void)
15
- {
16
- ffi_cif cif;
17
- ffi_type *args[MAX_ARGS];
18
- void *values[MAX_ARGS];
19
- double dbl1, dbl2, dbl4, rdbl;
20
- unsigned int in3;
21
- args[0] = &ffi_type_double;
22
- args[1] = &ffi_type_double;
23
- args[2] = &ffi_type_uint;
24
- args[3] = &ffi_type_double;
25
- values[0] = &dbl1;
26
- values[1] = &dbl2;
27
- values[2] = &in3;
28
- values[3] = &dbl4;
29
-
30
- /* Initialize the cif */
31
- CHECK(ffi_prep_cif(&cif, FFI_DEFAULT_ABI, 4,
32
- &ffi_type_double, args) == FFI_OK);
33
- dbl1 = 127.0;
34
- dbl2 = 128.0;
35
- in3 = 255;
36
- dbl4 = 512.7;
37
-
38
- ffi_call(&cif, FFI_FN(return_dbl), &rdbl, values);
39
- printf ("%f vs %f\n", rdbl, return_dbl(dbl1, dbl2, in3, dbl4));
40
- CHECK(rdbl == dbl1 + dbl2 + in3 + dbl4);
41
- exit(0);
42
- }
@@ -1,35 +0,0 @@
1
- /* Area: ffi_call
2
- Purpose: Check return value float.
3
- Limitations: none.
4
- PR: none.
5
- Originator: <andreast@gcc.gnu.org> 20050212 */
6
-
7
- /* { dg-do run } */
8
- #include "ffitest.h"
9
-
10
- static float return_fl(float fl)
11
- {
12
- return 2 * fl;
13
- }
14
- int main (void)
15
- {
16
- ffi_cif cif;
17
- ffi_type *args[MAX_ARGS];
18
- void *values[MAX_ARGS];
19
- float fl, rfl;
20
-
21
- args[0] = &ffi_type_float;
22
- values[0] = &fl;
23
-
24
- /* Initialize the cif */
25
- CHECK(ffi_prep_cif(&cif, FFI_DEFAULT_ABI, 1,
26
- &ffi_type_float, args) == FFI_OK);
27
-
28
- for (fl = -127.0; fl < 127; fl++)
29
- {
30
- ffi_call(&cif, FFI_FN(return_fl), &rfl, values);
31
- printf ("%f vs %f\n", rfl, return_fl(fl));
32
- CHECK(rfl == 2 * fl);
33
- }
34
- exit(0);
35
- }
@@ -1,36 +0,0 @@
1
- /* Area: ffi_call
2
- Purpose: Check return value float.
3
- Limitations: none.
4
- PR: none.
5
- Originator: <andreast@gcc.gnu.org> 20050212 */
6
-
7
- /* { dg-do run } */
8
- #include "ffitest.h"
9
-
10
- static float return_fl(float fl1, float fl2)
11
- {
12
- return fl1 + fl2;
13
- }
14
- int main (void)
15
- {
16
- ffi_cif cif;
17
- ffi_type *args[MAX_ARGS];
18
- void *values[MAX_ARGS];
19
- float fl1, fl2, rfl;
20
-
21
- args[0] = &ffi_type_float;
22
- args[1] = &ffi_type_float;
23
- values[0] = &fl1;
24
- values[1] = &fl2;
25
-
26
- /* Initialize the cif */
27
- CHECK(ffi_prep_cif(&cif, FFI_DEFAULT_ABI, 2,
28
- &ffi_type_float, args) == FFI_OK);
29
- fl1 = 127.0;
30
- fl2 = 128.0;
31
-
32
- ffi_call(&cif, FFI_FN(return_fl), &rfl, values);
33
- printf ("%f vs %f\n", rfl, return_fl(fl1, fl2));
34
- CHECK(rfl == fl1 + fl2);
35
- exit(0);
36
- }
@@ -1,49 +0,0 @@
1
- /* Area: ffi_call
2
- Purpose: Check return value float.
3
- Limitations: none.
4
- PR: none.
5
- Originator: <andreast@gcc.gnu.org> 20050212 */
6
-
7
- /* { dg-do run } */
8
- #include "ffitest.h"
9
-
10
- /* Use volatile float to avoid false negative on ix86. See PR target/323. */
11
- static float return_fl(float fl1, float fl2, float fl3, float fl4)
12
- {
13
- volatile float sum;
14
-
15
- sum = fl1 + fl2 + fl3 + fl4;
16
- return sum;
17
- }
18
- int main (void)
19
- {
20
- ffi_cif cif;
21
- ffi_type *args[MAX_ARGS];
22
- void *values[MAX_ARGS];
23
- float fl1, fl2, fl3, fl4, rfl;
24
- volatile float sum;
25
-
26
- args[0] = &ffi_type_float;
27
- args[1] = &ffi_type_float;
28
- args[2] = &ffi_type_float;
29
- args[3] = &ffi_type_float;
30
- values[0] = &fl1;
31
- values[1] = &fl2;
32
- values[2] = &fl3;
33
- values[3] = &fl4;
34
-
35
- /* Initialize the cif */
36
- CHECK(ffi_prep_cif(&cif, FFI_DEFAULT_ABI, 4,
37
- &ffi_type_float, args) == FFI_OK);
38
- fl1 = 127.0;
39
- fl2 = 128.0;
40
- fl3 = 255.1;
41
- fl4 = 512.7;
42
-
43
- ffi_call(&cif, FFI_FN(return_fl), &rfl, values);
44
- printf ("%f vs %f\n", rfl, return_fl(fl1, fl2, fl3, fl4));
45
-
46
- sum = fl1 + fl2 + fl3 + fl4;
47
- CHECK(rfl == sum);
48
- exit(0);
49
- }
@@ -1,42 +0,0 @@
1
- /* Area: ffi_call
2
- Purpose: Check return value float.
3
- Limitations: none.
4
- PR: none.
5
- Originator: <andreast@gcc.gnu.org> 20050212 */
6
-
7
- /* { dg-do run } */
8
- #include "ffitest.h"
9
-
10
- static float return_fl(float fl1, float fl2, unsigned int in3, float fl4)
11
- {
12
- return fl1 + fl2 + in3 + fl4;
13
- }
14
- int main (void)
15
- {
16
- ffi_cif cif;
17
- ffi_type *args[MAX_ARGS];
18
- void *values[MAX_ARGS];
19
- float fl1, fl2, fl4, rfl;
20
- unsigned int in3;
21
- args[0] = &ffi_type_float;
22
- args[1] = &ffi_type_float;
23
- args[2] = &ffi_type_uint;
24
- args[3] = &ffi_type_float;
25
- values[0] = &fl1;
26
- values[1] = &fl2;
27
- values[2] = &in3;
28
- values[3] = &fl4;
29
-
30
- /* Initialize the cif */
31
- CHECK(ffi_prep_cif(&cif, FFI_DEFAULT_ABI, 4,
32
- &ffi_type_float, args) == FFI_OK);
33
- fl1 = 127.0;
34
- fl2 = 128.0;
35
- in3 = 255;
36
- fl4 = 512.7;
37
-
38
- ffi_call(&cif, FFI_FN(return_fl), &rfl, values);
39
- printf ("%f vs %f\n", rfl, return_fl(fl1, fl2, in3, fl4));
40
- CHECK(rfl == fl1 + fl2 + in3 + fl4);
41
- exit(0);
42
- }
@@ -1,34 +0,0 @@
1
- /* Area: ffi_call
2
- Purpose: Check return value long double.
3
- Limitations: none.
4
- PR: none.
5
- Originator: <andreast@gcc.gnu.org> 20071113 */
6
- /* { dg-do run } */
7
-
8
- #include "ffitest.h"
9
-
10
- static long double return_ldl(long double ldl)
11
- {
12
- return 2*ldl;
13
- }
14
- int main (void)
15
- {
16
- ffi_cif cif;
17
- ffi_type *args[MAX_ARGS];
18
- void *values[MAX_ARGS];
19
- long double ldl, rldl;
20
-
21
- args[0] = &ffi_type_longdouble;
22
- values[0] = &ldl;
23
-
24
- /* Initialize the cif */
25
- CHECK(ffi_prep_cif(&cif, FFI_DEFAULT_ABI, 1,
26
- &ffi_type_longdouble, args) == FFI_OK);
27
-
28
- for (ldl = -127.0; ldl < 127.0; ldl++)
29
- {
30
- ffi_call(&cif, FFI_FN(return_ldl), &rldl, values);
31
- CHECK(rldl == 2 * ldl);
32
- }
33
- exit(0);
34
- }
@@ -1,41 +0,0 @@
1
- /* Area: ffi_call
2
- Purpose: Check return value long long.
3
- Limitations: none.
4
- PR: none.
5
- Originator: From the original ffitest.c */
6
-
7
- /* { dg-do run } */
8
- #include "ffitest.h"
9
- static long long return_ll(long long ll)
10
- {
11
- return ll;
12
- }
13
-
14
- int main (void)
15
- {
16
- ffi_cif cif;
17
- ffi_type *args[MAX_ARGS];
18
- void *values[MAX_ARGS];
19
- long long rlonglong;
20
- long long ll;
21
-
22
- args[0] = &ffi_type_sint64;
23
- values[0] = &ll;
24
-
25
- /* Initialize the cif */
26
- CHECK(ffi_prep_cif(&cif, FFI_DEFAULT_ABI, 1,
27
- &ffi_type_sint64, args) == FFI_OK);
28
-
29
- for (ll = 0LL; ll < 100LL; ll++)
30
- {
31
- ffi_call(&cif, FFI_FN(return_ll), &rlonglong, values);
32
- CHECK(rlonglong == ll);
33
- }
34
-
35
- for (ll = 55555555555000LL; ll < 55555555555100LL; ll++)
36
- {
37
- ffi_call(&cif, FFI_FN(return_ll), &rlonglong, values);
38
- CHECK(rlonglong == ll);
39
- }
40
- exit(0);
41
- }
@@ -1,48 +0,0 @@
1
- /* Area: ffi_call
2
- Purpose: Check if long long are passed in the corresponding regs on ppc.
3
- Limitations: none.
4
- PR: 20104.
5
- Originator: <andreast@gcc.gnu.org> 20050222 */
6
-
7
- /* { dg-do run } */
8
- /* { dg-options "-Wno-format" { target alpha*-dec-osf* } } */
9
- #include "ffitest.h"
10
- static long long return_ll(int ll0, long long ll1, int ll2)
11
- {
12
- CHECK(ll0 == 11111111);
13
- CHECK(ll1 == 11111111111000LL);
14
- CHECK(ll2 == 11111111);
15
- return ll0 + ll1 + ll2;
16
- }
17
-
18
- int main (void)
19
- {
20
- ffi_cif cif;
21
- ffi_type *args[MAX_ARGS];
22
- void *values[MAX_ARGS];
23
- long long rlonglong;
24
- long long ll1;
25
- unsigned ll0, ll2;
26
-
27
- args[0] = &ffi_type_sint;
28
- args[1] = &ffi_type_sint64;
29
- args[2] = &ffi_type_sint;
30
- values[0] = &ll0;
31
- values[1] = &ll1;
32
- values[2] = &ll2;
33
-
34
- /* Initialize the cif */
35
- CHECK(ffi_prep_cif(&cif, FFI_DEFAULT_ABI, 3,
36
- &ffi_type_sint64, args) == FFI_OK);
37
-
38
- ll0 = 11111111;
39
- ll1 = 11111111111000LL;
40
- ll2 = 11111111;
41
-
42
- ffi_call(&cif, FFI_FN(return_ll), &rlonglong, values);
43
- printf("res: %" PRIdLL ", %" PRIdLL "\n", rlonglong, ll0 + ll1 + ll2);
44
- /* { dg-output "res: 11111133333222, 11111133333222" } */
45
- CHECK(rlonglong == 11111133333222);
46
- CHECK(ll0 + ll1 + ll2 == 11111133333222);
47
- exit(0);
48
- }
@@ -1,36 +0,0 @@
1
- /* Area: ffi_call
2
- Purpose: Check return value signed char.
3
- Limitations: none.
4
- PR: none.
5
- Originator: From the original ffitest.c */
6
-
7
- /* { dg-do run } */
8
- #include "ffitest.h"
9
-
10
- static signed char return_sc(signed char sc)
11
- {
12
- return sc;
13
- }
14
- int main (void)
15
- {
16
- ffi_cif cif;
17
- ffi_type *args[MAX_ARGS];
18
- void *values[MAX_ARGS];
19
- ffi_arg rint;
20
- signed char sc;
21
-
22
- args[0] = &ffi_type_schar;
23
- values[0] = &sc;
24
-
25
- /* Initialize the cif */
26
- CHECK(ffi_prep_cif(&cif, FFI_DEFAULT_ABI, 1,
27
- &ffi_type_schar, args) == FFI_OK);
28
-
29
- for (sc = (signed char) -127;
30
- sc < (signed char) 127; sc++)
31
- {
32
- ffi_call(&cif, FFI_FN(return_sc), &rint, values);
33
- CHECK((signed char)rint == sc);
34
- }
35
- exit(0);
36
- }
@@ -1,42 +0,0 @@
1
- /* Area: ffi_call
2
- Purpose: Check if long as return type is handled correctly.
3
- Limitations: none.
4
- PR: none.
5
- */
6
-
7
- /* { dg-do run } */
8
- #include "ffitest.h"
9
- static long return_sl(long l1, long l2)
10
- {
11
- CHECK(l1 == 1073741823L);
12
- CHECK(l2 == 1073741824L);
13
- return l1 - l2;
14
- }
15
-
16
- int main (void)
17
- {
18
- ffi_cif cif;
19
- ffi_type *args[MAX_ARGS];
20
- void *values[MAX_ARGS];
21
- ffi_arg res;
22
- unsigned long l1, l2;
23
-
24
- args[0] = &ffi_type_slong;
25
- args[1] = &ffi_type_slong;
26
- values[0] = &l1;
27
- values[1] = &l2;
28
-
29
- CHECK(ffi_prep_cif(&cif, FFI_DEFAULT_ABI, 2,
30
- &ffi_type_slong, args) == FFI_OK);
31
-
32
- l1 = 1073741823L;
33
- l2 = 1073741824L;
34
-
35
- ffi_call(&cif, FFI_FN(return_sl), &res, values);
36
- printf("res: %ld, %ld\n", (long)res, l1 - l2);
37
- /* { dg-output "res: -1, -1" } */
38
- CHECK((long)res == -1);
39
- CHECK(l1 + 1 == l2);
40
-
41
- exit(0);
42
- }
@@ -1,38 +0,0 @@
1
- /* Area: ffi_call
2
- Purpose: Check return value unsigned char.
3
- Limitations: none.
4
- PR: none.
5
- Originator: From the original ffitest.c */
6
-
7
- /* { dg-do run } */
8
- #include "ffitest.h"
9
-
10
- static unsigned char return_uc(unsigned char uc)
11
- {
12
- return uc;
13
- }
14
-
15
- int main (void)
16
- {
17
- ffi_cif cif;
18
- ffi_type *args[MAX_ARGS];
19
- void *values[MAX_ARGS];
20
- ffi_arg rint;
21
-
22
- unsigned char uc;
23
-
24
- args[0] = &ffi_type_uchar;
25
- values[0] = &uc;
26
-
27
- /* Initialize the cif */
28
- CHECK(ffi_prep_cif(&cif, FFI_DEFAULT_ABI, 1,
29
- &ffi_type_uchar, args) == FFI_OK);
30
-
31
- for (uc = (unsigned char) '\x00';
32
- uc < (unsigned char) '\xff'; uc++)
33
- {
34
- ffi_call(&cif, FFI_FN(return_uc), &rint, values);
35
- CHECK((unsigned char)rint == uc);
36
- }
37
- exit(0);
38
- }
@@ -1,42 +0,0 @@
1
- /* Area: ffi_call
2
- Purpose: Check if unsigned long as return type is handled correctly.
3
- Limitations: none.
4
- PR: none.
5
- Originator: <kaffeetisch at gmx dot de> 20060724 */
6
-
7
- /* { dg-do run } */
8
- #include "ffitest.h"
9
- static unsigned long return_ul(unsigned long ul1, unsigned long ul2)
10
- {
11
- CHECK(ul1 == 1073741823L);
12
- CHECK(ul2 == 1073741824L);
13
- return ul1 + ul2;
14
- }
15
-
16
- int main (void)
17
- {
18
- ffi_cif cif;
19
- ffi_type *args[MAX_ARGS];
20
- void *values[MAX_ARGS];
21
- ffi_arg res;
22
- unsigned long ul1, ul2;
23
-
24
- args[0] = &ffi_type_ulong;
25
- args[1] = &ffi_type_ulong;
26
- values[0] = &ul1;
27
- values[1] = &ul2;
28
-
29
- CHECK(ffi_prep_cif(&cif, FFI_DEFAULT_ABI, 2,
30
- &ffi_type_ulong, args) == FFI_OK);
31
-
32
- ul1 = 1073741823L;
33
- ul2 = 1073741824L;
34
-
35
- ffi_call(&cif, FFI_FN(return_ul), &res, values);
36
- printf("res: %lu, %lu\n", (unsigned long)res, ul1 + ul2);
37
- /* { dg-output "res: 2147483647, 2147483647" } */
38
- CHECK(res == 2147483647L);
39
- CHECK(ul1 + ul2 == 2147483647L);
40
-
41
- exit(0);
42
- }
@@ -1,60 +0,0 @@
1
- /* Area: ffi_call
2
- Purpose: Check structures.
3
- Limitations: none.
4
- PR: none.
5
- Originator: From the original ffitest.c */
6
-
7
- /* { dg-do run } */
8
- #include "ffitest.h"
9
-
10
- typedef struct
11
- {
12
- float f;
13
- } s55;
14
-
15
- static s55 ABI_ATTR f55(s55 ts, float f)
16
- {
17
- s55 r;
18
- r.f = ts.f + f;
19
- printf ("f55>> %g + %g = %g\n", ts.f, f, r.f);
20
- return r;
21
- }
22
-
23
- int main (void)
24
- {
25
- ffi_cif cif;
26
- s55 F, Fr;
27
- float f;
28
- void *values[] = { &F, &f };
29
- ffi_type s55_type;
30
- ffi_type *args[] = { &s55_type, &ffi_type_float };
31
- ffi_type *s55_type_elements[] = { &ffi_type_float, NULL };
32
-
33
- /* This is a hack to get a properly aligned result buffer */
34
- s55 *s55_result =
35
- (s55 *) malloc (sizeof(s55));
36
-
37
- s55_type.size = 0;
38
- s55_type.alignment = 0;
39
- s55_type.type = FFI_TYPE_STRUCT;
40
- s55_type.elements = s55_type_elements;
41
-
42
- /* Initialize the cif */
43
- CHECK(ffi_prep_cif(&cif, ABI_NUM, 2, &s55_type, args) == FFI_OK);
44
-
45
- F.f = 1;
46
- Fr = f55(F, 2.14);
47
- printf ("%g\n", Fr.f);
48
-
49
- F.f = 1;
50
- f = 2.14;
51
- ffi_call(&cif, FFI_FN(f55), s55_result, values);
52
- printf ("%g\n", s55_result->f);
53
-
54
- fflush(0);
55
-
56
- CHECK(fabs(Fr.f - s55_result->f) < FLT_EPSILON);
57
-
58
- free (s55_result);
59
- exit(0);
60
- }
@@ -1,43 +0,0 @@
1
- /* Area: ffi_call
2
- Purpose: Check strlen function call.
3
- Limitations: none.
4
- PR: none.
5
- Originator: From the original ffitest.c */
6
-
7
- /* { dg-do run } */
8
- #include "ffitest.h"
9
-
10
- static unsigned int ABI_ATTR my_strlen(char *s)
11
- {
12
- return (unsigned int) (strlen(s));
13
- }
14
-
15
- int main (void)
16
- {
17
- ffi_cif cif;
18
- ffi_type *args[MAX_ARGS];
19
- void *values[MAX_ARGS];
20
- ffi_arg rint;
21
- char *s;
22
-
23
- args[0] = &ffi_type_pointer;
24
- values[0] = (void*) &s;
25
-
26
- /* Initialize the cif */
27
- CHECK(ffi_prep_cif(&cif, ABI_NUM, 1,
28
- &ffi_type_uint, args) == FFI_OK);
29
-
30
- s = "a";
31
- ffi_call(&cif, FFI_FN(my_strlen), &rint, values);
32
- CHECK(rint == 1);
33
-
34
- s = "1234567";
35
- ffi_call(&cif, FFI_FN(my_strlen), &rint, values);
36
- CHECK(rint == 7);
37
-
38
- s = "1234567890123456789012345";
39
- ffi_call(&cif, FFI_FN(my_strlen), &rint, values);
40
- CHECK(rint == 25);
41
-
42
- exit (0);
43
- }
@@ -1,49 +0,0 @@
1
- /* Area: ffi_call
2
- Purpose: Check strlen function call with additional arguments.
3
- Limitations: none.
4
- PR: none.
5
- Originator: From the original ffitest.c */
6
-
7
- /* { dg-do run } */
8
-
9
- #include "ffitest.h"
10
-
11
- static int ABI_ATTR my_f(char *s, float a)
12
- {
13
- return (int) strlen(s) + (int) a;
14
- }
15
-
16
- int main (void)
17
- {
18
- ffi_cif cif;
19
- ffi_type *args[MAX_ARGS];
20
- void *values[MAX_ARGS];
21
- ffi_arg rint;
22
- char *s;
23
- float v2;
24
- args[0] = &ffi_type_pointer;
25
- args[1] = &ffi_type_float;
26
- values[0] = (void*) &s;
27
- values[1] = (void*) &v2;
28
-
29
- /* Initialize the cif */
30
- CHECK(ffi_prep_cif(&cif, ABI_NUM, 2,
31
- &ffi_type_sint, args) == FFI_OK);
32
-
33
- s = "a";
34
- v2 = 0.0;
35
- ffi_call(&cif, FFI_FN(my_f), &rint, values);
36
- CHECK(rint == 1);
37
-
38
- s = "1234567";
39
- v2 = -1.0;
40
- ffi_call(&cif, FFI_FN(my_f), &rint, values);
41
- CHECK(rint == 6);
42
-
43
- s = "1234567890123456789012345";
44
- v2 = 1.0;
45
- ffi_call(&cif, FFI_FN(my_f), &rint, values);
46
- CHECK(rint == 26);
47
-
48
- exit(0);
49
- }