ffi 1.9.18 → 1.9.21

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of ffi might be problematic. Click here for more details.

Files changed (366) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +3 -2
  3. data/Rakefile +14 -3
  4. data/ext/ffi_c/AbstractMemory.c +6 -1
  5. data/ext/ffi_c/Platform.c +10 -2
  6. data/ext/ffi_c/extconf.rb +7 -2
  7. data/ext/ffi_c/libffi.bsd.mk +9 -3
  8. data/ext/ffi_c/libffi.darwin.mk +14 -4
  9. data/ext/ffi_c/libffi.gnu.mk +2 -1
  10. data/ext/ffi_c/libffi.mk +9 -4
  11. data/ext/ffi_c/libffi/ChangeLog.libffi +2 -2
  12. data/ext/ffi_c/libffi/{ChangeLog → ChangeLog.libffi-3.1} +1402 -2
  13. data/ext/ffi_c/libffi/ChangeLog.v1 +1 -1
  14. data/ext/ffi_c/libffi/LICENSE +1 -1
  15. data/ext/ffi_c/libffi/Makefile.am +166 -157
  16. data/ext/ffi_c/libffi/README +164 -52
  17. data/ext/ffi_c/libffi/acinclude.m4 +381 -0
  18. data/ext/ffi_c/libffi/autogen.sh +2 -0
  19. data/ext/ffi_c/libffi/configure.ac +148 -256
  20. data/ext/ffi_c/libffi/configure.host +265 -4
  21. data/ext/ffi_c/libffi/doc/Makefile.am +3 -0
  22. data/ext/ffi_c/libffi/doc/libffi.texi +430 -45
  23. data/ext/ffi_c/libffi/doc/version.texi +4 -4
  24. data/ext/ffi_c/libffi/generate-darwin-source-and-headers.py +207 -0
  25. data/ext/ffi_c/libffi/include/Makefile.am +3 -3
  26. data/ext/ffi_c/libffi/include/ffi.h.in +107 -50
  27. data/ext/ffi_c/libffi/include/ffi_cfi.h +55 -0
  28. data/ext/ffi_c/libffi/include/ffi_common.h +32 -11
  29. data/ext/ffi_c/libffi/libffi.map.in +80 -0
  30. data/ext/ffi_c/libffi/libffi.pc.in +3 -2
  31. data/ext/ffi_c/libffi/libffi.xcodeproj/project.pbxproj +637 -0
  32. data/ext/ffi_c/libffi/libtool-ldflags +106 -0
  33. data/ext/ffi_c/libffi/libtool-version +1 -1
  34. data/ext/ffi_c/libffi/m4/asmcfi.m4 +13 -0
  35. data/ext/ffi_c/libffi/m4/ax_append_flag.m4 +69 -0
  36. data/ext/ffi_c/libffi/m4/ax_cc_maxopt.m4 +13 -8
  37. data/ext/ffi_c/libffi/m4/ax_cflags_warn_all.m4 +31 -104
  38. data/ext/ffi_c/libffi/m4/{ax_check_compiler_flags.m4 → ax_check_compile_flag.m4} +30 -34
  39. data/ext/ffi_c/libffi/m4/ax_compiler_vendor.m4 +32 -11
  40. data/ext/ffi_c/libffi/m4/ax_enable_builddir.m4 +6 -5
  41. data/ext/ffi_c/libffi/m4/ax_gcc_archflag.m4 +31 -21
  42. data/ext/ffi_c/libffi/man/Makefile.am +2 -2
  43. data/ext/ffi_c/libffi/man/ffi.3 +10 -0
  44. data/ext/ffi_c/libffi/man/ffi_prep_cif.3 +6 -4
  45. data/ext/ffi_c/libffi/man/ffi_prep_cif_var.3 +73 -0
  46. data/ext/ffi_c/libffi/msvcc.sh +72 -9
  47. data/ext/ffi_c/libffi/src/aarch64/ffi.c +941 -0
  48. data/ext/ffi_c/libffi/src/aarch64/ffitarget.h +81 -0
  49. data/ext/ffi_c/libffi/src/aarch64/internal.h +67 -0
  50. data/ext/ffi_c/libffi/src/aarch64/sysv.S +438 -0
  51. data/ext/ffi_c/libffi/src/alpha/ffi.c +335 -98
  52. data/ext/ffi_c/libffi/src/alpha/ffitarget.h +10 -1
  53. data/ext/ffi_c/libffi/src/alpha/internal.h +23 -0
  54. data/ext/ffi_c/libffi/src/alpha/osf.S +161 -266
  55. data/ext/ffi_c/libffi/src/arc/arcompact.S +135 -0
  56. data/ext/ffi_c/libffi/src/arc/ffi.c +266 -0
  57. data/ext/ffi_c/libffi/src/arc/ffitarget.h +53 -0
  58. data/ext/ffi_c/libffi/src/arm/ffi.c +597 -517
  59. data/ext/ffi_c/libffi/src/arm/ffitarget.h +24 -7
  60. data/ext/ffi_c/libffi/src/arm/internal.h +7 -0
  61. data/ext/ffi_c/libffi/src/arm/sysv.S +303 -417
  62. data/ext/ffi_c/libffi/src/avr32/ffitarget.h +6 -1
  63. data/ext/ffi_c/libffi/src/bfin/ffi.c +196 -0
  64. data/ext/ffi_c/libffi/src/bfin/ffitarget.h +43 -0
  65. data/ext/ffi_c/libffi/src/bfin/sysv.S +179 -0
  66. data/ext/ffi_c/libffi/src/closures.c +319 -44
  67. data/ext/ffi_c/libffi/src/cris/ffi.c +10 -7
  68. data/ext/ffi_c/libffi/src/cris/ffitarget.h +6 -1
  69. data/ext/ffi_c/libffi/src/debug.c +6 -1
  70. data/ext/ffi_c/libffi/src/dlmalloc.c +16 -11
  71. data/ext/ffi_c/libffi/src/frv/ffi.c +1 -1
  72. data/ext/ffi_c/libffi/src/frv/ffitarget.h +6 -1
  73. data/ext/ffi_c/libffi/src/ia64/ffi.c +11 -7
  74. data/ext/ffi_c/libffi/src/ia64/ffitarget.h +6 -1
  75. data/ext/ffi_c/libffi/src/java_raw_api.c +23 -5
  76. data/ext/ffi_c/libffi/src/m32r/ffi.c +1 -1
  77. data/ext/ffi_c/libffi/src/m32r/ffitarget.h +6 -1
  78. data/ext/ffi_c/libffi/src/m68k/ffi.c +87 -13
  79. data/ext/ffi_c/libffi/src/m68k/ffitarget.h +6 -1
  80. data/ext/ffi_c/libffi/src/m68k/sysv.S +119 -32
  81. data/ext/ffi_c/libffi/src/m88k/ffi.c +400 -0
  82. data/ext/ffi_c/libffi/src/m88k/ffitarget.h +49 -0
  83. data/ext/ffi_c/libffi/src/m88k/obsd.S +209 -0
  84. data/ext/ffi_c/libffi/src/metag/ffi.c +330 -0
  85. data/ext/ffi_c/libffi/{fficonfig.hw → src/metag/ffitarget.h} +22 -26
  86. data/ext/ffi_c/libffi/src/metag/sysv.S +311 -0
  87. data/ext/ffi_c/libffi/src/microblaze/ffi.c +321 -0
  88. data/ext/ffi_c/libffi/src/microblaze/ffitarget.h +53 -0
  89. data/ext/ffi_c/libffi/src/microblaze/sysv.S +302 -0
  90. data/ext/ffi_c/libffi/src/mips/ffi.c +95 -28
  91. data/ext/ffi_c/libffi/src/mips/ffitarget.h +9 -2
  92. data/ext/ffi_c/libffi/src/mips/n32.S +126 -56
  93. data/ext/ffi_c/libffi/src/mips/o32.S +148 -27
  94. data/ext/ffi_c/libffi/src/moxie/eabi.S +55 -82
  95. data/ext/ffi_c/libffi/src/moxie/ffi.c +40 -44
  96. data/ext/ffi_c/libffi/src/moxie/ffitarget.h +52 -0
  97. data/ext/ffi_c/libffi/src/nios2/ffi.c +304 -0
  98. data/ext/ffi_c/libffi/src/nios2/ffitarget.h +52 -0
  99. data/ext/ffi_c/libffi/src/nios2/sysv.S +136 -0
  100. data/ext/ffi_c/libffi/src/or1k/ffi.c +328 -0
  101. data/ext/ffi_c/libffi/src/or1k/ffitarget.h +58 -0
  102. data/ext/ffi_c/libffi/src/or1k/sysv.S +107 -0
  103. data/ext/ffi_c/libffi/src/pa/ffitarget.h +8 -1
  104. data/ext/ffi_c/libffi/src/powerpc/aix.S +6 -6
  105. data/ext/ffi_c/libffi/src/powerpc/aix_closure.S +3 -1
  106. data/ext/ffi_c/libffi/src/powerpc/asm.h +2 -2
  107. data/ext/ffi_c/libffi/src/powerpc/darwin.S +2 -7
  108. data/ext/ffi_c/libffi/src/powerpc/darwin_closure.S +22 -26
  109. data/ext/ffi_c/libffi/src/powerpc/ffi.c +103 -1378
  110. data/ext/ffi_c/libffi/src/powerpc/ffi_darwin.c +25 -25
  111. data/ext/ffi_c/libffi/src/powerpc/ffi_linux64.c +945 -0
  112. data/ext/ffi_c/libffi/src/powerpc/ffi_powerpc.h +94 -0
  113. data/ext/ffi_c/libffi/src/powerpc/ffi_sysv.c +923 -0
  114. data/ext/ffi_c/libffi/src/powerpc/ffitarget.h +100 -44
  115. data/ext/ffi_c/libffi/src/powerpc/linux64.S +100 -59
  116. data/ext/ffi_c/libffi/src/powerpc/linux64_closure.S +360 -108
  117. data/ext/ffi_c/libffi/src/powerpc/ppc_closure.S +138 -68
  118. data/ext/ffi_c/libffi/src/powerpc/sysv.S +68 -112
  119. data/ext/ffi_c/libffi/src/prep_cif.c +108 -24
  120. data/ext/ffi_c/libffi/src/raw_api.c +18 -5
  121. data/ext/ffi_c/libffi/src/s390/ffi.c +294 -318
  122. data/ext/ffi_c/libffi/src/s390/ffitarget.h +9 -1
  123. data/ext/ffi_c/libffi/src/s390/internal.h +11 -0
  124. data/ext/ffi_c/libffi/src/s390/sysv.S +257 -366
  125. data/ext/ffi_c/libffi/src/sh/ffi.c +4 -3
  126. data/ext/ffi_c/libffi/src/sh/ffitarget.h +6 -1
  127. data/ext/ffi_c/libffi/src/sh64/ffi.c +3 -2
  128. data/ext/ffi_c/libffi/src/sh64/ffitarget.h +6 -1
  129. data/ext/ffi_c/libffi/src/sparc/ffi.c +326 -527
  130. data/ext/ffi_c/libffi/src/sparc/ffi64.c +608 -0
  131. data/ext/ffi_c/libffi/src/sparc/ffitarget.h +20 -7
  132. data/ext/ffi_c/libffi/src/sparc/internal.h +26 -0
  133. data/ext/ffi_c/libffi/src/sparc/v8.S +364 -234
  134. data/ext/ffi_c/libffi/src/sparc/v9.S +340 -207
  135. data/ext/ffi_c/libffi/src/tile/ffi.c +355 -0
  136. data/ext/ffi_c/libffi/src/tile/ffitarget.h +65 -0
  137. data/ext/ffi_c/libffi/src/tile/tile.S +360 -0
  138. data/ext/ffi_c/libffi/src/types.c +43 -14
  139. data/ext/ffi_c/libffi/src/vax/elfbsd.S +195 -0
  140. data/ext/ffi_c/libffi/src/vax/ffi.c +276 -0
  141. data/ext/ffi_c/libffi/src/vax/ffitarget.h +49 -0
  142. data/ext/ffi_c/libffi/src/x86/asmnames.h +30 -0
  143. data/ext/ffi_c/libffi/src/x86/ffi.c +589 -500
  144. data/ext/ffi_c/libffi/src/x86/ffi64.c +338 -116
  145. data/ext/ffi_c/libffi/src/x86/ffitarget.h +55 -35
  146. data/ext/ffi_c/libffi/src/x86/ffiw64.c +287 -0
  147. data/ext/ffi_c/libffi/src/x86/internal.h +29 -0
  148. data/ext/ffi_c/libffi/src/x86/internal64.h +22 -0
  149. data/ext/ffi_c/libffi/src/x86/sysv.S +975 -400
  150. data/ext/ffi_c/libffi/src/x86/unix64.S +398 -299
  151. data/ext/ffi_c/libffi/src/x86/win64.S +222 -458
  152. data/ext/ffi_c/libffi/src/x86/win64_intel.S +237 -0
  153. data/ext/ffi_c/libffi/src/xtensa/ffi.c +298 -0
  154. data/ext/ffi_c/libffi/src/xtensa/ffitarget.h +53 -0
  155. data/ext/ffi_c/libffi/src/xtensa/sysv.S +253 -0
  156. data/ext/ffi_c/libffi/stamp-h.in +1 -0
  157. data/ext/ffi_c/libffi/testsuite/Makefile.am +78 -73
  158. data/ext/ffi_c/libffi/testsuite/lib/libffi.exp +120 -25
  159. data/ext/ffi_c/libffi/testsuite/lib/target-libpath.exp +21 -1
  160. data/ext/ffi_c/libffi/testsuite/libffi.call/align_mixed.c +46 -0
  161. data/ext/ffi_c/libffi/testsuite/libffi.call/call.exp +4 -6
  162. data/ext/ffi_c/libffi/testsuite/libffi.call/{closure_stdcall.c → closure_simple.c} +7 -16
  163. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_12byte.c +4 -4
  164. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_16byte.c +4 -4
  165. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_18byte.c +4 -4
  166. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_19byte.c +4 -4
  167. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_1_1byte.c +4 -4
  168. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_20byte.c +4 -4
  169. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_20byte1.c +4 -4
  170. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_24byte.c +5 -5
  171. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_2byte.c +4 -4
  172. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_3_1byte.c +4 -4
  173. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_3byte1.c +4 -4
  174. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_3byte2.c +4 -4
  175. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_4_1byte.c +4 -4
  176. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_4byte.c +4 -4
  177. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_5_1_byte.c +4 -4
  178. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_5byte.c +4 -4
  179. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_64byte.c +5 -5
  180. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_6_1_byte.c +4 -4
  181. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_6byte.c +4 -4
  182. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_7_1_byte.c +4 -4
  183. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_7byte.c +4 -4
  184. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_8byte.c +4 -4
  185. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_9byte1.c +4 -4
  186. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_9byte2.c +4 -4
  187. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_double.c +4 -4
  188. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_float.c +4 -4
  189. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_longdouble.c +4 -4
  190. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_longdouble_split.c +4 -6
  191. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_longdouble_split2.c +4 -6
  192. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_pointer.c +4 -4
  193. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_sint16.c +4 -4
  194. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_sint32.c +4 -4
  195. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_sint64.c +4 -4
  196. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_uint16.c +4 -4
  197. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_uint32.c +4 -4
  198. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_uint64.c +4 -4
  199. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_dbls_struct.c +4 -4
  200. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_double_va.c +10 -9
  201. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_longdouble.c +3 -3
  202. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_longdouble_va.c +10 -9
  203. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_many_mixed_args.c +70 -0
  204. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_many_mixed_float_double.c +55 -0
  205. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_pointer.c +1 -1
  206. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_pointer_stack.c +11 -9
  207. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_struct_va1.c +114 -0
  208. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_uchar_va.c +44 -0
  209. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_uint_va.c +45 -0
  210. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_ulong_va.c +45 -0
  211. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_ulonglong.c +5 -5
  212. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_ushort_va.c +44 -0
  213. data/ext/ffi_c/libffi/testsuite/libffi.call/err_bad_typedef.c +2 -2
  214. data/ext/ffi_c/libffi/testsuite/libffi.call/ffitest.h +23 -40
  215. data/ext/ffi_c/libffi/testsuite/libffi.call/float1.c +3 -1
  216. data/ext/ffi_c/libffi/testsuite/libffi.call/float2.c +6 -4
  217. data/ext/ffi_c/libffi/testsuite/libffi.call/float3.c +4 -2
  218. data/ext/ffi_c/libffi/testsuite/libffi.call/float_va.c +107 -0
  219. data/ext/ffi_c/libffi/testsuite/libffi.call/huge_struct.c +18 -19
  220. data/ext/ffi_c/libffi/testsuite/libffi.call/many.c +6 -16
  221. data/ext/ffi_c/libffi/testsuite/libffi.call/many2.c +57 -0
  222. data/ext/ffi_c/libffi/testsuite/libffi.call/many_double.c +70 -0
  223. data/ext/ffi_c/libffi/testsuite/libffi.call/many_mixed.c +78 -0
  224. data/ext/ffi_c/libffi/testsuite/libffi.call/negint.c +0 -1
  225. data/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct.c +6 -6
  226. data/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct1.c +8 -8
  227. data/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct10.c +6 -6
  228. data/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct11.c +121 -0
  229. data/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct2.c +5 -5
  230. data/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct3.c +5 -5
  231. data/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct4.c +5 -5
  232. data/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct5.c +5 -5
  233. data/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct6.c +6 -6
  234. data/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct7.c +5 -5
  235. data/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct8.c +6 -6
  236. data/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct9.c +6 -6
  237. data/ext/ffi_c/libffi/testsuite/libffi.call/offsets.c +46 -0
  238. data/ext/ffi_c/libffi/testsuite/libffi.call/pr1172638.c +127 -0
  239. data/ext/ffi_c/libffi/testsuite/libffi.call/return_dbl.c +1 -0
  240. data/ext/ffi_c/libffi/testsuite/libffi.call/return_ldl.c +1 -1
  241. data/ext/ffi_c/libffi/testsuite/libffi.call/return_sc.c +1 -1
  242. data/ext/ffi_c/libffi/testsuite/libffi.call/return_uc.c +1 -1
  243. data/ext/ffi_c/libffi/testsuite/libffi.call/stret_large.c +7 -7
  244. data/ext/ffi_c/libffi/testsuite/libffi.call/stret_large2.c +7 -7
  245. data/ext/ffi_c/libffi/testsuite/libffi.call/stret_medium.c +5 -5
  246. data/ext/ffi_c/libffi/testsuite/libffi.call/stret_medium2.c +5 -5
  247. data/ext/ffi_c/libffi/testsuite/libffi.call/strlen.c +2 -2
  248. data/ext/ffi_c/libffi/testsuite/libffi.call/strlen2.c +49 -0
  249. data/ext/ffi_c/libffi/testsuite/libffi.call/strlen3.c +49 -0
  250. data/ext/ffi_c/libffi/testsuite/libffi.call/strlen4.c +55 -0
  251. data/ext/ffi_c/libffi/testsuite/libffi.call/struct1.c +9 -7
  252. data/ext/ffi_c/libffi/testsuite/libffi.call/struct2.c +7 -7
  253. data/ext/ffi_c/libffi/testsuite/libffi.call/struct3.c +7 -6
  254. data/ext/ffi_c/libffi/testsuite/libffi.call/struct4.c +9 -8
  255. data/ext/ffi_c/libffi/testsuite/libffi.call/struct5.c +9 -8
  256. data/ext/ffi_c/libffi/testsuite/libffi.call/struct6.c +9 -9
  257. data/ext/ffi_c/libffi/testsuite/libffi.call/struct7.c +9 -9
  258. data/ext/ffi_c/libffi/testsuite/libffi.call/struct8.c +9 -8
  259. data/ext/ffi_c/libffi/testsuite/libffi.call/struct9.c +9 -8
  260. data/ext/ffi_c/libffi/testsuite/libffi.call/testclosure.c +2 -2
  261. data/ext/ffi_c/libffi/testsuite/libffi.call/uninitialized.c +61 -0
  262. data/ext/ffi_c/libffi/testsuite/{libffi.special → libffi.call}/unwindtest.cc +3 -10
  263. data/ext/ffi_c/libffi/testsuite/{libffi.special → libffi.call}/unwindtest_ffi_call.cc +2 -1
  264. data/ext/ffi_c/libffi/testsuite/libffi.call/va_1.c +196 -0
  265. data/ext/ffi_c/libffi/testsuite/libffi.call/va_struct1.c +121 -0
  266. data/ext/ffi_c/libffi/testsuite/libffi.call/va_struct2.c +123 -0
  267. data/ext/ffi_c/libffi/testsuite/libffi.call/va_struct3.c +125 -0
  268. data/ext/ffi_c/libffi/testsuite/libffi.complex/cls_align_complex.inc +91 -0
  269. data/ext/ffi_c/libffi/testsuite/libffi.complex/cls_align_complex_double.c +10 -0
  270. data/ext/ffi_c/libffi/testsuite/libffi.complex/cls_align_complex_float.c +10 -0
  271. data/ext/ffi_c/libffi/testsuite/libffi.complex/cls_align_complex_longdouble.c +10 -0
  272. data/ext/ffi_c/libffi/testsuite/libffi.complex/cls_complex.inc +42 -0
  273. data/ext/ffi_c/libffi/testsuite/libffi.complex/cls_complex_double.c +10 -0
  274. data/ext/ffi_c/libffi/testsuite/libffi.complex/cls_complex_float.c +10 -0
  275. data/ext/ffi_c/libffi/testsuite/libffi.complex/cls_complex_longdouble.c +10 -0
  276. data/ext/ffi_c/libffi/testsuite/libffi.complex/cls_complex_struct.inc +71 -0
  277. data/ext/ffi_c/libffi/testsuite/libffi.complex/cls_complex_struct_double.c +10 -0
  278. data/ext/ffi_c/libffi/testsuite/libffi.complex/cls_complex_struct_float.c +10 -0
  279. data/ext/ffi_c/libffi/testsuite/libffi.complex/cls_complex_struct_longdouble.c +10 -0
  280. data/ext/ffi_c/libffi/testsuite/libffi.complex/cls_complex_va.inc +80 -0
  281. data/ext/ffi_c/libffi/testsuite/libffi.complex/cls_complex_va_double.c +10 -0
  282. data/ext/ffi_c/libffi/testsuite/libffi.complex/cls_complex_va_float.c +16 -0
  283. data/ext/ffi_c/libffi/testsuite/libffi.complex/cls_complex_va_longdouble.c +10 -0
  284. data/ext/ffi_c/libffi/testsuite/{libffi.special/special.exp → libffi.complex/complex.exp} +9 -8
  285. data/ext/ffi_c/libffi/testsuite/libffi.complex/complex.inc +51 -0
  286. data/ext/ffi_c/libffi/testsuite/libffi.complex/complex_defs_double.inc +7 -0
  287. data/ext/ffi_c/libffi/testsuite/libffi.complex/complex_defs_float.inc +7 -0
  288. data/ext/ffi_c/libffi/testsuite/libffi.complex/complex_defs_longdouble.inc +7 -0
  289. data/ext/ffi_c/libffi/testsuite/libffi.complex/complex_double.c +10 -0
  290. data/ext/ffi_c/libffi/testsuite/libffi.complex/complex_float.c +10 -0
  291. data/ext/ffi_c/libffi/testsuite/libffi.complex/complex_int.c +86 -0
  292. data/ext/ffi_c/libffi/testsuite/libffi.complex/complex_longdouble.c +10 -0
  293. data/ext/ffi_c/libffi/testsuite/libffi.complex/ffitest.h +1 -0
  294. data/ext/ffi_c/libffi/testsuite/libffi.complex/many_complex.inc +78 -0
  295. data/ext/ffi_c/libffi/testsuite/libffi.complex/many_complex_double.c +10 -0
  296. data/ext/ffi_c/libffi/testsuite/libffi.complex/many_complex_float.c +10 -0
  297. data/ext/ffi_c/libffi/testsuite/libffi.complex/many_complex_longdouble.c +10 -0
  298. data/ext/ffi_c/libffi/testsuite/libffi.complex/return_complex.inc +37 -0
  299. data/ext/ffi_c/libffi/testsuite/libffi.complex/return_complex1.inc +41 -0
  300. data/ext/ffi_c/libffi/testsuite/libffi.complex/return_complex1_double.c +10 -0
  301. data/ext/ffi_c/libffi/testsuite/libffi.complex/return_complex1_float.c +10 -0
  302. data/ext/ffi_c/libffi/testsuite/libffi.complex/return_complex1_longdouble.c +10 -0
  303. data/ext/ffi_c/libffi/testsuite/libffi.complex/return_complex2.inc +44 -0
  304. data/ext/ffi_c/libffi/testsuite/libffi.complex/return_complex2_double.c +10 -0
  305. data/ext/ffi_c/libffi/testsuite/libffi.complex/return_complex2_float.c +10 -0
  306. data/ext/ffi_c/libffi/testsuite/libffi.complex/return_complex2_longdouble.c +10 -0
  307. data/ext/ffi_c/libffi/testsuite/libffi.complex/return_complex_double.c +10 -0
  308. data/ext/ffi_c/libffi/testsuite/libffi.complex/return_complex_float.c +10 -0
  309. data/ext/ffi_c/libffi/testsuite/libffi.complex/return_complex_longdouble.c +10 -0
  310. data/ext/ffi_c/libffi/testsuite/libffi.go/aa-direct.c +34 -0
  311. data/ext/ffi_c/libffi/testsuite/libffi.go/closure1.c +28 -0
  312. data/ext/ffi_c/libffi/testsuite/libffi.go/ffitest.h +1 -0
  313. data/ext/ffi_c/libffi/testsuite/libffi.go/go.exp +36 -0
  314. data/ext/ffi_c/libffi/testsuite/libffi.go/static-chain.h +19 -0
  315. data/ffi.gemspec +2 -2
  316. data/lib/ffi/enum.rb +124 -0
  317. data/lib/ffi/library.rb +65 -13
  318. data/lib/ffi/platform.rb +7 -2
  319. data/lib/ffi/platform/sparc64-linux/types.conf +102 -0
  320. data/lib/ffi/platform/x86_64-windows/types.conf +113 -20
  321. data/lib/ffi/pointer.rb +1 -0
  322. data/lib/ffi/struct.rb +0 -2
  323. data/lib/ffi/version.rb +1 -1
  324. data/spec/ffi/bitmask_spec.rb +575 -0
  325. data/spec/ffi/fixtures/BitmaskTest.c +51 -0
  326. data/spec/ffi/rbx/memory_pointer_spec.rb +4 -0
  327. data/spec/ffi/struct_spec.rb +0 -4
  328. metadata +143 -51
  329. data/ext/ffi_c/libffi/Makefile.in +0 -1820
  330. data/ext/ffi_c/libffi/Makefile.vc +0 -141
  331. data/ext/ffi_c/libffi/Makefile.vc64 +0 -141
  332. data/ext/ffi_c/libffi/aclocal.m4 +0 -1873
  333. data/ext/ffi_c/libffi/build-ios.sh +0 -67
  334. data/ext/ffi_c/libffi/compile +0 -143
  335. data/ext/ffi_c/libffi/config.guess +0 -1501
  336. data/ext/ffi_c/libffi/config.sub +0 -1705
  337. data/ext/ffi_c/libffi/configure +0 -17191
  338. data/ext/ffi_c/libffi/depcomp +0 -630
  339. data/ext/ffi_c/libffi/doc/libffi.info +0 -593
  340. data/ext/ffi_c/libffi/doc/stamp-vti +0 -4
  341. data/ext/ffi_c/libffi/fficonfig.h.in +0 -199
  342. data/ext/ffi_c/libffi/include/Makefile.in +0 -487
  343. data/ext/ffi_c/libffi/include/ffi.h.vc +0 -427
  344. data/ext/ffi_c/libffi/include/ffi.h.vc64 +0 -427
  345. data/ext/ffi_c/libffi/install-sh +0 -520
  346. data/ext/ffi_c/libffi/ltmain.sh +0 -9636
  347. data/ext/ffi_c/libffi/m4/libtool.m4 +0 -7831
  348. data/ext/ffi_c/libffi/m4/ltoptions.m4 +0 -369
  349. data/ext/ffi_c/libffi/m4/ltsugar.m4 +0 -123
  350. data/ext/ffi_c/libffi/m4/ltversion.m4 +0 -23
  351. data/ext/ffi_c/libffi/m4/lt~obsolete.m4 +0 -98
  352. data/ext/ffi_c/libffi/man/Makefile.in +0 -466
  353. data/ext/ffi_c/libffi/mdate-sh +0 -201
  354. data/ext/ffi_c/libffi/missing +0 -376
  355. data/ext/ffi_c/libffi/src/arm/gentramp.sh +0 -118
  356. data/ext/ffi_c/libffi/src/arm/trampoline.S +0 -4450
  357. data/ext/ffi_c/libffi/src/x86/darwin.S +0 -444
  358. data/ext/ffi_c/libffi/src/x86/darwin64.S +0 -416
  359. data/ext/ffi_c/libffi/src/x86/freebsd.S +0 -458
  360. data/ext/ffi_c/libffi/src/x86/win32.S +0 -1065
  361. data/ext/ffi_c/libffi/testsuite/Makefile.in +0 -500
  362. data/ext/ffi_c/libffi/testsuite/lib/libffi-dg.exp +0 -300
  363. data/ext/ffi_c/libffi/testsuite/libffi.call/many_win32.c +0 -63
  364. data/ext/ffi_c/libffi/testsuite/libffi.call/strlen_win32.c +0 -44
  365. data/ext/ffi_c/libffi/testsuite/libffi.special/ffitestcxx.h +0 -96
  366. data/ext/ffi_c/libffi/texinfo.tex +0 -7210
@@ -0,0 +1,51 @@
1
+ /*
2
+ * Copyright (c) 2017 Brice Videau. All rights reserved.
3
+ *
4
+ * For licensing, see LICENSE.SPECS
5
+ */
6
+ #include <stdint.h>
7
+
8
+ int test_untagged_bitmask(int val) {
9
+ return val;
10
+ }
11
+
12
+ int test_untagged_typedef_bitmask(int val) {
13
+ return val;
14
+ }
15
+
16
+ uint8_t test_untagged_nonint_bitmask(uint8_t val) {
17
+ return val;
18
+ }
19
+
20
+ uint16_t test_tagged_nonint_bitmask1(uint16_t val) {
21
+ return val;
22
+ }
23
+
24
+ uint32_t test_tagged_nonint_bitmask2(uint32_t val) {
25
+ return val;
26
+ }
27
+
28
+ uint64_t test_tagged_nonint_bitmask3(uint64_t val) {
29
+ return val;
30
+ }
31
+
32
+ typedef enum {c1 = (1<<0), c2 = (1<<1), c3 = (1<<2), c4 = (1<<3)} bitmask_type1;
33
+ int test_tagged_typedef_bitmask1(int val) {
34
+ return val;
35
+ }
36
+
37
+ typedef enum {c5 = (1<<2), c6 = (1<<3), c7 = (1<<4), c8 = (1<<5)} bitmask_type2;
38
+ int test_tagged_typedef_bitmask2(int val) {
39
+ return val;
40
+ }
41
+
42
+ typedef enum {c9 = (1<<2), c10 = (1<<3), c11 = (1<<5), c12 = (1<<6)} bitmask_type3;
43
+ int test_tagged_typedef_bitmask3(int val) {
44
+ return val;
45
+ }
46
+
47
+ typedef enum {c13 = (1<<2), c14 = (1<<4), c15 = (1<<6), c16 = (1<<8)} bitmask_type4;
48
+ int test_tagged_typedef_bitmask4(int val) {
49
+ return val;
50
+ }
51
+
@@ -34,6 +34,10 @@ describe "MemoryPointer" do
34
34
  m = FFI::MemoryPointer.from_string("FFI is Awesome")
35
35
  expect(m.read_string).to eq("FFI is Awesome")
36
36
  end
37
+
38
+ it "reads back an empty string" do
39
+ expect(FFI::Pointer::NULL.read_string(0)).to eq('')
40
+ end
37
41
 
38
42
  it "makes a pointer for a certain number of bytes" do
39
43
  m = FFI::MemoryPointer.new(8)
@@ -7,7 +7,6 @@ require File.expand_path(File.join(File.dirname(__FILE__), "spec_helper"))
7
7
 
8
8
  describe "Struct aligns fields correctly" do
9
9
  it "char, followed by an int" do
10
- pending("not supported in 1.8") if RUBY_VERSION =~ /^1\.8\..*/
11
10
  class CIStruct < FFI::Struct
12
11
  layout :c => :char, :i => :int
13
12
  end
@@ -15,7 +14,6 @@ describe "Struct aligns fields correctly" do
15
14
  end
16
15
 
17
16
  it "short, followed by an int" do
18
- pending("not supported in 1.8") if RUBY_VERSION =~ /^1\.8\..*/
19
17
  class SIStruct < FFI::Struct
20
18
  layout :s => :short, :i => :int
21
19
  end
@@ -23,7 +21,6 @@ describe "Struct aligns fields correctly" do
23
21
  end
24
22
 
25
23
  it "int, followed by an int" do
26
- pending("not supported in 1.8") if RUBY_VERSION =~ /^1\.8\..*/
27
24
  class IIStruct < FFI::Struct
28
25
  layout :i1 => :int, :i => :int
29
26
  end
@@ -31,7 +28,6 @@ describe "Struct aligns fields correctly" do
31
28
  end
32
29
 
33
30
  it "long long, followed by an int" do
34
- pending("not supported in 1.8") if RUBY_VERSION =~ /^1\.8\..*/
35
31
  class LLIStruct < FFI::Struct
36
32
  layout :l => :long_long, :i => :int
37
33
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ffi
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.9.18
4
+ version: 1.9.21
5
5
  platform: ruby
6
6
  authors:
7
7
  - Wayne Meissner
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-03-03 00:00:00.000000000 Z
11
+ date: 2018-02-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake
@@ -44,14 +44,14 @@ dependencies:
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: 0.6.0
47
+ version: 0.6.2
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: 0.6.0
54
+ version: 0.6.2
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: rspec
57
57
  requirement: !ruby/object:Gem::Requirement
@@ -143,74 +143,67 @@ files:
143
143
  - ext/ffi_c/libffi.mk
144
144
  - ext/ffi_c/libffi.vc.mk
145
145
  - ext/ffi_c/libffi.vc64.mk
146
- - ext/ffi_c/libffi/ChangeLog
147
146
  - ext/ffi_c/libffi/ChangeLog.libffi
147
+ - ext/ffi_c/libffi/ChangeLog.libffi-3.1
148
148
  - ext/ffi_c/libffi/ChangeLog.libgcj
149
149
  - ext/ffi_c/libffi/ChangeLog.v1
150
150
  - ext/ffi_c/libffi/LICENSE
151
151
  - ext/ffi_c/libffi/Makefile.am
152
- - ext/ffi_c/libffi/Makefile.in
153
- - ext/ffi_c/libffi/Makefile.vc
154
- - ext/ffi_c/libffi/Makefile.vc64
155
152
  - ext/ffi_c/libffi/README
156
153
  - ext/ffi_c/libffi/acinclude.m4
157
- - ext/ffi_c/libffi/aclocal.m4
158
- - ext/ffi_c/libffi/build-ios.sh
159
- - ext/ffi_c/libffi/compile
160
- - ext/ffi_c/libffi/config.guess
161
- - ext/ffi_c/libffi/config.sub
162
- - ext/ffi_c/libffi/configure
154
+ - ext/ffi_c/libffi/autogen.sh
163
155
  - ext/ffi_c/libffi/configure.ac
164
156
  - ext/ffi_c/libffi/configure.host
165
- - ext/ffi_c/libffi/depcomp
166
- - ext/ffi_c/libffi/doc/libffi.info
157
+ - ext/ffi_c/libffi/doc/Makefile.am
167
158
  - ext/ffi_c/libffi/doc/libffi.texi
168
- - ext/ffi_c/libffi/doc/stamp-vti
169
159
  - ext/ffi_c/libffi/doc/version.texi
170
- - ext/ffi_c/libffi/fficonfig.h.in
171
- - ext/ffi_c/libffi/fficonfig.hw
160
+ - ext/ffi_c/libffi/generate-darwin-source-and-headers.py
172
161
  - ext/ffi_c/libffi/include/Makefile.am
173
- - ext/ffi_c/libffi/include/Makefile.in
174
162
  - ext/ffi_c/libffi/include/ffi.h.in
175
- - ext/ffi_c/libffi/include/ffi.h.vc
176
- - ext/ffi_c/libffi/include/ffi.h.vc64
163
+ - ext/ffi_c/libffi/include/ffi_cfi.h
177
164
  - ext/ffi_c/libffi/include/ffi_common.h
178
- - ext/ffi_c/libffi/install-sh
165
+ - ext/ffi_c/libffi/libffi.map.in
179
166
  - ext/ffi_c/libffi/libffi.pc.in
167
+ - ext/ffi_c/libffi/libffi.xcodeproj/project.pbxproj
168
+ - ext/ffi_c/libffi/libtool-ldflags
180
169
  - ext/ffi_c/libffi/libtool-version
181
- - ext/ffi_c/libffi/ltmain.sh
170
+ - ext/ffi_c/libffi/m4/asmcfi.m4
171
+ - ext/ffi_c/libffi/m4/ax_append_flag.m4
182
172
  - ext/ffi_c/libffi/m4/ax_cc_maxopt.m4
183
173
  - ext/ffi_c/libffi/m4/ax_cflags_warn_all.m4
184
- - ext/ffi_c/libffi/m4/ax_check_compiler_flags.m4
174
+ - ext/ffi_c/libffi/m4/ax_check_compile_flag.m4
185
175
  - ext/ffi_c/libffi/m4/ax_compiler_vendor.m4
186
176
  - ext/ffi_c/libffi/m4/ax_configure_args.m4
187
177
  - ext/ffi_c/libffi/m4/ax_enable_builddir.m4
188
178
  - ext/ffi_c/libffi/m4/ax_gcc_archflag.m4
189
179
  - ext/ffi_c/libffi/m4/ax_gcc_x86_cpuid.m4
190
- - ext/ffi_c/libffi/m4/libtool.m4
191
- - ext/ffi_c/libffi/m4/ltoptions.m4
192
- - ext/ffi_c/libffi/m4/ltsugar.m4
193
- - ext/ffi_c/libffi/m4/ltversion.m4
194
- - ext/ffi_c/libffi/m4/lt~obsolete.m4
195
180
  - ext/ffi_c/libffi/man/Makefile.am
196
- - ext/ffi_c/libffi/man/Makefile.in
197
181
  - ext/ffi_c/libffi/man/ffi.3
198
182
  - ext/ffi_c/libffi/man/ffi_call.3
199
183
  - ext/ffi_c/libffi/man/ffi_prep_cif.3
200
- - ext/ffi_c/libffi/mdate-sh
201
- - ext/ffi_c/libffi/missing
184
+ - ext/ffi_c/libffi/man/ffi_prep_cif_var.3
202
185
  - ext/ffi_c/libffi/msvcc.sh
186
+ - ext/ffi_c/libffi/src/aarch64/ffi.c
187
+ - ext/ffi_c/libffi/src/aarch64/ffitarget.h
188
+ - ext/ffi_c/libffi/src/aarch64/internal.h
189
+ - ext/ffi_c/libffi/src/aarch64/sysv.S
203
190
  - ext/ffi_c/libffi/src/alpha/ffi.c
204
191
  - ext/ffi_c/libffi/src/alpha/ffitarget.h
192
+ - ext/ffi_c/libffi/src/alpha/internal.h
205
193
  - ext/ffi_c/libffi/src/alpha/osf.S
194
+ - ext/ffi_c/libffi/src/arc/arcompact.S
195
+ - ext/ffi_c/libffi/src/arc/ffi.c
196
+ - ext/ffi_c/libffi/src/arc/ffitarget.h
206
197
  - ext/ffi_c/libffi/src/arm/ffi.c
207
198
  - ext/ffi_c/libffi/src/arm/ffitarget.h
208
- - ext/ffi_c/libffi/src/arm/gentramp.sh
199
+ - ext/ffi_c/libffi/src/arm/internal.h
209
200
  - ext/ffi_c/libffi/src/arm/sysv.S
210
- - ext/ffi_c/libffi/src/arm/trampoline.S
211
201
  - ext/ffi_c/libffi/src/avr32/ffi.c
212
202
  - ext/ffi_c/libffi/src/avr32/ffitarget.h
213
203
  - ext/ffi_c/libffi/src/avr32/sysv.S
204
+ - ext/ffi_c/libffi/src/bfin/ffi.c
205
+ - ext/ffi_c/libffi/src/bfin/ffitarget.h
206
+ - ext/ffi_c/libffi/src/bfin/sysv.S
214
207
  - ext/ffi_c/libffi/src/closures.c
215
208
  - ext/ffi_c/libffi/src/cris/ffi.c
216
209
  - ext/ffi_c/libffi/src/cris/ffitarget.h
@@ -231,12 +224,28 @@ files:
231
224
  - ext/ffi_c/libffi/src/m68k/ffi.c
232
225
  - ext/ffi_c/libffi/src/m68k/ffitarget.h
233
226
  - ext/ffi_c/libffi/src/m68k/sysv.S
227
+ - ext/ffi_c/libffi/src/m88k/ffi.c
228
+ - ext/ffi_c/libffi/src/m88k/ffitarget.h
229
+ - ext/ffi_c/libffi/src/m88k/obsd.S
230
+ - ext/ffi_c/libffi/src/metag/ffi.c
231
+ - ext/ffi_c/libffi/src/metag/ffitarget.h
232
+ - ext/ffi_c/libffi/src/metag/sysv.S
233
+ - ext/ffi_c/libffi/src/microblaze/ffi.c
234
+ - ext/ffi_c/libffi/src/microblaze/ffitarget.h
235
+ - ext/ffi_c/libffi/src/microblaze/sysv.S
234
236
  - ext/ffi_c/libffi/src/mips/ffi.c
235
237
  - ext/ffi_c/libffi/src/mips/ffitarget.h
236
238
  - ext/ffi_c/libffi/src/mips/n32.S
237
239
  - ext/ffi_c/libffi/src/mips/o32.S
238
240
  - ext/ffi_c/libffi/src/moxie/eabi.S
239
241
  - ext/ffi_c/libffi/src/moxie/ffi.c
242
+ - ext/ffi_c/libffi/src/moxie/ffitarget.h
243
+ - ext/ffi_c/libffi/src/nios2/ffi.c
244
+ - ext/ffi_c/libffi/src/nios2/ffitarget.h
245
+ - ext/ffi_c/libffi/src/nios2/sysv.S
246
+ - ext/ffi_c/libffi/src/or1k/ffi.c
247
+ - ext/ffi_c/libffi/src/or1k/ffitarget.h
248
+ - ext/ffi_c/libffi/src/or1k/sysv.S
240
249
  - ext/ffi_c/libffi/src/pa/ffi.c
241
250
  - ext/ffi_c/libffi/src/pa/ffitarget.h
242
251
  - ext/ffi_c/libffi/src/pa/hpux32.S
@@ -248,6 +257,9 @@ files:
248
257
  - ext/ffi_c/libffi/src/powerpc/darwin_closure.S
249
258
  - ext/ffi_c/libffi/src/powerpc/ffi.c
250
259
  - ext/ffi_c/libffi/src/powerpc/ffi_darwin.c
260
+ - ext/ffi_c/libffi/src/powerpc/ffi_linux64.c
261
+ - ext/ffi_c/libffi/src/powerpc/ffi_powerpc.h
262
+ - ext/ffi_c/libffi/src/powerpc/ffi_sysv.c
251
263
  - ext/ffi_c/libffi/src/powerpc/ffitarget.h
252
264
  - ext/ffi_c/libffi/src/powerpc/linux64.S
253
265
  - ext/ffi_c/libffi/src/powerpc/linux64_closure.S
@@ -257,6 +269,7 @@ files:
257
269
  - ext/ffi_c/libffi/src/raw_api.c
258
270
  - ext/ffi_c/libffi/src/s390/ffi.c
259
271
  - ext/ffi_c/libffi/src/s390/ffitarget.h
272
+ - ext/ffi_c/libffi/src/s390/internal.h
260
273
  - ext/ffi_c/libffi/src/s390/sysv.S
261
274
  - ext/ffi_c/libffi/src/sh/ffi.c
262
275
  - ext/ffi_c/libffi/src/sh/ffitarget.h
@@ -265,27 +278,39 @@ files:
265
278
  - ext/ffi_c/libffi/src/sh64/ffitarget.h
266
279
  - ext/ffi_c/libffi/src/sh64/sysv.S
267
280
  - ext/ffi_c/libffi/src/sparc/ffi.c
281
+ - ext/ffi_c/libffi/src/sparc/ffi64.c
268
282
  - ext/ffi_c/libffi/src/sparc/ffitarget.h
283
+ - ext/ffi_c/libffi/src/sparc/internal.h
269
284
  - ext/ffi_c/libffi/src/sparc/v8.S
270
285
  - ext/ffi_c/libffi/src/sparc/v9.S
286
+ - ext/ffi_c/libffi/src/tile/ffi.c
287
+ - ext/ffi_c/libffi/src/tile/ffitarget.h
288
+ - ext/ffi_c/libffi/src/tile/tile.S
271
289
  - ext/ffi_c/libffi/src/types.c
272
- - ext/ffi_c/libffi/src/x86/darwin.S
273
- - ext/ffi_c/libffi/src/x86/darwin64.S
290
+ - ext/ffi_c/libffi/src/vax/elfbsd.S
291
+ - ext/ffi_c/libffi/src/vax/ffi.c
292
+ - ext/ffi_c/libffi/src/vax/ffitarget.h
293
+ - ext/ffi_c/libffi/src/x86/asmnames.h
274
294
  - ext/ffi_c/libffi/src/x86/ffi.c
275
295
  - ext/ffi_c/libffi/src/x86/ffi64.c
276
296
  - ext/ffi_c/libffi/src/x86/ffitarget.h
277
- - ext/ffi_c/libffi/src/x86/freebsd.S
297
+ - ext/ffi_c/libffi/src/x86/ffiw64.c
298
+ - ext/ffi_c/libffi/src/x86/internal.h
299
+ - ext/ffi_c/libffi/src/x86/internal64.h
278
300
  - ext/ffi_c/libffi/src/x86/sysv.S
279
301
  - ext/ffi_c/libffi/src/x86/unix64.S
280
- - ext/ffi_c/libffi/src/x86/win32.S
281
302
  - ext/ffi_c/libffi/src/x86/win64.S
303
+ - ext/ffi_c/libffi/src/x86/win64_intel.S
304
+ - ext/ffi_c/libffi/src/xtensa/ffi.c
305
+ - ext/ffi_c/libffi/src/xtensa/ffitarget.h
306
+ - ext/ffi_c/libffi/src/xtensa/sysv.S
307
+ - ext/ffi_c/libffi/stamp-h.in
282
308
  - ext/ffi_c/libffi/testsuite/Makefile.am
283
- - ext/ffi_c/libffi/testsuite/Makefile.in
284
309
  - ext/ffi_c/libffi/testsuite/config/default.exp
285
- - ext/ffi_c/libffi/testsuite/lib/libffi-dg.exp
286
310
  - ext/ffi_c/libffi/testsuite/lib/libffi.exp
287
311
  - ext/ffi_c/libffi/testsuite/lib/target-libpath.exp
288
312
  - ext/ffi_c/libffi/testsuite/lib/wrapper.exp
313
+ - ext/ffi_c/libffi/testsuite/libffi.call/align_mixed.c
289
314
  - ext/ffi_c/libffi/testsuite/libffi.call/call.exp
290
315
  - ext/ffi_c/libffi/testsuite/libffi.call/closure_fn0.c
291
316
  - ext/ffi_c/libffi/testsuite/libffi.call/closure_fn1.c
@@ -295,7 +320,7 @@ files:
295
320
  - ext/ffi_c/libffi/testsuite/libffi.call/closure_fn5.c
296
321
  - ext/ffi_c/libffi/testsuite/libffi.call/closure_fn6.c
297
322
  - ext/ffi_c/libffi/testsuite/libffi.call/closure_loc_fn0.c
298
- - ext/ffi_c/libffi/testsuite/libffi.call/closure_stdcall.c
323
+ - ext/ffi_c/libffi/testsuite/libffi.call/closure_simple.c
299
324
  - ext/ffi_c/libffi/testsuite/libffi.call/cls_12byte.c
300
325
  - ext/ffi_c/libffi/testsuite/libffi.call/cls_16byte.c
301
326
  - ext/ffi_c/libffi/testsuite/libffi.call/cls_18byte.c
@@ -338,6 +363,8 @@ files:
338
363
  - ext/ffi_c/libffi/testsuite/libffi.call/cls_float.c
339
364
  - ext/ffi_c/libffi/testsuite/libffi.call/cls_longdouble.c
340
365
  - ext/ffi_c/libffi/testsuite/libffi.call/cls_longdouble_va.c
366
+ - ext/ffi_c/libffi/testsuite/libffi.call/cls_many_mixed_args.c
367
+ - ext/ffi_c/libffi/testsuite/libffi.call/cls_many_mixed_float_double.c
341
368
  - ext/ffi_c/libffi/testsuite/libffi.call/cls_multi_schar.c
342
369
  - ext/ffi_c/libffi/testsuite/libffi.call/cls_multi_sshort.c
343
370
  - ext/ffi_c/libffi/testsuite/libffi.call/cls_multi_sshortchar.c
@@ -349,10 +376,15 @@ files:
349
376
  - ext/ffi_c/libffi/testsuite/libffi.call/cls_schar.c
350
377
  - ext/ffi_c/libffi/testsuite/libffi.call/cls_sint.c
351
378
  - ext/ffi_c/libffi/testsuite/libffi.call/cls_sshort.c
379
+ - ext/ffi_c/libffi/testsuite/libffi.call/cls_struct_va1.c
352
380
  - ext/ffi_c/libffi/testsuite/libffi.call/cls_uchar.c
381
+ - ext/ffi_c/libffi/testsuite/libffi.call/cls_uchar_va.c
353
382
  - ext/ffi_c/libffi/testsuite/libffi.call/cls_uint.c
383
+ - ext/ffi_c/libffi/testsuite/libffi.call/cls_uint_va.c
384
+ - ext/ffi_c/libffi/testsuite/libffi.call/cls_ulong_va.c
354
385
  - ext/ffi_c/libffi/testsuite/libffi.call/cls_ulonglong.c
355
386
  - ext/ffi_c/libffi/testsuite/libffi.call/cls_ushort.c
387
+ - ext/ffi_c/libffi/testsuite/libffi.call/cls_ushort_va.c
356
388
  - ext/ffi_c/libffi/testsuite/libffi.call/err_bad_abi.c
357
389
  - ext/ffi_c/libffi/testsuite/libffi.call/err_bad_typedef.c
358
390
  - ext/ffi_c/libffi/testsuite/libffi.call/ffitest.h
@@ -361,13 +393,17 @@ files:
361
393
  - ext/ffi_c/libffi/testsuite/libffi.call/float2.c
362
394
  - ext/ffi_c/libffi/testsuite/libffi.call/float3.c
363
395
  - ext/ffi_c/libffi/testsuite/libffi.call/float4.c
396
+ - ext/ffi_c/libffi/testsuite/libffi.call/float_va.c
364
397
  - ext/ffi_c/libffi/testsuite/libffi.call/huge_struct.c
365
398
  - ext/ffi_c/libffi/testsuite/libffi.call/many.c
366
- - ext/ffi_c/libffi/testsuite/libffi.call/many_win32.c
399
+ - ext/ffi_c/libffi/testsuite/libffi.call/many2.c
400
+ - ext/ffi_c/libffi/testsuite/libffi.call/many_double.c
401
+ - ext/ffi_c/libffi/testsuite/libffi.call/many_mixed.c
367
402
  - ext/ffi_c/libffi/testsuite/libffi.call/negint.c
368
403
  - ext/ffi_c/libffi/testsuite/libffi.call/nested_struct.c
369
404
  - ext/ffi_c/libffi/testsuite/libffi.call/nested_struct1.c
370
405
  - ext/ffi_c/libffi/testsuite/libffi.call/nested_struct10.c
406
+ - ext/ffi_c/libffi/testsuite/libffi.call/nested_struct11.c
371
407
  - ext/ffi_c/libffi/testsuite/libffi.call/nested_struct2.c
372
408
  - ext/ffi_c/libffi/testsuite/libffi.call/nested_struct3.c
373
409
  - ext/ffi_c/libffi/testsuite/libffi.call/nested_struct4.c
@@ -376,6 +412,8 @@ files:
376
412
  - ext/ffi_c/libffi/testsuite/libffi.call/nested_struct7.c
377
413
  - ext/ffi_c/libffi/testsuite/libffi.call/nested_struct8.c
378
414
  - ext/ffi_c/libffi/testsuite/libffi.call/nested_struct9.c
415
+ - ext/ffi_c/libffi/testsuite/libffi.call/offsets.c
416
+ - ext/ffi_c/libffi/testsuite/libffi.call/pr1172638.c
379
417
  - ext/ffi_c/libffi/testsuite/libffi.call/problem1.c
380
418
  - ext/ffi_c/libffi/testsuite/libffi.call/promotion.c
381
419
  - ext/ffi_c/libffi/testsuite/libffi.call/pyobjc-tc.c
@@ -398,7 +436,9 @@ files:
398
436
  - ext/ffi_c/libffi/testsuite/libffi.call/stret_medium.c
399
437
  - ext/ffi_c/libffi/testsuite/libffi.call/stret_medium2.c
400
438
  - ext/ffi_c/libffi/testsuite/libffi.call/strlen.c
401
- - ext/ffi_c/libffi/testsuite/libffi.call/strlen_win32.c
439
+ - ext/ffi_c/libffi/testsuite/libffi.call/strlen2.c
440
+ - ext/ffi_c/libffi/testsuite/libffi.call/strlen3.c
441
+ - ext/ffi_c/libffi/testsuite/libffi.call/strlen4.c
402
442
  - ext/ffi_c/libffi/testsuite/libffi.call/struct1.c
403
443
  - ext/ffi_c/libffi/testsuite/libffi.call/struct2.c
404
444
  - ext/ffi_c/libffi/testsuite/libffi.call/struct3.c
@@ -409,11 +449,60 @@ files:
409
449
  - ext/ffi_c/libffi/testsuite/libffi.call/struct8.c
410
450
  - ext/ffi_c/libffi/testsuite/libffi.call/struct9.c
411
451
  - ext/ffi_c/libffi/testsuite/libffi.call/testclosure.c
412
- - ext/ffi_c/libffi/testsuite/libffi.special/ffitestcxx.h
413
- - ext/ffi_c/libffi/testsuite/libffi.special/special.exp
414
- - ext/ffi_c/libffi/testsuite/libffi.special/unwindtest.cc
415
- - ext/ffi_c/libffi/testsuite/libffi.special/unwindtest_ffi_call.cc
416
- - ext/ffi_c/libffi/texinfo.tex
452
+ - ext/ffi_c/libffi/testsuite/libffi.call/uninitialized.c
453
+ - ext/ffi_c/libffi/testsuite/libffi.call/unwindtest.cc
454
+ - ext/ffi_c/libffi/testsuite/libffi.call/unwindtest_ffi_call.cc
455
+ - ext/ffi_c/libffi/testsuite/libffi.call/va_1.c
456
+ - ext/ffi_c/libffi/testsuite/libffi.call/va_struct1.c
457
+ - ext/ffi_c/libffi/testsuite/libffi.call/va_struct2.c
458
+ - ext/ffi_c/libffi/testsuite/libffi.call/va_struct3.c
459
+ - ext/ffi_c/libffi/testsuite/libffi.complex/cls_align_complex.inc
460
+ - ext/ffi_c/libffi/testsuite/libffi.complex/cls_align_complex_double.c
461
+ - ext/ffi_c/libffi/testsuite/libffi.complex/cls_align_complex_float.c
462
+ - ext/ffi_c/libffi/testsuite/libffi.complex/cls_align_complex_longdouble.c
463
+ - ext/ffi_c/libffi/testsuite/libffi.complex/cls_complex.inc
464
+ - ext/ffi_c/libffi/testsuite/libffi.complex/cls_complex_double.c
465
+ - ext/ffi_c/libffi/testsuite/libffi.complex/cls_complex_float.c
466
+ - ext/ffi_c/libffi/testsuite/libffi.complex/cls_complex_longdouble.c
467
+ - ext/ffi_c/libffi/testsuite/libffi.complex/cls_complex_struct.inc
468
+ - ext/ffi_c/libffi/testsuite/libffi.complex/cls_complex_struct_double.c
469
+ - ext/ffi_c/libffi/testsuite/libffi.complex/cls_complex_struct_float.c
470
+ - ext/ffi_c/libffi/testsuite/libffi.complex/cls_complex_struct_longdouble.c
471
+ - ext/ffi_c/libffi/testsuite/libffi.complex/cls_complex_va.inc
472
+ - ext/ffi_c/libffi/testsuite/libffi.complex/cls_complex_va_double.c
473
+ - ext/ffi_c/libffi/testsuite/libffi.complex/cls_complex_va_float.c
474
+ - ext/ffi_c/libffi/testsuite/libffi.complex/cls_complex_va_longdouble.c
475
+ - ext/ffi_c/libffi/testsuite/libffi.complex/complex.exp
476
+ - ext/ffi_c/libffi/testsuite/libffi.complex/complex.inc
477
+ - ext/ffi_c/libffi/testsuite/libffi.complex/complex_defs_double.inc
478
+ - ext/ffi_c/libffi/testsuite/libffi.complex/complex_defs_float.inc
479
+ - ext/ffi_c/libffi/testsuite/libffi.complex/complex_defs_longdouble.inc
480
+ - ext/ffi_c/libffi/testsuite/libffi.complex/complex_double.c
481
+ - ext/ffi_c/libffi/testsuite/libffi.complex/complex_float.c
482
+ - ext/ffi_c/libffi/testsuite/libffi.complex/complex_int.c
483
+ - ext/ffi_c/libffi/testsuite/libffi.complex/complex_longdouble.c
484
+ - ext/ffi_c/libffi/testsuite/libffi.complex/ffitest.h
485
+ - ext/ffi_c/libffi/testsuite/libffi.complex/many_complex.inc
486
+ - ext/ffi_c/libffi/testsuite/libffi.complex/many_complex_double.c
487
+ - ext/ffi_c/libffi/testsuite/libffi.complex/many_complex_float.c
488
+ - ext/ffi_c/libffi/testsuite/libffi.complex/many_complex_longdouble.c
489
+ - ext/ffi_c/libffi/testsuite/libffi.complex/return_complex.inc
490
+ - ext/ffi_c/libffi/testsuite/libffi.complex/return_complex1.inc
491
+ - ext/ffi_c/libffi/testsuite/libffi.complex/return_complex1_double.c
492
+ - ext/ffi_c/libffi/testsuite/libffi.complex/return_complex1_float.c
493
+ - ext/ffi_c/libffi/testsuite/libffi.complex/return_complex1_longdouble.c
494
+ - ext/ffi_c/libffi/testsuite/libffi.complex/return_complex2.inc
495
+ - ext/ffi_c/libffi/testsuite/libffi.complex/return_complex2_double.c
496
+ - ext/ffi_c/libffi/testsuite/libffi.complex/return_complex2_float.c
497
+ - ext/ffi_c/libffi/testsuite/libffi.complex/return_complex2_longdouble.c
498
+ - ext/ffi_c/libffi/testsuite/libffi.complex/return_complex_double.c
499
+ - ext/ffi_c/libffi/testsuite/libffi.complex/return_complex_float.c
500
+ - ext/ffi_c/libffi/testsuite/libffi.complex/return_complex_longdouble.c
501
+ - ext/ffi_c/libffi/testsuite/libffi.go/aa-direct.c
502
+ - ext/ffi_c/libffi/testsuite/libffi.go/closure1.c
503
+ - ext/ffi_c/libffi/testsuite/libffi.go/ffitest.h
504
+ - ext/ffi_c/libffi/testsuite/libffi.go/go.exp
505
+ - ext/ffi_c/libffi/testsuite/libffi.go/static-chain.h
417
506
  - ext/ffi_c/rbffi.h
418
507
  - ext/ffi_c/rbffi_endian.h
419
508
  - ext/ffi_c/win32/stdbool.h
@@ -455,6 +544,7 @@ files:
455
544
  - lib/ffi/platform/s390x-linux/types.conf
456
545
  - lib/ffi/platform/sparc-linux/types.conf
457
546
  - lib/ffi/platform/sparc-solaris/types.conf
547
+ - lib/ffi/platform/sparc64-linux/types.conf
458
548
  - lib/ffi/platform/sparcv9-solaris/types.conf
459
549
  - lib/ffi/platform/x86_64-cygwin/types.conf
460
550
  - lib/ffi/platform/x86_64-darwin/types.conf
@@ -494,6 +584,7 @@ files:
494
584
  - libtest/VariadicTest.c
495
585
  - spec/ffi/LICENSE.SPECS
496
586
  - spec/ffi/async_callback_spec.rb
587
+ - spec/ffi/bitmask_spec.rb
497
588
  - spec/ffi/bool_spec.rb
498
589
  - spec/ffi/buffer_spec.rb
499
590
  - spec/ffi/callback_spec.rb
@@ -504,6 +595,7 @@ files:
504
595
  - spec/ffi/errno_spec.rb
505
596
  - spec/ffi/ffi_spec.rb
506
597
  - spec/ffi/fixtures/Benchmark.c
598
+ - spec/ffi/fixtures/BitmaskTest.c
507
599
  - spec/ffi/fixtures/BoolTest.c
508
600
  - spec/ffi/fixtures/BufferTest.c
509
601
  - spec/ffi/fixtures/ClosureTest.c
@@ -562,7 +654,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
562
654
  requirements:
563
655
  - - ">="
564
656
  - !ruby/object:Gem::Version
565
- version: 1.8.7
657
+ version: '1.9'
566
658
  required_rubygems_version: !ruby/object:Gem::Requirement
567
659
  requirements:
568
660
  - - ">="
@@ -570,7 +662,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
570
662
  version: '0'
571
663
  requirements: []
572
664
  rubyforge_project:
573
- rubygems_version: 2.6.8
665
+ rubygems_version: 2.5.2
574
666
  signing_key:
575
667
  specification_version: 4
576
668
  summary: Ruby FFI