ffi 1.9.18-x86-mingw32 → 1.9.21-x86-mingw32

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 (384) hide show
  1. checksums.yaml +5 -5
  2. data/README.md +3 -2
  3. data/Rakefile +14 -4
  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/Makefile.in +923 -938
  17. data/ext/ffi_c/libffi/README +164 -52
  18. data/ext/ffi_c/libffi/acinclude.m4 +381 -0
  19. data/ext/ffi_c/libffi/aclocal.m4 +645 -384
  20. data/ext/ffi_c/libffi/autogen.sh +2 -0
  21. data/ext/ffi_c/libffi/autom4te.cache/output.0 +21972 -0
  22. data/ext/ffi_c/libffi/autom4te.cache/output.1 +21972 -0
  23. data/ext/ffi_c/libffi/autom4te.cache/output.2 +21972 -0
  24. data/ext/ffi_c/libffi/autom4te.cache/output.3 +21972 -0
  25. data/ext/ffi_c/libffi/autom4te.cache/requests +331 -0
  26. data/ext/ffi_c/libffi/autom4te.cache/traces.0 +4010 -0
  27. data/ext/ffi_c/libffi/autom4te.cache/traces.1 +1005 -0
  28. data/ext/ffi_c/libffi/autom4te.cache/traces.2 +4010 -0
  29. data/ext/ffi_c/libffi/autom4te.cache/traces.3 +4010 -0
  30. data/ext/ffi_c/libffi/compile +218 -14
  31. data/ext/ffi_c/libffi/config.guess +329 -368
  32. data/ext/ffi_c/libffi/config.sub +232 -112
  33. data/ext/ffi_c/libffi/configure +6970 -2189
  34. data/ext/ffi_c/libffi/configure.ac +148 -256
  35. data/ext/ffi_c/libffi/configure.host +265 -4
  36. data/ext/ffi_c/libffi/depcomp +346 -185
  37. data/ext/ffi_c/libffi/doc/Makefile.am +3 -0
  38. data/ext/ffi_c/libffi/doc/Makefile.in +811 -0
  39. data/ext/ffi_c/libffi/doc/libffi.texi +430 -45
  40. data/ext/ffi_c/libffi/{mdate-sh → doc/mdate-sh} +40 -13
  41. data/ext/ffi_c/libffi/{texinfo.tex → doc/texinfo.tex} +3990 -1121
  42. data/ext/ffi_c/libffi/doc/version.texi +4 -4
  43. data/ext/ffi_c/libffi/fficonfig.h.in +24 -13
  44. data/ext/ffi_c/libffi/fficonfig.h.in~ +210 -0
  45. data/ext/ffi_c/libffi/generate-darwin-source-and-headers.py +207 -0
  46. data/ext/ffi_c/libffi/include/Makefile.am +3 -3
  47. data/ext/ffi_c/libffi/include/Makefile.in +188 -71
  48. data/ext/ffi_c/libffi/include/ffi.h.in +107 -50
  49. data/ext/ffi_c/libffi/include/ffi_cfi.h +55 -0
  50. data/ext/ffi_c/libffi/include/ffi_common.h +32 -11
  51. data/ext/ffi_c/libffi/install-sh +190 -202
  52. data/ext/ffi_c/libffi/libffi.map.in +80 -0
  53. data/ext/ffi_c/libffi/libffi.pc.in +3 -2
  54. data/ext/ffi_c/libffi/libffi.xcodeproj/project.pbxproj +637 -0
  55. data/ext/ffi_c/libffi/libtool-ldflags +106 -0
  56. data/ext/ffi_c/libffi/libtool-version +1 -1
  57. data/ext/ffi_c/libffi/ltmain.sh +3553 -2033
  58. data/ext/ffi_c/libffi/m4/asmcfi.m4 +13 -0
  59. data/ext/ffi_c/libffi/m4/ax_append_flag.m4 +69 -0
  60. data/ext/ffi_c/libffi/m4/ax_cc_maxopt.m4 +13 -8
  61. data/ext/ffi_c/libffi/m4/ax_cflags_warn_all.m4 +31 -104
  62. data/ext/ffi_c/libffi/m4/{ax_check_compiler_flags.m4 → ax_check_compile_flag.m4} +30 -34
  63. data/ext/ffi_c/libffi/m4/ax_compiler_vendor.m4 +32 -11
  64. data/ext/ffi_c/libffi/m4/ax_enable_builddir.m4 +6 -5
  65. data/ext/ffi_c/libffi/m4/ax_gcc_archflag.m4 +31 -21
  66. data/ext/ffi_c/libffi/m4/libtool.m4 +1691 -1135
  67. data/ext/ffi_c/libffi/m4/ltoptions.m4 +104 -36
  68. data/ext/ffi_c/libffi/m4/ltsugar.m4 +4 -3
  69. data/ext/ffi_c/libffi/m4/ltversion.m4 +6 -6
  70. data/ext/ffi_c/libffi/m4/lt~obsolete.m4 +4 -3
  71. data/ext/ffi_c/libffi/man/Makefile.am +2 -2
  72. data/ext/ffi_c/libffi/man/Makefile.in +141 -49
  73. data/ext/ffi_c/libffi/man/ffi.3 +10 -0
  74. data/ext/ffi_c/libffi/man/ffi_prep_cif.3 +6 -4
  75. data/ext/ffi_c/libffi/man/ffi_prep_cif_var.3 +73 -0
  76. data/ext/ffi_c/libffi/missing +150 -311
  77. data/ext/ffi_c/libffi/msvcc.sh +72 -9
  78. data/ext/ffi_c/libffi/src/aarch64/ffi.c +941 -0
  79. data/ext/ffi_c/libffi/src/aarch64/ffitarget.h +81 -0
  80. data/ext/ffi_c/libffi/src/aarch64/internal.h +67 -0
  81. data/ext/ffi_c/libffi/src/aarch64/sysv.S +438 -0
  82. data/ext/ffi_c/libffi/src/alpha/ffi.c +335 -98
  83. data/ext/ffi_c/libffi/src/alpha/ffitarget.h +10 -1
  84. data/ext/ffi_c/libffi/src/alpha/internal.h +23 -0
  85. data/ext/ffi_c/libffi/src/alpha/osf.S +161 -266
  86. data/ext/ffi_c/libffi/src/arc/arcompact.S +135 -0
  87. data/ext/ffi_c/libffi/src/arc/ffi.c +266 -0
  88. data/ext/ffi_c/libffi/src/arc/ffitarget.h +53 -0
  89. data/ext/ffi_c/libffi/src/arm/ffi.c +597 -517
  90. data/ext/ffi_c/libffi/src/arm/ffitarget.h +24 -7
  91. data/ext/ffi_c/libffi/src/arm/internal.h +7 -0
  92. data/ext/ffi_c/libffi/src/arm/sysv.S +303 -417
  93. data/ext/ffi_c/libffi/src/avr32/ffitarget.h +6 -1
  94. data/ext/ffi_c/libffi/src/bfin/ffi.c +196 -0
  95. data/ext/ffi_c/libffi/src/bfin/ffitarget.h +43 -0
  96. data/ext/ffi_c/libffi/src/bfin/sysv.S +179 -0
  97. data/ext/ffi_c/libffi/src/closures.c +319 -44
  98. data/ext/ffi_c/libffi/src/cris/ffi.c +10 -7
  99. data/ext/ffi_c/libffi/src/cris/ffitarget.h +6 -1
  100. data/ext/ffi_c/libffi/src/debug.c +6 -1
  101. data/ext/ffi_c/libffi/src/dlmalloc.c +16 -11
  102. data/ext/ffi_c/libffi/src/frv/ffi.c +1 -1
  103. data/ext/ffi_c/libffi/src/frv/ffitarget.h +6 -1
  104. data/ext/ffi_c/libffi/src/ia64/ffi.c +11 -7
  105. data/ext/ffi_c/libffi/src/ia64/ffitarget.h +6 -1
  106. data/ext/ffi_c/libffi/src/java_raw_api.c +23 -5
  107. data/ext/ffi_c/libffi/src/m32r/ffi.c +1 -1
  108. data/ext/ffi_c/libffi/src/m32r/ffitarget.h +6 -1
  109. data/ext/ffi_c/libffi/src/m68k/ffi.c +87 -13
  110. data/ext/ffi_c/libffi/src/m68k/ffitarget.h +6 -1
  111. data/ext/ffi_c/libffi/src/m68k/sysv.S +119 -32
  112. data/ext/ffi_c/libffi/src/m88k/ffi.c +400 -0
  113. data/ext/ffi_c/libffi/src/m88k/ffitarget.h +49 -0
  114. data/ext/ffi_c/libffi/src/m88k/obsd.S +209 -0
  115. data/ext/ffi_c/libffi/src/metag/ffi.c +330 -0
  116. data/ext/ffi_c/libffi/{fficonfig.hw → src/metag/ffitarget.h} +22 -26
  117. data/ext/ffi_c/libffi/src/metag/sysv.S +311 -0
  118. data/ext/ffi_c/libffi/src/microblaze/ffi.c +321 -0
  119. data/ext/ffi_c/libffi/src/microblaze/ffitarget.h +53 -0
  120. data/ext/ffi_c/libffi/src/microblaze/sysv.S +302 -0
  121. data/ext/ffi_c/libffi/src/mips/ffi.c +95 -28
  122. data/ext/ffi_c/libffi/src/mips/ffitarget.h +9 -2
  123. data/ext/ffi_c/libffi/src/mips/n32.S +126 -56
  124. data/ext/ffi_c/libffi/src/mips/o32.S +148 -27
  125. data/ext/ffi_c/libffi/src/moxie/eabi.S +55 -82
  126. data/ext/ffi_c/libffi/src/moxie/ffi.c +40 -44
  127. data/ext/ffi_c/libffi/src/moxie/ffitarget.h +52 -0
  128. data/ext/ffi_c/libffi/src/nios2/ffi.c +304 -0
  129. data/ext/ffi_c/libffi/src/nios2/ffitarget.h +52 -0
  130. data/ext/ffi_c/libffi/src/nios2/sysv.S +136 -0
  131. data/ext/ffi_c/libffi/src/or1k/ffi.c +328 -0
  132. data/ext/ffi_c/libffi/src/or1k/ffitarget.h +58 -0
  133. data/ext/ffi_c/libffi/src/or1k/sysv.S +107 -0
  134. data/ext/ffi_c/libffi/src/pa/ffitarget.h +8 -1
  135. data/ext/ffi_c/libffi/src/powerpc/aix.S +6 -6
  136. data/ext/ffi_c/libffi/src/powerpc/aix_closure.S +3 -1
  137. data/ext/ffi_c/libffi/src/powerpc/asm.h +2 -2
  138. data/ext/ffi_c/libffi/src/powerpc/darwin.S +2 -7
  139. data/ext/ffi_c/libffi/src/powerpc/darwin_closure.S +22 -26
  140. data/ext/ffi_c/libffi/src/powerpc/ffi.c +103 -1378
  141. data/ext/ffi_c/libffi/src/powerpc/ffi_darwin.c +25 -25
  142. data/ext/ffi_c/libffi/src/powerpc/ffi_linux64.c +945 -0
  143. data/ext/ffi_c/libffi/src/powerpc/ffi_powerpc.h +94 -0
  144. data/ext/ffi_c/libffi/src/powerpc/ffi_sysv.c +923 -0
  145. data/ext/ffi_c/libffi/src/powerpc/ffitarget.h +100 -44
  146. data/ext/ffi_c/libffi/src/powerpc/linux64.S +100 -59
  147. data/ext/ffi_c/libffi/src/powerpc/linux64_closure.S +360 -108
  148. data/ext/ffi_c/libffi/src/powerpc/ppc_closure.S +138 -68
  149. data/ext/ffi_c/libffi/src/powerpc/sysv.S +68 -112
  150. data/ext/ffi_c/libffi/src/prep_cif.c +108 -24
  151. data/ext/ffi_c/libffi/src/raw_api.c +18 -5
  152. data/ext/ffi_c/libffi/src/s390/ffi.c +294 -318
  153. data/ext/ffi_c/libffi/src/s390/ffitarget.h +9 -1
  154. data/ext/ffi_c/libffi/src/s390/internal.h +11 -0
  155. data/ext/ffi_c/libffi/src/s390/sysv.S +257 -366
  156. data/ext/ffi_c/libffi/src/sh/ffi.c +4 -3
  157. data/ext/ffi_c/libffi/src/sh/ffitarget.h +6 -1
  158. data/ext/ffi_c/libffi/src/sh64/ffi.c +3 -2
  159. data/ext/ffi_c/libffi/src/sh64/ffitarget.h +6 -1
  160. data/ext/ffi_c/libffi/src/sparc/ffi.c +326 -527
  161. data/ext/ffi_c/libffi/src/sparc/ffi64.c +608 -0
  162. data/ext/ffi_c/libffi/src/sparc/ffitarget.h +20 -7
  163. data/ext/ffi_c/libffi/src/sparc/internal.h +26 -0
  164. data/ext/ffi_c/libffi/src/sparc/v8.S +364 -234
  165. data/ext/ffi_c/libffi/src/sparc/v9.S +340 -207
  166. data/ext/ffi_c/libffi/src/tile/ffi.c +355 -0
  167. data/ext/ffi_c/libffi/src/tile/ffitarget.h +65 -0
  168. data/ext/ffi_c/libffi/src/tile/tile.S +360 -0
  169. data/ext/ffi_c/libffi/src/types.c +43 -14
  170. data/ext/ffi_c/libffi/src/vax/elfbsd.S +195 -0
  171. data/ext/ffi_c/libffi/src/vax/ffi.c +276 -0
  172. data/ext/ffi_c/libffi/src/vax/ffitarget.h +49 -0
  173. data/ext/ffi_c/libffi/src/x86/asmnames.h +30 -0
  174. data/ext/ffi_c/libffi/src/x86/ffi.c +589 -500
  175. data/ext/ffi_c/libffi/src/x86/ffi64.c +338 -116
  176. data/ext/ffi_c/libffi/src/x86/ffitarget.h +55 -35
  177. data/ext/ffi_c/libffi/src/x86/ffiw64.c +287 -0
  178. data/ext/ffi_c/libffi/src/x86/internal.h +29 -0
  179. data/ext/ffi_c/libffi/src/x86/internal64.h +22 -0
  180. data/ext/ffi_c/libffi/src/x86/sysv.S +975 -400
  181. data/ext/ffi_c/libffi/src/x86/unix64.S +398 -299
  182. data/ext/ffi_c/libffi/src/x86/win64.S +222 -458
  183. data/ext/ffi_c/libffi/src/x86/win64_intel.S +237 -0
  184. data/ext/ffi_c/libffi/src/xtensa/ffi.c +298 -0
  185. data/ext/ffi_c/libffi/src/xtensa/ffitarget.h +53 -0
  186. data/ext/ffi_c/libffi/src/xtensa/sysv.S +253 -0
  187. data/ext/ffi_c/libffi/stamp-h.in +1 -0
  188. data/ext/ffi_c/libffi/testsuite/Makefile.am +78 -73
  189. data/ext/ffi_c/libffi/testsuite/Makefile.in +218 -111
  190. data/ext/ffi_c/libffi/testsuite/lib/libffi.exp +120 -25
  191. data/ext/ffi_c/libffi/testsuite/lib/target-libpath.exp +21 -1
  192. data/ext/ffi_c/libffi/testsuite/libffi.call/align_mixed.c +46 -0
  193. data/ext/ffi_c/libffi/testsuite/libffi.call/call.exp +4 -6
  194. data/ext/ffi_c/libffi/testsuite/libffi.call/{closure_stdcall.c → closure_simple.c} +7 -16
  195. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_12byte.c +4 -4
  196. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_16byte.c +4 -4
  197. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_18byte.c +4 -4
  198. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_19byte.c +4 -4
  199. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_1_1byte.c +4 -4
  200. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_20byte.c +4 -4
  201. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_20byte1.c +4 -4
  202. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_24byte.c +5 -5
  203. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_2byte.c +4 -4
  204. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_3_1byte.c +4 -4
  205. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_3byte1.c +4 -4
  206. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_3byte2.c +4 -4
  207. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_4_1byte.c +4 -4
  208. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_4byte.c +4 -4
  209. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_5_1_byte.c +4 -4
  210. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_5byte.c +4 -4
  211. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_64byte.c +5 -5
  212. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_6_1_byte.c +4 -4
  213. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_6byte.c +4 -4
  214. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_7_1_byte.c +4 -4
  215. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_7byte.c +4 -4
  216. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_8byte.c +4 -4
  217. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_9byte1.c +4 -4
  218. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_9byte2.c +4 -4
  219. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_double.c +4 -4
  220. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_float.c +4 -4
  221. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_longdouble.c +4 -4
  222. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_longdouble_split.c +4 -6
  223. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_longdouble_split2.c +4 -6
  224. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_pointer.c +4 -4
  225. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_sint16.c +4 -4
  226. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_sint32.c +4 -4
  227. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_sint64.c +4 -4
  228. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_uint16.c +4 -4
  229. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_uint32.c +4 -4
  230. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_align_uint64.c +4 -4
  231. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_dbls_struct.c +4 -4
  232. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_double_va.c +10 -9
  233. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_longdouble.c +3 -3
  234. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_longdouble_va.c +10 -9
  235. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_many_mixed_args.c +70 -0
  236. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_many_mixed_float_double.c +55 -0
  237. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_pointer.c +1 -1
  238. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_pointer_stack.c +11 -9
  239. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_struct_va1.c +114 -0
  240. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_uchar_va.c +44 -0
  241. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_uint_va.c +45 -0
  242. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_ulong_va.c +45 -0
  243. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_ulonglong.c +5 -5
  244. data/ext/ffi_c/libffi/testsuite/libffi.call/cls_ushort_va.c +44 -0
  245. data/ext/ffi_c/libffi/testsuite/libffi.call/err_bad_typedef.c +2 -2
  246. data/ext/ffi_c/libffi/testsuite/libffi.call/ffitest.h +23 -40
  247. data/ext/ffi_c/libffi/testsuite/libffi.call/float1.c +3 -1
  248. data/ext/ffi_c/libffi/testsuite/libffi.call/float2.c +6 -4
  249. data/ext/ffi_c/libffi/testsuite/libffi.call/float3.c +4 -2
  250. data/ext/ffi_c/libffi/testsuite/libffi.call/float_va.c +107 -0
  251. data/ext/ffi_c/libffi/testsuite/libffi.call/huge_struct.c +18 -19
  252. data/ext/ffi_c/libffi/testsuite/libffi.call/many.c +6 -16
  253. data/ext/ffi_c/libffi/testsuite/libffi.call/many2.c +57 -0
  254. data/ext/ffi_c/libffi/testsuite/libffi.call/many_double.c +70 -0
  255. data/ext/ffi_c/libffi/testsuite/libffi.call/many_mixed.c +78 -0
  256. data/ext/ffi_c/libffi/testsuite/libffi.call/negint.c +0 -1
  257. data/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct.c +6 -6
  258. data/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct1.c +8 -8
  259. data/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct10.c +6 -6
  260. data/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct11.c +121 -0
  261. data/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct2.c +5 -5
  262. data/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct3.c +5 -5
  263. data/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct4.c +5 -5
  264. data/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct5.c +5 -5
  265. data/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct6.c +6 -6
  266. data/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct7.c +5 -5
  267. data/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct8.c +6 -6
  268. data/ext/ffi_c/libffi/testsuite/libffi.call/nested_struct9.c +6 -6
  269. data/ext/ffi_c/libffi/testsuite/libffi.call/offsets.c +46 -0
  270. data/ext/ffi_c/libffi/testsuite/libffi.call/pr1172638.c +127 -0
  271. data/ext/ffi_c/libffi/testsuite/libffi.call/return_dbl.c +1 -0
  272. data/ext/ffi_c/libffi/testsuite/libffi.call/return_ldl.c +1 -1
  273. data/ext/ffi_c/libffi/testsuite/libffi.call/return_sc.c +1 -1
  274. data/ext/ffi_c/libffi/testsuite/libffi.call/return_uc.c +1 -1
  275. data/ext/ffi_c/libffi/testsuite/libffi.call/stret_large.c +7 -7
  276. data/ext/ffi_c/libffi/testsuite/libffi.call/stret_large2.c +7 -7
  277. data/ext/ffi_c/libffi/testsuite/libffi.call/stret_medium.c +5 -5
  278. data/ext/ffi_c/libffi/testsuite/libffi.call/stret_medium2.c +5 -5
  279. data/ext/ffi_c/libffi/testsuite/libffi.call/strlen.c +2 -2
  280. data/ext/ffi_c/libffi/testsuite/libffi.call/strlen2.c +49 -0
  281. data/ext/ffi_c/libffi/testsuite/libffi.call/strlen3.c +49 -0
  282. data/ext/ffi_c/libffi/testsuite/libffi.call/strlen4.c +55 -0
  283. data/ext/ffi_c/libffi/testsuite/libffi.call/struct1.c +9 -7
  284. data/ext/ffi_c/libffi/testsuite/libffi.call/struct2.c +7 -7
  285. data/ext/ffi_c/libffi/testsuite/libffi.call/struct3.c +7 -6
  286. data/ext/ffi_c/libffi/testsuite/libffi.call/struct4.c +9 -8
  287. data/ext/ffi_c/libffi/testsuite/libffi.call/struct5.c +9 -8
  288. data/ext/ffi_c/libffi/testsuite/libffi.call/struct6.c +9 -9
  289. data/ext/ffi_c/libffi/testsuite/libffi.call/struct7.c +9 -9
  290. data/ext/ffi_c/libffi/testsuite/libffi.call/struct8.c +9 -8
  291. data/ext/ffi_c/libffi/testsuite/libffi.call/struct9.c +9 -8
  292. data/ext/ffi_c/libffi/testsuite/libffi.call/testclosure.c +2 -2
  293. data/ext/ffi_c/libffi/testsuite/libffi.call/uninitialized.c +61 -0
  294. data/ext/ffi_c/libffi/testsuite/{libffi.special → libffi.call}/unwindtest.cc +3 -10
  295. data/ext/ffi_c/libffi/testsuite/{libffi.special → libffi.call}/unwindtest_ffi_call.cc +2 -1
  296. data/ext/ffi_c/libffi/testsuite/libffi.call/va_1.c +196 -0
  297. data/ext/ffi_c/libffi/testsuite/libffi.call/va_struct1.c +121 -0
  298. data/ext/ffi_c/libffi/testsuite/libffi.call/va_struct2.c +123 -0
  299. data/ext/ffi_c/libffi/testsuite/libffi.call/va_struct3.c +125 -0
  300. data/ext/ffi_c/libffi/testsuite/libffi.complex/cls_align_complex.inc +91 -0
  301. data/ext/ffi_c/libffi/testsuite/libffi.complex/cls_align_complex_double.c +10 -0
  302. data/ext/ffi_c/libffi/testsuite/libffi.complex/cls_align_complex_float.c +10 -0
  303. data/ext/ffi_c/libffi/testsuite/libffi.complex/cls_align_complex_longdouble.c +10 -0
  304. data/ext/ffi_c/libffi/testsuite/libffi.complex/cls_complex.inc +42 -0
  305. data/ext/ffi_c/libffi/testsuite/libffi.complex/cls_complex_double.c +10 -0
  306. data/ext/ffi_c/libffi/testsuite/libffi.complex/cls_complex_float.c +10 -0
  307. data/ext/ffi_c/libffi/testsuite/libffi.complex/cls_complex_longdouble.c +10 -0
  308. data/ext/ffi_c/libffi/testsuite/libffi.complex/cls_complex_struct.inc +71 -0
  309. data/ext/ffi_c/libffi/testsuite/libffi.complex/cls_complex_struct_double.c +10 -0
  310. data/ext/ffi_c/libffi/testsuite/libffi.complex/cls_complex_struct_float.c +10 -0
  311. data/ext/ffi_c/libffi/testsuite/libffi.complex/cls_complex_struct_longdouble.c +10 -0
  312. data/ext/ffi_c/libffi/testsuite/libffi.complex/cls_complex_va.inc +80 -0
  313. data/ext/ffi_c/libffi/testsuite/libffi.complex/cls_complex_va_double.c +10 -0
  314. data/ext/ffi_c/libffi/testsuite/libffi.complex/cls_complex_va_float.c +16 -0
  315. data/ext/ffi_c/libffi/testsuite/libffi.complex/cls_complex_va_longdouble.c +10 -0
  316. data/ext/ffi_c/libffi/testsuite/{libffi.special/special.exp → libffi.complex/complex.exp} +9 -8
  317. data/ext/ffi_c/libffi/testsuite/libffi.complex/complex.inc +51 -0
  318. data/ext/ffi_c/libffi/testsuite/libffi.complex/complex_defs_double.inc +7 -0
  319. data/ext/ffi_c/libffi/testsuite/libffi.complex/complex_defs_float.inc +7 -0
  320. data/ext/ffi_c/libffi/testsuite/libffi.complex/complex_defs_longdouble.inc +7 -0
  321. data/ext/ffi_c/libffi/testsuite/libffi.complex/complex_double.c +10 -0
  322. data/ext/ffi_c/libffi/testsuite/libffi.complex/complex_float.c +10 -0
  323. data/ext/ffi_c/libffi/testsuite/libffi.complex/complex_int.c +86 -0
  324. data/ext/ffi_c/libffi/testsuite/libffi.complex/complex_longdouble.c +10 -0
  325. data/ext/ffi_c/libffi/testsuite/libffi.complex/ffitest.h +1 -0
  326. data/ext/ffi_c/libffi/testsuite/libffi.complex/many_complex.inc +78 -0
  327. data/ext/ffi_c/libffi/testsuite/libffi.complex/many_complex_double.c +10 -0
  328. data/ext/ffi_c/libffi/testsuite/libffi.complex/many_complex_float.c +10 -0
  329. data/ext/ffi_c/libffi/testsuite/libffi.complex/many_complex_longdouble.c +10 -0
  330. data/ext/ffi_c/libffi/testsuite/libffi.complex/return_complex.inc +37 -0
  331. data/ext/ffi_c/libffi/testsuite/libffi.complex/return_complex1.inc +41 -0
  332. data/ext/ffi_c/libffi/testsuite/libffi.complex/return_complex1_double.c +10 -0
  333. data/ext/ffi_c/libffi/testsuite/libffi.complex/return_complex1_float.c +10 -0
  334. data/ext/ffi_c/libffi/testsuite/libffi.complex/return_complex1_longdouble.c +10 -0
  335. data/ext/ffi_c/libffi/testsuite/libffi.complex/return_complex2.inc +44 -0
  336. data/ext/ffi_c/libffi/testsuite/libffi.complex/return_complex2_double.c +10 -0
  337. data/ext/ffi_c/libffi/testsuite/libffi.complex/return_complex2_float.c +10 -0
  338. data/ext/ffi_c/libffi/testsuite/libffi.complex/return_complex2_longdouble.c +10 -0
  339. data/ext/ffi_c/libffi/testsuite/libffi.complex/return_complex_double.c +10 -0
  340. data/ext/ffi_c/libffi/testsuite/libffi.complex/return_complex_float.c +10 -0
  341. data/ext/ffi_c/libffi/testsuite/libffi.complex/return_complex_longdouble.c +10 -0
  342. data/ext/ffi_c/libffi/testsuite/libffi.go/aa-direct.c +34 -0
  343. data/ext/ffi_c/libffi/testsuite/libffi.go/closure1.c +28 -0
  344. data/ext/ffi_c/libffi/testsuite/libffi.go/ffitest.h +1 -0
  345. data/ext/ffi_c/libffi/testsuite/libffi.go/go.exp +36 -0
  346. data/ext/ffi_c/libffi/testsuite/libffi.go/static-chain.h +19 -0
  347. data/ffi.gemspec +2 -2
  348. data/lib/2.0/ffi_c.so +0 -0
  349. data/lib/2.1/ffi_c.so +0 -0
  350. data/lib/2.2/ffi_c.so +0 -0
  351. data/lib/2.3/ffi_c.so +0 -0
  352. data/lib/2.4/ffi_c.so +0 -0
  353. data/lib/2.5/ffi_c.so +0 -0
  354. data/lib/ffi/enum.rb +124 -0
  355. data/lib/ffi/library.rb +65 -13
  356. data/lib/ffi/platform.rb +7 -2
  357. data/lib/ffi/platform/sparc64-linux/types.conf +102 -0
  358. data/lib/ffi/platform/x86_64-windows/types.conf +113 -20
  359. data/lib/ffi/pointer.rb +1 -0
  360. data/lib/ffi/struct.rb +0 -2
  361. data/lib/ffi/version.rb +1 -1
  362. data/spec/ffi/bitmask_spec.rb +575 -0
  363. data/spec/ffi/embed-test/ext/Makefile +242 -0
  364. data/spec/ffi/fixtures/BitmaskTest.c +51 -0
  365. data/spec/ffi/rbx/memory_pointer_spec.rb +4 -0
  366. data/spec/ffi/struct_spec.rb +0 -4
  367. metadata +158 -32
  368. data/ext/ffi_c/libffi/Makefile.vc +0 -141
  369. data/ext/ffi_c/libffi/Makefile.vc64 +0 -141
  370. data/ext/ffi_c/libffi/build-ios.sh +0 -67
  371. data/ext/ffi_c/libffi/doc/libffi.info +0 -593
  372. data/ext/ffi_c/libffi/doc/stamp-vti +0 -4
  373. data/ext/ffi_c/libffi/include/ffi.h.vc +0 -427
  374. data/ext/ffi_c/libffi/include/ffi.h.vc64 +0 -427
  375. data/ext/ffi_c/libffi/src/arm/gentramp.sh +0 -118
  376. data/ext/ffi_c/libffi/src/arm/trampoline.S +0 -4450
  377. data/ext/ffi_c/libffi/src/x86/darwin.S +0 -444
  378. data/ext/ffi_c/libffi/src/x86/darwin64.S +0 -416
  379. data/ext/ffi_c/libffi/src/x86/freebsd.S +0 -458
  380. data/ext/ffi_c/libffi/src/x86/win32.S +0 -1065
  381. data/ext/ffi_c/libffi/testsuite/lib/libffi-dg.exp +0 -300
  382. data/ext/ffi_c/libffi/testsuite/libffi.call/many_win32.c +0 -63
  383. data/ext/ffi_c/libffi/testsuite/libffi.call/strlen_win32.c +0 -44
  384. data/ext/ffi_c/libffi/testsuite/libffi.special/ffitestcxx.h +0 -96
@@ -3,7 +3,7 @@
3
3
  AUTOMAKE_OPTIONS=foreign
4
4
 
5
5
  DISTCLEANFILES=ffitarget.h
6
- EXTRA_DIST=ffi.h.in ffi_common.h
6
+ noinst_HEADERS=ffi_common.h ffi_cfi.h
7
+ EXTRA_DIST=ffi.h.in
7
8
 
8
- includesdir = $(libdir)/@PACKAGE_NAME@-@PACKAGE_VERSION@/include
9
- nodist_includes_HEADERS = ffi.h ffitarget.h
9
+ nodist_include_HEADERS = ffi.h ffitarget.h
@@ -1,9 +1,8 @@
1
- # Makefile.in generated by automake 1.11.1 from Makefile.am.
1
+ # Makefile.in generated by automake 1.15 from Makefile.am.
2
2
  # @configure_input@
3
3
 
4
- # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
5
- # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
6
- # Inc.
4
+ # Copyright (C) 1994-2014 Free Software Foundation, Inc.
5
+
7
6
  # This Makefile.in is free software; the Free Software Foundation
8
7
  # gives unlimited permission to copy and/or distribute it,
9
8
  # with or without modifications, as long as this notice is preserved.
@@ -16,6 +15,61 @@
16
15
  @SET_MAKE@
17
16
 
18
17
  VPATH = @srcdir@
18
+ am__is_gnu_make = { \
19
+ if test -z '$(MAKELEVEL)'; then \
20
+ false; \
21
+ elif test -n '$(MAKE_HOST)'; then \
22
+ true; \
23
+ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
24
+ true; \
25
+ else \
26
+ false; \
27
+ fi; \
28
+ }
29
+ am__make_running_with_option = \
30
+ case $${target_option-} in \
31
+ ?) ;; \
32
+ *) echo "am__make_running_with_option: internal error: invalid" \
33
+ "target option '$${target_option-}' specified" >&2; \
34
+ exit 1;; \
35
+ esac; \
36
+ has_opt=no; \
37
+ sane_makeflags=$$MAKEFLAGS; \
38
+ if $(am__is_gnu_make); then \
39
+ sane_makeflags=$$MFLAGS; \
40
+ else \
41
+ case $$MAKEFLAGS in \
42
+ *\\[\ \ ]*) \
43
+ bs=\\; \
44
+ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
45
+ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
46
+ esac; \
47
+ fi; \
48
+ skip_next=no; \
49
+ strip_trailopt () \
50
+ { \
51
+ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
52
+ }; \
53
+ for flg in $$sane_makeflags; do \
54
+ test $$skip_next = yes && { skip_next=no; continue; }; \
55
+ case $$flg in \
56
+ *=*|--*) continue;; \
57
+ -*I) strip_trailopt 'I'; skip_next=yes;; \
58
+ -*I?*) strip_trailopt 'I';; \
59
+ -*O) strip_trailopt 'O'; skip_next=yes;; \
60
+ -*O?*) strip_trailopt 'O';; \
61
+ -*l) strip_trailopt 'l'; skip_next=yes;; \
62
+ -*l?*) strip_trailopt 'l';; \
63
+ -[dEDm]) skip_next=yes;; \
64
+ -[JT]) skip_next=yes;; \
65
+ esac; \
66
+ case $$flg in \
67
+ *$$target_option*) has_opt=yes; break;; \
68
+ esac; \
69
+ done; \
70
+ test $$has_opt = yes
71
+ am__make_dryrun = (target_option=n; $(am__make_running_with_option))
72
+ am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
19
73
  pkgdatadir = $(datadir)/@PACKAGE@
20
74
  pkgincludedir = $(includedir)/@PACKAGE@
21
75
  pkglibdir = $(libdir)/@PACKAGE@
@@ -36,12 +90,12 @@ build_triplet = @build@
36
90
  host_triplet = @host@
37
91
  target_triplet = @target@
38
92
  subdir = include
39
- DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
40
- $(srcdir)/ffi.h.in
41
93
  ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
42
- am__aclocal_m4_deps = $(top_srcdir)/m4/ax_cc_maxopt.m4 \
94
+ am__aclocal_m4_deps = $(top_srcdir)/m4/asmcfi.m4 \
95
+ $(top_srcdir)/m4/ax_append_flag.m4 \
96
+ $(top_srcdir)/m4/ax_cc_maxopt.m4 \
43
97
  $(top_srcdir)/m4/ax_cflags_warn_all.m4 \
44
- $(top_srcdir)/m4/ax_check_compiler_flags.m4 \
98
+ $(top_srcdir)/m4/ax_check_compile_flag.m4 \
45
99
  $(top_srcdir)/m4/ax_compiler_vendor.m4 \
46
100
  $(top_srcdir)/m4/ax_configure_args.m4 \
47
101
  $(top_srcdir)/m4/ax_enable_builddir.m4 \
@@ -53,12 +107,31 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/ax_cc_maxopt.m4 \
53
107
  $(top_srcdir)/configure.ac
54
108
  am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
55
109
  $(ACLOCAL_M4)
110
+ DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
111
+ $(am__DIST_COMMON)
56
112
  mkinstalldirs = $(install_sh) -d
57
113
  CONFIG_HEADER = $(top_builddir)/fficonfig.h
58
114
  CONFIG_CLEAN_FILES = ffi.h ffitarget.h
59
115
  CONFIG_CLEAN_VPATH_FILES =
116
+ AM_V_P = $(am__v_P_@AM_V@)
117
+ am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
118
+ am__v_P_0 = false
119
+ am__v_P_1 = :
120
+ AM_V_GEN = $(am__v_GEN_@AM_V@)
121
+ am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
122
+ am__v_GEN_0 = @echo " GEN " $@;
123
+ am__v_GEN_1 =
124
+ AM_V_at = $(am__v_at_@AM_V@)
125
+ am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
126
+ am__v_at_0 = @
127
+ am__v_at_1 =
60
128
  SOURCES =
61
129
  DIST_SOURCES =
130
+ am__can_run_installinfo = \
131
+ case $$AM_UPDATE_INFO_DIR in \
132
+ n|no|NO) false;; \
133
+ *) (install-info --version) >/dev/null 2>&1;; \
134
+ esac
62
135
  am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
63
136
  am__vpath_adj = case $$p in \
64
137
  $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
@@ -80,14 +153,39 @@ am__nobase_list = $(am__nobase_strip_setup); \
80
153
  am__base_list = \
81
154
  sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
82
155
  sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
83
- am__installdirs = "$(DESTDIR)$(includesdir)"
84
- HEADERS = $(nodist_includes_HEADERS)
156
+ am__uninstall_files_from_dir = { \
157
+ test -z "$$files" \
158
+ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
159
+ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
160
+ $(am__cd) "$$dir" && rm -f $$files; }; \
161
+ }
162
+ am__installdirs = "$(DESTDIR)$(includedir)"
163
+ HEADERS = $(nodist_include_HEADERS) $(noinst_HEADERS)
164
+ am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
165
+ # Read a list of newline-separated strings from the standard input,
166
+ # and print each of them once, without duplicates. Input order is
167
+ # *not* preserved.
168
+ am__uniquify_input = $(AWK) '\
169
+ BEGIN { nonempty = 0; } \
170
+ { items[$$0] = 1; nonempty = 1; } \
171
+ END { if (nonempty) { for (i in items) print i; }; } \
172
+ '
173
+ # Make sure the list of sources is unique. This is necessary because,
174
+ # e.g., the same source file might be shared among _SOURCES variables
175
+ # for different programs/libraries.
176
+ am__define_uniq_tagged_files = \
177
+ list='$(am__tagged_files)'; \
178
+ unique=`for i in $$list; do \
179
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
180
+ done | $(am__uniquify_input)`
85
181
  ETAGS = etags
86
182
  CTAGS = ctags
183
+ am__DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/ffi.h.in
87
184
  DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
88
185
  ACLOCAL = @ACLOCAL@
89
186
  ALLOCA = @ALLOCA@
90
187
  AMTAR = @AMTAR@
188
+ AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
91
189
  AM_LTLDFLAGS = @AM_LTLDFLAGS@
92
190
  AM_RUNTESTFLAGS = @AM_RUNTESTFLAGS@
93
191
  AR = @AR@
@@ -103,6 +201,10 @@ CCDEPMODE = @CCDEPMODE@
103
201
  CFLAGS = @CFLAGS@
104
202
  CPP = @CPP@
105
203
  CPPFLAGS = @CPPFLAGS@
204
+ CXX = @CXX@
205
+ CXXCPP = @CXXCPP@
206
+ CXXDEPMODE = @CXXDEPMODE@
207
+ CXXFLAGS = @CXXFLAGS@
106
208
  CYGPATH_W = @CYGPATH_W@
107
209
  DEFS = @DEFS@
108
210
  DEPDIR = @DEPDIR@
@@ -118,6 +220,7 @@ FFI_EXEC_TRAMPOLINE_TABLE = @FFI_EXEC_TRAMPOLINE_TABLE@
118
220
  FGREP = @FGREP@
119
221
  GREP = @GREP@
120
222
  HAVE_LONG_DOUBLE = @HAVE_LONG_DOUBLE@
223
+ HAVE_LONG_DOUBLE_VARIANT = @HAVE_LONG_DOUBLE_VARIANT@
121
224
  INSTALL = @INSTALL@
122
225
  INSTALL_DATA = @INSTALL_DATA@
123
226
  INSTALL_PROGRAM = @INSTALL_PROGRAM@
@@ -131,6 +234,7 @@ LIBTOOL = @LIBTOOL@
131
234
  LIPO = @LIPO@
132
235
  LN_S = @LN_S@
133
236
  LTLIBOBJS = @LTLIBOBJS@
237
+ LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
134
238
  MAINT = @MAINT@
135
239
  MAKEINFO = @MAKEINFO@
136
240
  MANIFEST_TOOL = @MANIFEST_TOOL@
@@ -139,6 +243,7 @@ NM = @NM@
139
243
  NMEDIT = @NMEDIT@
140
244
  OBJDUMP = @OBJDUMP@
141
245
  OBJEXT = @OBJEXT@
246
+ OPT_LDFLAGS = @OPT_LDFLAGS@
142
247
  OTOOL = @OTOOL@
143
248
  OTOOL64 = @OTOOL64@
144
249
  PACKAGE = @PACKAGE@
@@ -151,12 +256,14 @@ PACKAGE_VERSION = @PACKAGE_VERSION@
151
256
  PATH_SEPARATOR = @PATH_SEPARATOR@
152
257
  PRTDIAG = @PRTDIAG@
153
258
  RANLIB = @RANLIB@
259
+ SECTION_LDFLAGS = @SECTION_LDFLAGS@
154
260
  SED = @SED@
155
261
  SET_MAKE = @SET_MAKE@
156
262
  SHELL = @SHELL@
157
263
  STRIP = @STRIP@
158
264
  TARGET = @TARGET@
159
265
  TARGETDIR = @TARGETDIR@
266
+ TARGET_OBJ = @TARGET_OBJ@
160
267
  VERSION = @VERSION@
161
268
  abs_builddir = @abs_builddir@
162
269
  abs_srcdir = @abs_srcdir@
@@ -164,6 +271,7 @@ abs_top_builddir = @abs_top_builddir@
164
271
  abs_top_srcdir = @abs_top_srcdir@
165
272
  ac_ct_AR = @ac_ct_AR@
166
273
  ac_ct_CC = @ac_ct_CC@
274
+ ac_ct_CXX = @ac_ct_CXX@
167
275
  ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
168
276
  am__include = @am__include@
169
277
  am__leading_dot = @am__leading_dot@
@@ -203,6 +311,7 @@ pdfdir = @pdfdir@
203
311
  prefix = @prefix@
204
312
  program_transform_name = @program_transform_name@
205
313
  psdir = @psdir@
314
+ runstatedir = @runstatedir@
206
315
  sbindir = @sbindir@
207
316
  sharedstatedir = @sharedstatedir@
208
317
  srcdir = @srcdir@
@@ -220,9 +329,9 @@ top_builddir = @top_builddir@
220
329
  top_srcdir = @top_srcdir@
221
330
  AUTOMAKE_OPTIONS = foreign
222
331
  DISTCLEANFILES = ffitarget.h
223
- EXTRA_DIST = ffi.h.in ffi_common.h
224
- includesdir = $(libdir)/@PACKAGE_NAME@-@PACKAGE_VERSION@/include
225
- nodist_includes_HEADERS = ffi.h ffitarget.h
332
+ noinst_HEADERS = ffi_common.h ffi_cfi.h
333
+ EXTRA_DIST = ffi.h.in
334
+ nodist_include_HEADERS = ffi.h ffitarget.h
226
335
  all: all-am
227
336
 
228
337
  .SUFFIXES:
@@ -238,7 +347,6 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__confi
238
347
  echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign include/Makefile'; \
239
348
  $(am__cd) $(top_srcdir) && \
240
349
  $(AUTOMAKE) --foreign include/Makefile
241
- .PRECIOUS: Makefile
242
350
  Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
243
351
  @case '$?' in \
244
352
  *config.status*) \
@@ -264,47 +372,37 @@ mostlyclean-libtool:
264
372
 
265
373
  clean-libtool:
266
374
  -rm -rf .libs _libs
267
- install-nodist_includesHEADERS: $(nodist_includes_HEADERS)
375
+ install-nodist_includeHEADERS: $(nodist_include_HEADERS)
268
376
  @$(NORMAL_INSTALL)
269
- test -z "$(includesdir)" || $(MKDIR_P) "$(DESTDIR)$(includesdir)"
270
- @list='$(nodist_includes_HEADERS)'; test -n "$(includesdir)" || list=; \
377
+ @list='$(nodist_include_HEADERS)'; test -n "$(includedir)" || list=; \
378
+ if test -n "$$list"; then \
379
+ echo " $(MKDIR_P) '$(DESTDIR)$(includedir)'"; \
380
+ $(MKDIR_P) "$(DESTDIR)$(includedir)" || exit 1; \
381
+ fi; \
271
382
  for p in $$list; do \
272
383
  if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
273
384
  echo "$$d$$p"; \
274
385
  done | $(am__base_list) | \
275
386
  while read files; do \
276
- echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(includesdir)'"; \
277
- $(INSTALL_HEADER) $$files "$(DESTDIR)$(includesdir)" || exit $$?; \
387
+ echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(includedir)'"; \
388
+ $(INSTALL_HEADER) $$files "$(DESTDIR)$(includedir)" || exit $$?; \
278
389
  done
279
390
 
280
- uninstall-nodist_includesHEADERS:
391
+ uninstall-nodist_includeHEADERS:
281
392
  @$(NORMAL_UNINSTALL)
282
- @list='$(nodist_includes_HEADERS)'; test -n "$(includesdir)" || list=; \
393
+ @list='$(nodist_include_HEADERS)'; test -n "$(includedir)" || list=; \
283
394
  files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
284
- test -n "$$files" || exit 0; \
285
- echo " ( cd '$(DESTDIR)$(includesdir)' && rm -f" $$files ")"; \
286
- cd "$(DESTDIR)$(includesdir)" && rm -f $$files
287
-
288
- ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
289
- list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
290
- unique=`for i in $$list; do \
291
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
292
- done | \
293
- $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
294
- END { if (nonempty) { for (i in files) print i; }; }'`; \
295
- mkid -fID $$unique
296
- tags: TAGS
297
-
298
- TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
299
- $(TAGS_FILES) $(LISP)
395
+ dir='$(DESTDIR)$(includedir)'; $(am__uninstall_files_from_dir)
396
+
397
+ ID: $(am__tagged_files)
398
+ $(am__define_uniq_tagged_files); mkid -fID $$unique
399
+ tags: tags-am
400
+ TAGS: tags
401
+
402
+ tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
300
403
  set x; \
301
404
  here=`pwd`; \
302
- list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
303
- unique=`for i in $$list; do \
304
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
305
- done | \
306
- $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
307
- END { if (nonempty) { for (i in files) print i; }; }'`; \
405
+ $(am__define_uniq_tagged_files); \
308
406
  shift; \
309
407
  if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
310
408
  test -n "$$unique" || unique=$$empty_fix; \
@@ -316,15 +414,11 @@ TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
316
414
  $$unique; \
317
415
  fi; \
318
416
  fi
319
- ctags: CTAGS
320
- CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
321
- $(TAGS_FILES) $(LISP)
322
- list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
323
- unique=`for i in $$list; do \
324
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
325
- done | \
326
- $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
327
- END { if (nonempty) { for (i in files) print i; }; }'`; \
417
+ ctags: ctags-am
418
+
419
+ CTAGS: ctags
420
+ ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
421
+ $(am__define_uniq_tagged_files); \
328
422
  test -z "$(CTAGS_ARGS)$$unique" \
329
423
  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
330
424
  $$unique
@@ -333,6 +427,21 @@ GTAGS:
333
427
  here=`$(am__cd) $(top_builddir) && pwd` \
334
428
  && $(am__cd) $(top_srcdir) \
335
429
  && gtags -i $(GTAGS_ARGS) "$$here"
430
+ cscopelist: cscopelist-am
431
+
432
+ cscopelist-am: $(am__tagged_files)
433
+ list='$(am__tagged_files)'; \
434
+ case "$(srcdir)" in \
435
+ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
436
+ *) sdir=$(subdir)/$(srcdir) ;; \
437
+ esac; \
438
+ for i in $$list; do \
439
+ if test -f "$$i"; then \
440
+ echo "$(subdir)/$$i"; \
441
+ else \
442
+ echo "$$sdir/$$i"; \
443
+ fi; \
444
+ done >> $(top_builddir)/cscope.files
336
445
 
337
446
  distclean-tags:
338
447
  -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -371,7 +480,7 @@ check-am: all-am
371
480
  check: check-am
372
481
  all-am: Makefile $(HEADERS)
373
482
  installdirs:
374
- for dir in "$(DESTDIR)$(includesdir)"; do \
483
+ for dir in "$(DESTDIR)$(includedir)"; do \
375
484
  test -z "$$dir" || $(MKDIR_P) "$$dir"; \
376
485
  done
377
486
  install: install-am
@@ -384,10 +493,15 @@ install-am: all-am
384
493
 
385
494
  installcheck: installcheck-am
386
495
  install-strip:
387
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
388
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
389
- `test -z '$(STRIP)' || \
390
- echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
496
+ if test -z '$(STRIP)'; then \
497
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
498
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
499
+ install; \
500
+ else \
501
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
502
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
503
+ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
504
+ fi
391
505
  mostlyclean-generic:
392
506
 
393
507
  clean-generic:
@@ -420,7 +534,7 @@ info: info-am
420
534
 
421
535
  info-am:
422
536
 
423
- install-data-am: install-nodist_includesHEADERS
537
+ install-data-am: install-nodist_includeHEADERS
424
538
 
425
539
  install-dvi: install-dvi-am
426
540
 
@@ -464,22 +578,25 @@ ps: ps-am
464
578
 
465
579
  ps-am:
466
580
 
467
- uninstall-am: uninstall-nodist_includesHEADERS
581
+ uninstall-am: uninstall-nodist_includeHEADERS
468
582
 
469
583
  .MAKE: install-am install-strip
470
584
 
471
- .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
472
- clean-libtool ctags distclean distclean-generic \
473
- distclean-libtool distclean-tags distdir dvi dvi-am html \
474
- html-am info info-am install install-am install-data \
475
- install-data-am install-dvi install-dvi-am install-exec \
476
- install-exec-am install-html install-html-am install-info \
477
- install-info-am install-man install-nodist_includesHEADERS \
478
- install-pdf install-pdf-am install-ps install-ps-am \
479
- install-strip installcheck installcheck-am installdirs \
480
- maintainer-clean maintainer-clean-generic mostlyclean \
481
- mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
482
- tags uninstall uninstall-am uninstall-nodist_includesHEADERS
585
+ .PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
586
+ clean-libtool cscopelist-am ctags ctags-am distclean \
587
+ distclean-generic distclean-libtool distclean-tags distdir dvi \
588
+ dvi-am html html-am info info-am install install-am \
589
+ install-data install-data-am install-dvi install-dvi-am \
590
+ install-exec install-exec-am install-html install-html-am \
591
+ install-info install-info-am install-man \
592
+ install-nodist_includeHEADERS install-pdf install-pdf-am \
593
+ install-ps install-ps-am install-strip installcheck \
594
+ installcheck-am installdirs maintainer-clean \
595
+ maintainer-clean-generic mostlyclean mostlyclean-generic \
596
+ mostlyclean-libtool pdf pdf-am ps ps-am tags tags-am uninstall \
597
+ uninstall-am uninstall-nodist_includeHEADERS
598
+
599
+ .PRECIOUS: Makefile
483
600
 
484
601
 
485
602
  # Tell versions [3.59,3.63) of GNU make to not export all variables.
@@ -1,5 +1,5 @@
1
1
  /* -----------------------------------------------------------------*-C-*-
2
- libffi @VERSION@ - Copyright (c) 2011 Anthony Green
2
+ libffi @VERSION@ - Copyright (c) 2011, 2014 Anthony Green
3
3
  - Copyright (c) 1996-2003, 2007, 2008 Red Hat, Inc.
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person
@@ -25,23 +25,14 @@
25
25
  ----------------------------------------------------------------------- */
26
26
 
27
27
  /* -------------------------------------------------------------------
28
- The basic API is described in the README file.
28
+ Most of the API is documented in doc/libffi.texi.
29
29
 
30
- The raw API is designed to bypass some of the argument packing
31
- and unpacking on architectures for which it can be avoided.
30
+ The raw API is designed to bypass some of the argument packing and
31
+ unpacking on architectures for which it can be avoided. Routines
32
+ are provided to emulate the raw API if the underlying platform
33
+ doesn't allow faster implementation.
32
34
 
33
- The closure API allows interpreted functions to be packaged up
34
- inside a C function pointer, so that they can be called as C functions,
35
- with no understanding on the client side that they are interpreted.
36
- It can also be used in other cases in which it is necessary to package
37
- up a user specified parameter and a function pointer as a single
38
- function pointer.
39
-
40
- The closure API must be implemented in order to get its functionality,
41
- e.g. for use by gij. Routines are provided to emulate the raw API
42
- if the underlying platform doesn't allow faster implementation.
43
-
44
- More details on the raw and cloure API can be found in:
35
+ More details on the raw API can be found in:
45
36
 
46
37
  http://gcc.gnu.org/ml/java/1999-q3/msg00138.html
47
38
 
@@ -68,7 +59,7 @@ extern "C" {
68
59
 
69
60
  #ifndef LIBFFI_ASM
70
61
 
71
- #ifdef _MSC_VER
62
+ #if defined(_MSC_VER) && !defined(__clang__)
72
63
  #define __attribute__(X)
73
64
  #endif
74
65
 
@@ -106,8 +97,8 @@ extern "C" {
106
97
  # endif
107
98
  #endif
108
99
 
109
- /* The closure code assumes that this works on pointers, i.e. a size_t */
110
- /* can hold a pointer. */
100
+ /* The closure code assumes that this works on pointers, i.e. a size_t
101
+ can hold a pointer. */
111
102
 
112
103
  typedef struct _ffi_type
113
104
  {
@@ -166,25 +157,48 @@ typedef struct _ffi_type
166
157
  #error "long size not supported"
167
158
  #endif
168
159
 
169
- /* These are defined in types.c */
170
- extern ffi_type ffi_type_void;
171
- extern ffi_type ffi_type_uint8;
172
- extern ffi_type ffi_type_sint8;
173
- extern ffi_type ffi_type_uint16;
174
- extern ffi_type ffi_type_sint16;
175
- extern ffi_type ffi_type_uint32;
176
- extern ffi_type ffi_type_sint32;
177
- extern ffi_type ffi_type_uint64;
178
- extern ffi_type ffi_type_sint64;
179
- extern ffi_type ffi_type_float;
180
- extern ffi_type ffi_type_double;
181
- extern ffi_type ffi_type_pointer;
160
+ /* Need minimal decorations for DLLs to works on Windows. GCC has
161
+ autoimport and autoexport. Rely on Libtool to help MSVC export
162
+ from a DLL, but always declare data to be imported for MSVC
163
+ clients. This costs an extra indirection for MSVC clients using
164
+ the static version of the library, but don't worry about that.
165
+ Besides, as a workaround, they can define FFI_BUILDING if they
166
+ *know* they are going to link with the static library. */
167
+ #if defined _MSC_VER && !defined FFI_BUILDING
168
+ #define FFI_EXTERN extern __declspec(dllimport)
169
+ #else
170
+ #define FFI_EXTERN extern
171
+ #endif
172
+
173
+ /* These are defined in types.c. */
174
+ FFI_EXTERN ffi_type ffi_type_void;
175
+ FFI_EXTERN ffi_type ffi_type_uint8;
176
+ FFI_EXTERN ffi_type ffi_type_sint8;
177
+ FFI_EXTERN ffi_type ffi_type_uint16;
178
+ FFI_EXTERN ffi_type ffi_type_sint16;
179
+ FFI_EXTERN ffi_type ffi_type_uint32;
180
+ FFI_EXTERN ffi_type ffi_type_sint32;
181
+ FFI_EXTERN ffi_type ffi_type_uint64;
182
+ FFI_EXTERN ffi_type ffi_type_sint64;
183
+ FFI_EXTERN ffi_type ffi_type_float;
184
+ FFI_EXTERN ffi_type ffi_type_double;
185
+ FFI_EXTERN ffi_type ffi_type_pointer;
182
186
 
183
187
  #if @HAVE_LONG_DOUBLE@
184
- extern ffi_type ffi_type_longdouble;
188
+ FFI_EXTERN ffi_type ffi_type_longdouble;
185
189
  #else
186
190
  #define ffi_type_longdouble ffi_type_double
187
191
  #endif
192
+
193
+ #ifdef FFI_TARGET_HAS_COMPLEX_TYPE
194
+ FFI_EXTERN ffi_type ffi_type_complex_float;
195
+ FFI_EXTERN ffi_type ffi_type_complex_double;
196
+ #if @HAVE_LONG_DOUBLE@
197
+ FFI_EXTERN ffi_type ffi_type_complex_longdouble;
198
+ #else
199
+ #define ffi_type_complex_longdouble ffi_type_complex_double
200
+ #endif
201
+ #endif
188
202
  #endif /* LIBFFI_HIDE_BASIC_TYPES */
189
203
 
190
204
  typedef enum {
@@ -193,8 +207,6 @@ typedef enum {
193
207
  FFI_BAD_ABI
194
208
  } ffi_status;
195
209
 
196
- typedef unsigned FFI_TYPE;
197
-
198
210
  typedef struct {
199
211
  ffi_abi abi;
200
212
  unsigned nargs;
@@ -253,9 +265,9 @@ void ffi_ptrarray_to_raw (ffi_cif *cif, void **args, ffi_raw *raw);
253
265
  void ffi_raw_to_ptrarray (ffi_cif *cif, ffi_raw *raw, void **args);
254
266
  size_t ffi_raw_size (ffi_cif *cif);
255
267
 
256
- /* This is analogous to the raw API, except it uses Java parameter */
257
- /* packing, even on 64-bit machines. I.e. on 64-bit machines */
258
- /* longs and doubles are followed by an empty 64-bit word. */
268
+ /* This is analogous to the raw API, except it uses Java parameter
269
+ packing, even on 64-bit machines. I.e. on 64-bit machines longs
270
+ and doubles are followed by an empty 64-bit word. */
259
271
 
260
272
  void ffi_java_raw_call (ffi_cif *cif,
261
273
  void (*fn)(void),
@@ -274,14 +286,22 @@ size_t ffi_java_raw_size (ffi_cif *cif);
274
286
  __declspec(align(8))
275
287
  #endif
276
288
  typedef struct {
289
+ #if @FFI_EXEC_TRAMPOLINE_TABLE@
290
+ void *trampoline_table;
291
+ void *trampoline_table_entry;
292
+ #else
277
293
  char tramp[FFI_TRAMPOLINE_SIZE];
294
+ #endif
278
295
  ffi_cif *cif;
279
296
  void (*fun)(ffi_cif*,void*,void**,void*);
280
297
  void *user_data;
298
+ } ffi_closure
281
299
  #ifdef __GNUC__
282
- } ffi_closure __attribute__((aligned (8)));
283
- #else
284
- } ffi_closure;
300
+ __attribute__((aligned (8)))
301
+ #endif
302
+ ;
303
+
304
+ #ifndef __GNUC__
285
305
  # ifdef __sgi
286
306
  # pragma pack 0
287
307
  # endif
@@ -294,7 +314,8 @@ ffi_status
294
314
  ffi_prep_closure (ffi_closure*,
295
315
  ffi_cif *,
296
316
  void (*fun)(ffi_cif*,void*,void**,void*),
297
- void *user_data);
317
+ void *user_data)
318
+ __attribute__((deprecated ("use ffi_prep_closure_loc instead")));
298
319
 
299
320
  ffi_status
300
321
  ffi_prep_closure_loc (ffi_closure*,
@@ -307,15 +328,19 @@ ffi_prep_closure_loc (ffi_closure*,
307
328
  # pragma pack 8
308
329
  #endif
309
330
  typedef struct {
331
+ #if @FFI_EXEC_TRAMPOLINE_TABLE@
332
+ void *trampoline_table;
333
+ void *trampoline_table_entry;
334
+ #else
310
335
  char tramp[FFI_TRAMPOLINE_SIZE];
311
-
336
+ #endif
312
337
  ffi_cif *cif;
313
338
 
314
339
  #if !FFI_NATIVE_RAW_API
315
340
 
316
- /* if this is enabled, then a raw closure has the same layout
341
+ /* If this is enabled, then a raw closure has the same layout
317
342
  as a regular closure. We use this to install an intermediate
318
- handler to do the transaltion, void** -> ffi_raw*. */
343
+ handler to do the transaltion, void** -> ffi_raw*. */
319
344
 
320
345
  void (*translate_args)(ffi_cif*,void*,void**,void*);
321
346
  void *this_closure;
@@ -328,15 +353,20 @@ typedef struct {
328
353
  } ffi_raw_closure;
329
354
 
330
355
  typedef struct {
356
+ #if @FFI_EXEC_TRAMPOLINE_TABLE@
357
+ void *trampoline_table;
358
+ void *trampoline_table_entry;
359
+ #else
331
360
  char tramp[FFI_TRAMPOLINE_SIZE];
361
+ #endif
332
362
 
333
363
  ffi_cif *cif;
334
364
 
335
365
  #if !FFI_NATIVE_RAW_API
336
366
 
337
- /* if this is enabled, then a raw closure has the same layout
367
+ /* If this is enabled, then a raw closure has the same layout
338
368
  as a regular closure. We use this to install an intermediate
339
- handler to do the transaltion, void** -> ffi_raw*. */
369
+ handler to do the translation, void** -> ffi_raw*. */
340
370
 
341
371
  void (*translate_args)(ffi_cif*,void*,void**,void*);
342
372
  void *this_closure;
@@ -376,6 +406,22 @@ ffi_prep_java_raw_closure_loc (ffi_java_raw_closure*,
376
406
 
377
407
  #endif /* FFI_CLOSURES */
378
408
 
409
+ #if FFI_GO_CLOSURES
410
+
411
+ typedef struct {
412
+ void *tramp;
413
+ ffi_cif *cif;
414
+ void (*fun)(ffi_cif*,void*,void**,void*);
415
+ } ffi_go_closure;
416
+
417
+ ffi_status ffi_prep_go_closure (ffi_go_closure*, ffi_cif *,
418
+ void (*fun)(ffi_cif*,void*,void**,void*));
419
+
420
+ void ffi_call_go (ffi_cif *cif, void (*fn)(void), void *rvalue,
421
+ void **avalue, void *closure);
422
+
423
+ #endif /* FFI_GO_CLOSURES */
424
+
379
425
  /* ---- Public interface definition -------------------------------------- */
380
426
 
381
427
  ffi_status ffi_prep_cif(ffi_cif *cif,
@@ -384,12 +430,22 @@ ffi_status ffi_prep_cif(ffi_cif *cif,
384
430
  ffi_type *rtype,
385
431
  ffi_type **atypes);
386
432
 
433
+ ffi_status ffi_prep_cif_var(ffi_cif *cif,
434
+ ffi_abi abi,
435
+ unsigned int nfixedargs,
436
+ unsigned int ntotalargs,
437
+ ffi_type *rtype,
438
+ ffi_type **atypes);
439
+
387
440
  void ffi_call(ffi_cif *cif,
388
441
  void (*fn)(void),
389
442
  void *rvalue,
390
443
  void **avalue);
391
444
 
392
- /* Useful for eliminating compiler warnings */
445
+ ffi_status ffi_get_struct_offsets (ffi_abi abi, ffi_type *struct_type,
446
+ size_t *offsets);
447
+
448
+ /* Useful for eliminating compiler warnings. */
393
449
  #define FFI_FN(f) ((void (*)(void))f)
394
450
 
395
451
  /* ---- Definitions shared with assembly code ---------------------------- */
@@ -416,9 +472,10 @@ void ffi_call(ffi_cif *cif,
416
472
  #define FFI_TYPE_SINT64 12
417
473
  #define FFI_TYPE_STRUCT 13
418
474
  #define FFI_TYPE_POINTER 14
475
+ #define FFI_TYPE_COMPLEX 15
419
476
 
420
- /* This should always refer to the last type code (for sanity checks) */
421
- #define FFI_TYPE_LAST FFI_TYPE_POINTER
477
+ /* This should always refer to the last type code (for sanity checks). */
478
+ #define FFI_TYPE_LAST FFI_TYPE_COMPLEX
422
479
 
423
480
  #ifdef __cplusplus
424
481
  }