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
@@ -57,15 +57,15 @@ int main (void)
57
57
  ffi_type cls_struct_type;
58
58
  ffi_type* dbl_arg_types[3];
59
59
 
60
+ struct cls_struct_19byte g_dbl = { 1.0, 127, 126, 3.0, 120 };
61
+ struct cls_struct_19byte f_dbl = { 4.0, 125, 124, 5.0, 119 };
62
+ struct cls_struct_19byte res_dbl;
63
+
60
64
  cls_struct_type.size = 0;
61
65
  cls_struct_type.alignment = 0;
62
66
  cls_struct_type.type = FFI_TYPE_STRUCT;
63
67
  cls_struct_type.elements = cls_struct_fields;
64
68
 
65
- struct cls_struct_19byte g_dbl = { 1.0, 127, 126, 3.0, 120 };
66
- struct cls_struct_19byte f_dbl = { 4.0, 125, 124, 5.0, 119 };
67
- struct cls_struct_19byte res_dbl;
68
-
69
69
  cls_struct_fields[0] = &ffi_type_double;
70
70
  cls_struct_fields[1] = &ffi_type_uchar;
71
71
  cls_struct_fields[2] = &ffi_type_uchar;
@@ -50,15 +50,15 @@ int main (void)
50
50
  ffi_type cls_struct_type;
51
51
  ffi_type* dbl_arg_types[5];
52
52
 
53
+ struct cls_struct_1_1byte g_dbl = { 12 };
54
+ struct cls_struct_1_1byte f_dbl = { 178 };
55
+ struct cls_struct_1_1byte res_dbl;
56
+
53
57
  cls_struct_type.size = 0;
54
58
  cls_struct_type.alignment = 0;
55
59
  cls_struct_type.type = FFI_TYPE_STRUCT;
56
60
  cls_struct_type.elements = cls_struct_fields;
57
61
 
58
- struct cls_struct_1_1byte g_dbl = { 12 };
59
- struct cls_struct_1_1byte f_dbl = { 178 };
60
- struct cls_struct_1_1byte res_dbl;
61
-
62
62
  cls_struct_fields[0] = &ffi_type_uchar;
63
63
  cls_struct_fields[1] = NULL;
64
64
 
@@ -50,15 +50,15 @@ int main (void)
50
50
  ffi_type cls_struct_type;
51
51
  ffi_type* dbl_arg_types[5];
52
52
 
53
+ struct cls_struct_20byte g_dbl = { 1.0, 2.0, 3 };
54
+ struct cls_struct_20byte f_dbl = { 4.0, 5.0, 7 };
55
+ struct cls_struct_20byte res_dbl;
56
+
53
57
  cls_struct_type.size = 0;
54
58
  cls_struct_type.alignment = 0;
55
59
  cls_struct_type.type = FFI_TYPE_STRUCT;
56
60
  cls_struct_type.elements = cls_struct_fields;
57
61
 
58
- struct cls_struct_20byte g_dbl = { 1.0, 2.0, 3 };
59
- struct cls_struct_20byte f_dbl = { 4.0, 5.0, 7 };
60
- struct cls_struct_20byte res_dbl;
61
-
62
62
  cls_struct_fields[0] = &ffi_type_double;
63
63
  cls_struct_fields[1] = &ffi_type_double;
64
64
  cls_struct_fields[2] = &ffi_type_sint;
@@ -52,15 +52,15 @@ int main (void)
52
52
  ffi_type cls_struct_type;
53
53
  ffi_type* dbl_arg_types[3];
54
54
 
55
+ struct cls_struct_20byte g_dbl = { 1, 2.0, 3.0 };
56
+ struct cls_struct_20byte f_dbl = { 4, 5.0, 7.0 };
57
+ struct cls_struct_20byte res_dbl;
58
+
55
59
  cls_struct_type.size = 0;
56
60
  cls_struct_type.alignment = 0;
57
61
  cls_struct_type.type = FFI_TYPE_STRUCT;
58
62
  cls_struct_type.elements = cls_struct_fields;
59
63
 
60
- struct cls_struct_20byte g_dbl = { 1, 2.0, 3.0 };
61
- struct cls_struct_20byte f_dbl = { 4, 5.0, 7.0 };
62
- struct cls_struct_20byte res_dbl;
63
-
64
64
  cls_struct_fields[0] = &ffi_type_sint;
65
65
  cls_struct_fields[1] = &ffi_type_double;
66
66
  cls_struct_fields[2] = &ffi_type_double;
@@ -61,17 +61,17 @@ int main (void)
61
61
  ffi_type cls_struct_type;
62
62
  ffi_type* dbl_arg_types[5];
63
63
 
64
- cls_struct_type.size = 0;
65
- cls_struct_type.alignment = 0;
66
- cls_struct_type.type = FFI_TYPE_STRUCT;
67
- cls_struct_type.elements = cls_struct_fields;
68
-
69
64
  struct cls_struct_24byte e_dbl = { 9.0, 2.0, 6, 5.0 };
70
65
  struct cls_struct_24byte f_dbl = { 1.0, 2.0, 3, 7.0 };
71
66
  struct cls_struct_24byte g_dbl = { 4.0, 5.0, 7, 9.0 };
72
67
  struct cls_struct_24byte h_dbl = { 8.0, 6.0, 1, 4.0 };
73
68
  struct cls_struct_24byte res_dbl;
74
69
 
70
+ cls_struct_type.size = 0;
71
+ cls_struct_type.alignment = 0;
72
+ cls_struct_type.type = FFI_TYPE_STRUCT;
73
+ cls_struct_type.elements = cls_struct_fields;
74
+
75
75
  cls_struct_fields[0] = &ffi_type_double;
76
76
  cls_struct_fields[1] = &ffi_type_double;
77
77
  cls_struct_fields[2] = &ffi_type_sint;
@@ -50,15 +50,15 @@ int main (void)
50
50
  ffi_type cls_struct_type;
51
51
  ffi_type* dbl_arg_types[5];
52
52
 
53
+ struct cls_struct_2byte g_dbl = { 12, 127 };
54
+ struct cls_struct_2byte f_dbl = { 1, 13 };
55
+ struct cls_struct_2byte res_dbl;
56
+
53
57
  cls_struct_type.size = 0;
54
58
  cls_struct_type.alignment = 0;
55
59
  cls_struct_type.type = FFI_TYPE_STRUCT;
56
60
  cls_struct_type.elements = cls_struct_fields;
57
61
 
58
- struct cls_struct_2byte g_dbl = { 12, 127 };
59
- struct cls_struct_2byte f_dbl = { 1, 13 };
60
- struct cls_struct_2byte res_dbl;
61
-
62
62
  cls_struct_fields[0] = &ffi_type_uchar;
63
63
  cls_struct_fields[1] = &ffi_type_uchar;
64
64
  cls_struct_fields[2] = NULL;
@@ -54,15 +54,15 @@ int main (void)
54
54
  ffi_type cls_struct_type;
55
55
  ffi_type* dbl_arg_types[5];
56
56
 
57
+ struct cls_struct_3_1byte g_dbl = { 12, 13, 14 };
58
+ struct cls_struct_3_1byte f_dbl = { 178, 179, 180 };
59
+ struct cls_struct_3_1byte res_dbl;
60
+
57
61
  cls_struct_type.size = 0;
58
62
  cls_struct_type.alignment = 0;
59
63
  cls_struct_type.type = FFI_TYPE_STRUCT;
60
64
  cls_struct_type.elements = cls_struct_fields;
61
65
 
62
- struct cls_struct_3_1byte g_dbl = { 12, 13, 14 };
63
- struct cls_struct_3_1byte f_dbl = { 178, 179, 180 };
64
- struct cls_struct_3_1byte res_dbl;
65
-
66
66
  cls_struct_fields[0] = &ffi_type_uchar;
67
67
  cls_struct_fields[1] = &ffi_type_uchar;
68
68
  cls_struct_fields[2] = &ffi_type_uchar;
@@ -50,15 +50,15 @@ int main (void)
50
50
  ffi_type cls_struct_type;
51
51
  ffi_type* dbl_arg_types[5];
52
52
 
53
+ struct cls_struct_3byte g_dbl = { 12, 119 };
54
+ struct cls_struct_3byte f_dbl = { 1, 15 };
55
+ struct cls_struct_3byte res_dbl;
56
+
53
57
  cls_struct_type.size = 0;
54
58
  cls_struct_type.alignment = 0;
55
59
  cls_struct_type.type = FFI_TYPE_STRUCT;
56
60
  cls_struct_type.elements = cls_struct_fields;
57
61
 
58
- struct cls_struct_3byte g_dbl = { 12, 119 };
59
- struct cls_struct_3byte f_dbl = { 1, 15 };
60
- struct cls_struct_3byte res_dbl;
61
-
62
62
  cls_struct_fields[0] = &ffi_type_ushort;
63
63
  cls_struct_fields[1] = &ffi_type_uchar;
64
64
  cls_struct_fields[2] = NULL;
@@ -50,15 +50,15 @@ int main (void)
50
50
  ffi_type cls_struct_type;
51
51
  ffi_type* dbl_arg_types[5];
52
52
 
53
+ struct cls_struct_3byte_1 g_dbl = { 15, 125 };
54
+ struct cls_struct_3byte_1 f_dbl = { 9, 19 };
55
+ struct cls_struct_3byte_1 res_dbl;
56
+
53
57
  cls_struct_type.size = 0;
54
58
  cls_struct_type.alignment = 0;
55
59
  cls_struct_type.type = FFI_TYPE_STRUCT;
56
60
  cls_struct_type.elements = cls_struct_fields;
57
61
 
58
- struct cls_struct_3byte_1 g_dbl = { 15, 125 };
59
- struct cls_struct_3byte_1 f_dbl = { 9, 19 };
60
- struct cls_struct_3byte_1 res_dbl;
61
-
62
62
  cls_struct_fields[0] = &ffi_type_uchar;
63
63
  cls_struct_fields[1] = &ffi_type_ushort;
64
64
  cls_struct_fields[2] = NULL;
@@ -56,15 +56,15 @@ int main (void)
56
56
  ffi_type cls_struct_type;
57
57
  ffi_type* dbl_arg_types[5];
58
58
 
59
+ struct cls_struct_4_1byte g_dbl = { 12, 13, 14, 15 };
60
+ struct cls_struct_4_1byte f_dbl = { 178, 179, 180, 181 };
61
+ struct cls_struct_4_1byte res_dbl;
62
+
59
63
  cls_struct_type.size = 0;
60
64
  cls_struct_type.alignment = 0;
61
65
  cls_struct_type.type = FFI_TYPE_STRUCT;
62
66
  cls_struct_type.elements = cls_struct_fields;
63
67
 
64
- struct cls_struct_4_1byte g_dbl = { 12, 13, 14, 15 };
65
- struct cls_struct_4_1byte f_dbl = { 178, 179, 180, 181 };
66
- struct cls_struct_4_1byte res_dbl;
67
-
68
68
  cls_struct_fields[0] = &ffi_type_uchar;
69
69
  cls_struct_fields[1] = &ffi_type_uchar;
70
70
  cls_struct_fields[2] = &ffi_type_uchar;
@@ -50,15 +50,15 @@ int main (void)
50
50
  ffi_type cls_struct_type;
51
51
  ffi_type* dbl_arg_types[5];
52
52
 
53
+ struct cls_struct_4byte g_dbl = { 127, 120 };
54
+ struct cls_struct_4byte f_dbl = { 12, 128 };
55
+ struct cls_struct_4byte res_dbl;
56
+
53
57
  cls_struct_type.size = 0;
54
58
  cls_struct_type.alignment = 0;
55
59
  cls_struct_type.type = FFI_TYPE_STRUCT;
56
60
  cls_struct_type.elements = cls_struct_fields;
57
61
 
58
- struct cls_struct_4byte g_dbl = { 127, 120 };
59
- struct cls_struct_4byte f_dbl = { 12, 128 };
60
- struct cls_struct_4byte res_dbl;
61
-
62
62
  cls_struct_fields[0] = &ffi_type_ushort;
63
63
  cls_struct_fields[1] = &ffi_type_ushort;
64
64
  cls_struct_fields[2] = NULL;
@@ -58,15 +58,15 @@ int main (void)
58
58
  ffi_type cls_struct_type;
59
59
  ffi_type* dbl_arg_types[5];
60
60
 
61
+ struct cls_struct_5byte g_dbl = { 127, 120, 1, 3, 4 };
62
+ struct cls_struct_5byte f_dbl = { 12, 128, 9, 3, 4 };
63
+ struct cls_struct_5byte res_dbl = { 0, 0, 0, 0, 0 };
64
+
61
65
  cls_struct_type.size = 0;
62
66
  cls_struct_type.alignment = 0;
63
67
  cls_struct_type.type = FFI_TYPE_STRUCT;
64
68
  cls_struct_type.elements = cls_struct_fields;
65
69
 
66
- struct cls_struct_5byte g_dbl = { 127, 120, 1, 3, 4 };
67
- struct cls_struct_5byte f_dbl = { 12, 128, 9, 3, 4 };
68
- struct cls_struct_5byte res_dbl = { 0, 0, 0, 0, 0 };
69
-
70
70
  cls_struct_fields[0] = &ffi_type_uchar;
71
71
  cls_struct_fields[1] = &ffi_type_uchar;
72
72
  cls_struct_fields[2] = &ffi_type_uchar;
@@ -53,15 +53,15 @@ int main (void)
53
53
  ffi_type cls_struct_type;
54
54
  ffi_type* dbl_arg_types[5];
55
55
 
56
+ struct cls_struct_5byte g_dbl = { 127, 120, 1 };
57
+ struct cls_struct_5byte f_dbl = { 12, 128, 9 };
58
+ struct cls_struct_5byte res_dbl = { 0, 0, 0 };
59
+
56
60
  cls_struct_type.size = 0;
57
61
  cls_struct_type.alignment = 0;
58
62
  cls_struct_type.type = FFI_TYPE_STRUCT;
59
63
  cls_struct_type.elements = cls_struct_fields;
60
64
 
61
- struct cls_struct_5byte g_dbl = { 127, 120, 1 };
62
- struct cls_struct_5byte f_dbl = { 12, 128, 9 };
63
- struct cls_struct_5byte res_dbl = { 0, 0, 0 };
64
-
65
65
  cls_struct_fields[0] = &ffi_type_ushort;
66
66
  cls_struct_fields[1] = &ffi_type_ushort;
67
67
  cls_struct_fields[2] = &ffi_type_uchar;
@@ -66,17 +66,17 @@ int main (void)
66
66
  ffi_type cls_struct_type;
67
67
  ffi_type* dbl_arg_types[5];
68
68
 
69
- cls_struct_type.size = 0;
70
- cls_struct_type.alignment = 0;
71
- cls_struct_type.type = FFI_TYPE_STRUCT;
72
- cls_struct_type.elements = cls_struct_fields;
73
-
74
69
  struct cls_struct_64byte e_dbl = { 9.0, 2.0, 6.0, 5.0, 3.0, 4.0, 8.0, 1.0 };
75
70
  struct cls_struct_64byte f_dbl = { 1.0, 2.0, 3.0, 7.0, 2.0, 5.0, 6.0, 7.0 };
76
71
  struct cls_struct_64byte g_dbl = { 4.0, 5.0, 7.0, 9.0, 1.0, 1.0, 2.0, 9.0 };
77
72
  struct cls_struct_64byte h_dbl = { 8.0, 6.0, 1.0, 4.0, 0.0, 3.0, 3.0, 1.0 };
78
73
  struct cls_struct_64byte res_dbl;
79
74
 
75
+ cls_struct_type.size = 0;
76
+ cls_struct_type.alignment = 0;
77
+ cls_struct_type.type = FFI_TYPE_STRUCT;
78
+ cls_struct_type.elements = cls_struct_fields;
79
+
80
80
  cls_struct_fields[0] = &ffi_type_double;
81
81
  cls_struct_fields[1] = &ffi_type_double;
82
82
  cls_struct_fields[2] = &ffi_type_double;
@@ -60,15 +60,15 @@ int main (void)
60
60
  ffi_type cls_struct_type;
61
61
  ffi_type* dbl_arg_types[5];
62
62
 
63
+ struct cls_struct_6byte g_dbl = { 127, 120, 1, 3, 4, 5 };
64
+ struct cls_struct_6byte f_dbl = { 12, 128, 9, 3, 4, 5 };
65
+ struct cls_struct_6byte res_dbl = { 0, 0, 0, 0, 0, 0 };
66
+
63
67
  cls_struct_type.size = 0;
64
68
  cls_struct_type.alignment = 0;
65
69
  cls_struct_type.type = FFI_TYPE_STRUCT;
66
70
  cls_struct_type.elements = cls_struct_fields;
67
71
 
68
- struct cls_struct_6byte g_dbl = { 127, 120, 1, 3, 4, 5 };
69
- struct cls_struct_6byte f_dbl = { 12, 128, 9, 3, 4, 5 };
70
- struct cls_struct_6byte res_dbl = { 0, 0, 0, 0, 0, 0 };
71
-
72
72
  cls_struct_fields[0] = &ffi_type_uchar;
73
73
  cls_struct_fields[1] = &ffi_type_uchar;
74
74
  cls_struct_fields[2] = &ffi_type_uchar;
@@ -56,15 +56,15 @@ int main (void)
56
56
  ffi_type cls_struct_type;
57
57
  ffi_type* dbl_arg_types[5];
58
58
 
59
+ struct cls_struct_6byte g_dbl = { 127, 120, 1, 128 };
60
+ struct cls_struct_6byte f_dbl = { 12, 128, 9, 127 };
61
+ struct cls_struct_6byte res_dbl;
62
+
59
63
  cls_struct_type.size = 0;
60
64
  cls_struct_type.alignment = 0;
61
65
  cls_struct_type.type = FFI_TYPE_STRUCT;
62
66
  cls_struct_type.elements = cls_struct_fields;
63
67
 
64
- struct cls_struct_6byte g_dbl = { 127, 120, 1, 128 };
65
- struct cls_struct_6byte f_dbl = { 12, 128, 9, 127 };
66
- struct cls_struct_6byte res_dbl;
67
-
68
68
  cls_struct_fields[0] = &ffi_type_ushort;
69
69
  cls_struct_fields[1] = &ffi_type_ushort;
70
70
  cls_struct_fields[2] = &ffi_type_uchar;
@@ -62,15 +62,15 @@ int main (void)
62
62
  ffi_type cls_struct_type;
63
63
  ffi_type* dbl_arg_types[5];
64
64
 
65
+ struct cls_struct_7byte g_dbl = { 127, 120, 1, 3, 4, 5, 6 };
66
+ struct cls_struct_7byte f_dbl = { 12, 128, 9, 3, 4, 5, 6 };
67
+ struct cls_struct_7byte res_dbl = { 0, 0, 0, 0, 0, 0, 0 };
68
+
65
69
  cls_struct_type.size = 0;
66
70
  cls_struct_type.alignment = 0;
67
71
  cls_struct_type.type = FFI_TYPE_STRUCT;
68
72
  cls_struct_type.elements = cls_struct_fields;
69
73
 
70
- struct cls_struct_7byte g_dbl = { 127, 120, 1, 3, 4, 5, 6 };
71
- struct cls_struct_7byte f_dbl = { 12, 128, 9, 3, 4, 5, 6 };
72
- struct cls_struct_7byte res_dbl = { 0, 0, 0, 0, 0, 0, 0 };
73
-
74
74
  cls_struct_fields[0] = &ffi_type_uchar;
75
75
  cls_struct_fields[1] = &ffi_type_uchar;
76
76
  cls_struct_fields[2] = &ffi_type_uchar;
@@ -55,15 +55,15 @@ int main (void)
55
55
  ffi_type cls_struct_type;
56
56
  ffi_type* dbl_arg_types[5];
57
57
 
58
+ struct cls_struct_7byte g_dbl = { 127, 120, 1, 254 };
59
+ struct cls_struct_7byte f_dbl = { 12, 128, 9, 255 };
60
+ struct cls_struct_7byte res_dbl;
61
+
58
62
  cls_struct_type.size = 0;
59
63
  cls_struct_type.alignment = 0;
60
64
  cls_struct_type.type = FFI_TYPE_STRUCT;
61
65
  cls_struct_type.elements = cls_struct_fields;
62
66
 
63
- struct cls_struct_7byte g_dbl = { 127, 120, 1, 254 };
64
- struct cls_struct_7byte f_dbl = { 12, 128, 9, 255 };
65
- struct cls_struct_7byte res_dbl;
66
-
67
67
  cls_struct_fields[0] = &ffi_type_ushort;
68
68
  cls_struct_fields[1] = &ffi_type_ushort;
69
69
  cls_struct_fields[2] = &ffi_type_uchar;
@@ -49,15 +49,15 @@ int main (void)
49
49
  ffi_type cls_struct_type;
50
50
  ffi_type* dbl_arg_types[5];
51
51
 
52
+ struct cls_struct_8byte g_dbl = { 1, 2.0 };
53
+ struct cls_struct_8byte f_dbl = { 4, 5.0 };
54
+ struct cls_struct_8byte res_dbl;
55
+
52
56
  cls_struct_type.size = 0;
53
57
  cls_struct_type.alignment = 0;
54
58
  cls_struct_type.type = FFI_TYPE_STRUCT;
55
59
  cls_struct_type.elements = cls_struct_fields;
56
60
 
57
- struct cls_struct_8byte g_dbl = { 1, 2.0 };
58
- struct cls_struct_8byte f_dbl = { 4, 5.0 };
59
- struct cls_struct_8byte res_dbl;
60
-
61
61
  cls_struct_fields[0] = &ffi_type_sint;
62
62
  cls_struct_fields[1] = &ffi_type_float;
63
63
  cls_struct_fields[2] = NULL;
@@ -50,15 +50,15 @@ int main (void)
50
50
  ffi_type cls_struct_type;
51
51
  ffi_type* dbl_arg_types[3];
52
52
 
53
+ struct cls_struct_9byte h_dbl = { 7, 8.0};
54
+ struct cls_struct_9byte j_dbl = { 1, 9.0};
55
+ struct cls_struct_9byte res_dbl;
56
+
53
57
  cls_struct_type.size = 0;
54
58
  cls_struct_type.alignment = 0;
55
59
  cls_struct_type.type = FFI_TYPE_STRUCT;
56
60
  cls_struct_type.elements = cls_struct_fields;
57
61
 
58
- struct cls_struct_9byte h_dbl = { 7, 8.0};
59
- struct cls_struct_9byte j_dbl = { 1, 9.0};
60
- struct cls_struct_9byte res_dbl;
61
-
62
62
  cls_struct_fields[0] = &ffi_type_sint;
63
63
  cls_struct_fields[1] = &ffi_type_double;
64
64
  cls_struct_fields[2] = NULL;
@@ -50,15 +50,15 @@ int main (void)
50
50
  ffi_type cls_struct_type;
51
51
  ffi_type* dbl_arg_types[3];
52
52
 
53
+ struct cls_struct_9byte h_dbl = { 7.0, 8};
54
+ struct cls_struct_9byte j_dbl = { 1.0, 9};
55
+ struct cls_struct_9byte res_dbl;
56
+
53
57
  cls_struct_type.size = 0;
54
58
  cls_struct_type.alignment = 0;
55
59
  cls_struct_type.type = FFI_TYPE_STRUCT;
56
60
  cls_struct_type.elements = cls_struct_fields;
57
61
 
58
- struct cls_struct_9byte h_dbl = { 7.0, 8};
59
- struct cls_struct_9byte j_dbl = { 1.0, 9};
60
- struct cls_struct_9byte res_dbl;
61
-
62
62
  cls_struct_fields[0] = &ffi_type_double;
63
63
  cls_struct_fields[1] = &ffi_type_sint;
64
64
  cls_struct_fields[2] = NULL;
@@ -52,15 +52,15 @@ int main (void)
52
52
  ffi_type cls_struct_type;
53
53
  ffi_type* dbl_arg_types[5];
54
54
 
55
+ struct cls_struct_align g_dbl = { 12, 4951, 127 };
56
+ struct cls_struct_align f_dbl = { 1, 9320, 13 };
57
+ struct cls_struct_align res_dbl;
58
+
55
59
  cls_struct_type.size = 0;
56
60
  cls_struct_type.alignment = 0;
57
61
  cls_struct_type.type = FFI_TYPE_STRUCT;
58
62
  cls_struct_type.elements = cls_struct_fields;
59
63
 
60
- struct cls_struct_align g_dbl = { 12, 4951, 127 };
61
- struct cls_struct_align f_dbl = { 1, 9320, 13 };
62
- struct cls_struct_align res_dbl;
63
-
64
64
  cls_struct_fields[0] = &ffi_type_uchar;
65
65
  cls_struct_fields[1] = &ffi_type_double;
66
66
  cls_struct_fields[2] = &ffi_type_uchar;