tcc 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (283) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE +35 -0
  3. data/README.md +196 -0
  4. data/ext/tcc/extconf.rb +25 -0
  5. data/ext/tcc/tcc-0.9.26.patch +30 -0
  6. data/ext/tcc/tcc-0.9.26/COPYING +504 -0
  7. data/ext/tcc/tcc-0.9.26/Changelog +396 -0
  8. data/ext/tcc/tcc-0.9.26/Makefile +349 -0
  9. data/ext/tcc/tcc-0.9.26/README +101 -0
  10. data/ext/tcc/tcc-0.9.26/TODO +93 -0
  11. data/ext/tcc/tcc-0.9.26/VERSION +1 -0
  12. data/ext/tcc/tcc-0.9.26/arm-gen.c +2005 -0
  13. data/ext/tcc/tcc-0.9.26/c67-gen.c +2560 -0
  14. data/ext/tcc/tcc-0.9.26/coff.h +446 -0
  15. data/ext/tcc/tcc-0.9.26/config.h +8 -0
  16. data/ext/tcc/tcc-0.9.26/config.mak +28 -0
  17. data/ext/tcc/tcc-0.9.26/config.texi +1 -0
  18. data/ext/tcc/tcc-0.9.26/configure +540 -0
  19. data/ext/tcc/tcc-0.9.26/conftest.c +71 -0
  20. data/ext/tcc/tcc-0.9.26/elf.h +1731 -0
  21. data/ext/tcc/tcc-0.9.26/examples/ex1.c +8 -0
  22. data/ext/tcc/tcc-0.9.26/examples/ex2.c +98 -0
  23. data/ext/tcc/tcc-0.9.26/examples/ex3.c +24 -0
  24. data/ext/tcc/tcc-0.9.26/examples/ex4.c +26 -0
  25. data/ext/tcc/tcc-0.9.26/examples/ex5.c +8 -0
  26. data/ext/tcc/tcc-0.9.26/i386-asm.c +1498 -0
  27. data/ext/tcc/tcc-0.9.26/i386-asm.h +473 -0
  28. data/ext/tcc/tcc-0.9.26/i386-gen.c +1096 -0
  29. data/ext/tcc/tcc-0.9.26/i386-tok.h +243 -0
  30. data/ext/tcc/tcc-0.9.26/il-gen.c +667 -0
  31. data/ext/tcc/tcc-0.9.26/il-opcodes.h +251 -0
  32. data/ext/tcc/tcc-0.9.26/include/float.h +57 -0
  33. data/ext/tcc/tcc-0.9.26/include/stdarg.h +41 -0
  34. data/ext/tcc/tcc-0.9.26/include/stdbool.h +10 -0
  35. data/ext/tcc/tcc-0.9.26/include/stddef.h +28 -0
  36. data/ext/tcc/tcc-0.9.26/include/tcclib.h +78 -0
  37. data/ext/tcc/tcc-0.9.26/include/varargs.h +12 -0
  38. data/ext/tcc/tcc-0.9.26/lib/Makefile +102 -0
  39. data/ext/tcc/tcc-0.9.26/lib/alloca86-bt.S +47 -0
  40. data/ext/tcc/tcc-0.9.26/lib/alloca86.S +35 -0
  41. data/ext/tcc/tcc-0.9.26/lib/alloca86_64.S +42 -0
  42. data/ext/tcc/tcc-0.9.26/lib/bcheck.c +875 -0
  43. data/ext/tcc/tcc-0.9.26/lib/libtcc1.c +691 -0
  44. data/ext/tcc/tcc-0.9.26/libtcc.c +1941 -0
  45. data/ext/tcc/tcc-0.9.26/libtcc.h +103 -0
  46. data/ext/tcc/tcc-0.9.26/stab.def +234 -0
  47. data/ext/tcc/tcc-0.9.26/stab.h +17 -0
  48. data/ext/tcc/tcc-0.9.26/tcc-doc.html +2332 -0
  49. data/ext/tcc/tcc-0.9.26/tcc-doc.info +1151 -0
  50. data/ext/tcc/tcc-0.9.26/tcc-doc.texi +1268 -0
  51. data/ext/tcc/tcc-0.9.26/tcc.1 +415 -0
  52. data/ext/tcc/tcc-0.9.26/tcc.c +352 -0
  53. data/ext/tcc/tcc-0.9.26/tcc.h +1379 -0
  54. data/ext/tcc/tcc-0.9.26/tccasm.c +1118 -0
  55. data/ext/tcc/tcc-0.9.26/tcccoff.c +948 -0
  56. data/ext/tcc/tcc-0.9.26/tccelf.c +3129 -0
  57. data/ext/tcc/tcc-0.9.26/tccgen.c +5841 -0
  58. data/ext/tcc/tcc-0.9.26/tccpe.c +1887 -0
  59. data/ext/tcc/tcc-0.9.26/tccpp.c +3128 -0
  60. data/ext/tcc/tcc-0.9.26/tccrun.c +737 -0
  61. data/ext/tcc/tcc-0.9.26/tcctok.h +278 -0
  62. data/ext/tcc/tcc-0.9.26/tests/Makefile +199 -0
  63. data/ext/tcc/tcc-0.9.26/tests/asmtest.S +609 -0
  64. data/ext/tcc/tcc-0.9.26/tests/boundtest.c +233 -0
  65. data/ext/tcc/tcc-0.9.26/tests/gcctestsuite.sh +33 -0
  66. data/ext/tcc/tcc-0.9.26/tests/libtcc_test.c +76 -0
  67. data/ext/tcc/tcc-0.9.26/tests/tcctest.c +2713 -0
  68. data/ext/tcc/tcc-0.9.26/tests/tests2/00_assignment.c +18 -0
  69. data/ext/tcc/tcc-0.9.26/tests/tests2/00_assignment.expect +3 -0
  70. data/ext/tcc/tcc-0.9.26/tests/tests2/01_comment.c +14 -0
  71. data/ext/tcc/tcc-0.9.26/tests/tests2/01_comment.expect +5 -0
  72. data/ext/tcc/tcc-0.9.26/tests/tests2/02_printf.c +18 -0
  73. data/ext/tcc/tcc-0.9.26/tests/tests2/02_printf.expect +15 -0
  74. data/ext/tcc/tcc-0.9.26/tests/tests2/03_struct.c +31 -0
  75. data/ext/tcc/tcc-0.9.26/tests/tests2/03_struct.expect +6 -0
  76. data/ext/tcc/tcc-0.9.26/tests/tests2/04_for.c +15 -0
  77. data/ext/tcc/tcc-0.9.26/tests/tests2/04_for.expect +10 -0
  78. data/ext/tcc/tcc-0.9.26/tests/tests2/05_array.c +21 -0
  79. data/ext/tcc/tcc-0.9.26/tests/tests2/05_array.expect +10 -0
  80. data/ext/tcc/tcc-0.9.26/tests/tests2/06_case.c +29 -0
  81. data/ext/tcc/tcc-0.9.26/tests/tests2/06_case.expect +8 -0
  82. data/ext/tcc/tcc-0.9.26/tests/tests2/07_function.c +30 -0
  83. data/ext/tcc/tcc-0.9.26/tests/tests2/07_function.expect +4 -0
  84. data/ext/tcc/tcc-0.9.26/tests/tests2/08_while.c +24 -0
  85. data/ext/tcc/tcc-0.9.26/tests/tests2/08_while.expect +11 -0
  86. data/ext/tcc/tcc-0.9.26/tests/tests2/09_do_while.c +24 -0
  87. data/ext/tcc/tcc-0.9.26/tests/tests2/09_do_while.expect +11 -0
  88. data/ext/tcc/tcc-0.9.26/tests/tests2/10_pointer.c +40 -0
  89. data/ext/tcc/tcc-0.9.26/tests/tests2/10_pointer.expect +8 -0
  90. data/ext/tcc/tcc-0.9.26/tests/tests2/11_precedence.c +40 -0
  91. data/ext/tcc/tcc-0.9.26/tests/tests2/11_precedence.expect +15 -0
  92. data/ext/tcc/tcc-0.9.26/tests/tests2/12_hashdefine.c +14 -0
  93. data/ext/tcc/tcc-0.9.26/tests/tests2/12_hashdefine.expect +2 -0
  94. data/ext/tcc/tcc-0.9.26/tests/tests2/13_integer_literals.c +20 -0
  95. data/ext/tcc/tcc-0.9.26/tests/tests2/13_integer_literals.expect +5 -0
  96. data/ext/tcc/tcc-0.9.26/tests/tests2/14_if.c +21 -0
  97. data/ext/tcc/tcc-0.9.26/tests/tests2/14_if.expect +2 -0
  98. data/ext/tcc/tcc-0.9.26/tests/tests2/15_recursion.c +21 -0
  99. data/ext/tcc/tcc-0.9.26/tests/tests2/15_recursion.expect +10 -0
  100. data/ext/tcc/tcc-0.9.26/tests/tests2/16_nesting.c +21 -0
  101. data/ext/tcc/tcc-0.9.26/tests/tests2/16_nesting.expect +18 -0
  102. data/ext/tcc/tcc-0.9.26/tests/tests2/17_enum.c +29 -0
  103. data/ext/tcc/tcc-0.9.26/tests/tests2/17_enum.expect +3 -0
  104. data/ext/tcc/tcc-0.9.26/tests/tests2/18_include.c +12 -0
  105. data/ext/tcc/tcc-0.9.26/tests/tests2/18_include.expect +3 -0
  106. data/ext/tcc/tcc-0.9.26/tests/tests2/18_include.h +1 -0
  107. data/ext/tcc/tcc-0.9.26/tests/tests2/19_pointer_arithmetic.c +28 -0
  108. data/ext/tcc/tcc-0.9.26/tests/tests2/19_pointer_arithmetic.expect +3 -0
  109. data/ext/tcc/tcc-0.9.26/tests/tests2/20_pointer_comparison.c +24 -0
  110. data/ext/tcc/tcc-0.9.26/tests/tests2/20_pointer_comparison.expect +6 -0
  111. data/ext/tcc/tcc-0.9.26/tests/tests2/21_char_array.c +33 -0
  112. data/ext/tcc/tcc-0.9.26/tests/tests2/21_char_array.expect +7 -0
  113. data/ext/tcc/tcc-0.9.26/tests/tests2/22_floating_point.c +50 -0
  114. data/ext/tcc/tcc-0.9.26/tests/tests2/22_floating_point.expect +16 -0
  115. data/ext/tcc/tcc-0.9.26/tests/tests2/23_type_coercion.c +54 -0
  116. data/ext/tcc/tcc-0.9.26/tests/tests2/23_type_coercion.expect +12 -0
  117. data/ext/tcc/tcc-0.9.26/tests/tests2/24_math_library.c +28 -0
  118. data/ext/tcc/tcc-0.9.26/tests/tests2/24_math_library.expect +18 -0
  119. data/ext/tcc/tcc-0.9.26/tests/tests2/25_quicksort.c +83 -0
  120. data/ext/tcc/tcc-0.9.26/tests/tests2/25_quicksort.expect +2 -0
  121. data/ext/tcc/tcc-0.9.26/tests/tests2/26_character_constants.c +17 -0
  122. data/ext/tcc/tcc-0.9.26/tests/tests2/26_character_constants.expect +8 -0
  123. data/ext/tcc/tcc-0.9.26/tests/tests2/27_sizeof.c +16 -0
  124. data/ext/tcc/tcc-0.9.26/tests/tests2/27_sizeof.expect +3 -0
  125. data/ext/tcc/tcc-0.9.26/tests/tests2/28_strings.c +46 -0
  126. data/ext/tcc/tcc-0.9.26/tests/tests2/28_strings.expect +19 -0
  127. data/ext/tcc/tcc-0.9.26/tests/tests2/29_array_address.c +13 -0
  128. data/ext/tcc/tcc-0.9.26/tests/tests2/29_array_address.expect +1 -0
  129. data/ext/tcc/tcc-0.9.26/tests/tests2/30_hanoi.c +122 -0
  130. data/ext/tcc/tcc-0.9.26/tests/tests2/30_hanoi.expect +71 -0
  131. data/ext/tcc/tcc-0.9.26/tests/tests2/31_args.c +14 -0
  132. data/ext/tcc/tcc-0.9.26/tests/tests2/31_args.expect +7 -0
  133. data/ext/tcc/tcc-0.9.26/tests/tests2/32_led.c +266 -0
  134. data/ext/tcc/tcc-0.9.26/tests/tests2/32_led.expect +4 -0
  135. data/ext/tcc/tcc-0.9.26/tests/tests2/33_ternary_op.c +15 -0
  136. data/ext/tcc/tcc-0.9.26/tests/tests2/33_ternary_op.expect +10 -0
  137. data/ext/tcc/tcc-0.9.26/tests/tests2/34_array_assignment.c +23 -0
  138. data/ext/tcc/tcc-0.9.26/tests/tests2/34_array_assignment.expect +2 -0
  139. data/ext/tcc/tcc-0.9.26/tests/tests2/35_sizeof.c +14 -0
  140. data/ext/tcc/tcc-0.9.26/tests/tests2/35_sizeof.expect +2 -0
  141. data/ext/tcc/tcc-0.9.26/tests/tests2/36_array_initialisers.c +21 -0
  142. data/ext/tcc/tcc-0.9.26/tests/tests2/36_array_initialisers.expect +20 -0
  143. data/ext/tcc/tcc-0.9.26/tests/tests2/37_sprintf.c +17 -0
  144. data/ext/tcc/tcc-0.9.26/tests/tests2/37_sprintf.expect +20 -0
  145. data/ext/tcc/tcc-0.9.26/tests/tests2/38_multiple_array_index.c +32 -0
  146. data/ext/tcc/tcc-0.9.26/tests/tests2/38_multiple_array_index.expect +4 -0
  147. data/ext/tcc/tcc-0.9.26/tests/tests2/39_typedef.c +31 -0
  148. data/ext/tcc/tcc-0.9.26/tests/tests2/39_typedef.expect +3 -0
  149. data/ext/tcc/tcc-0.9.26/tests/tests2/40_stdio.c +52 -0
  150. data/ext/tcc/tcc-0.9.26/tests/tests2/40_stdio.expect +27 -0
  151. data/ext/tcc/tcc-0.9.26/tests/tests2/41_hashif.c +85 -0
  152. data/ext/tcc/tcc-0.9.26/tests/tests2/41_hashif.expect +6 -0
  153. data/ext/tcc/tcc-0.9.26/tests/tests2/42_function_pointer.c +18 -0
  154. data/ext/tcc/tcc-0.9.26/tests/tests2/42_function_pointer.expect +2 -0
  155. data/ext/tcc/tcc-0.9.26/tests/tests2/43_void_param.c +15 -0
  156. data/ext/tcc/tcc-0.9.26/tests/tests2/43_void_param.expect +1 -0
  157. data/ext/tcc/tcc-0.9.26/tests/tests2/44_scoped_declarations.c +17 -0
  158. data/ext/tcc/tcc-0.9.26/tests/tests2/44_scoped_declarations.expect +1 -0
  159. data/ext/tcc/tcc-0.9.26/tests/tests2/45_empty_for.c +18 -0
  160. data/ext/tcc/tcc-0.9.26/tests/tests2/45_empty_for.expect +10 -0
  161. data/ext/tcc/tcc-0.9.26/tests/tests2/46_grep.c +564 -0
  162. data/ext/tcc/tcc-0.9.26/tests/tests2/47_switch_return.c +24 -0
  163. data/ext/tcc/tcc-0.9.26/tests/tests2/47_switch_return.expect +4 -0
  164. data/ext/tcc/tcc-0.9.26/tests/tests2/48_nested_break.c +26 -0
  165. data/ext/tcc/tcc-0.9.26/tests/tests2/48_nested_break.expect +1 -0
  166. data/ext/tcc/tcc-0.9.26/tests/tests2/49_bracket_evaluation.c +23 -0
  167. data/ext/tcc/tcc-0.9.26/tests/tests2/49_bracket_evaluation.expect +1 -0
  168. data/ext/tcc/tcc-0.9.26/tests/tests2/50_logical_second_arg.c +29 -0
  169. data/ext/tcc/tcc-0.9.26/tests/tests2/50_logical_second_arg.expect +20 -0
  170. data/ext/tcc/tcc-0.9.26/tests/tests2/51_static.c +30 -0
  171. data/ext/tcc/tcc-0.9.26/tests/tests2/51_static.expect +8 -0
  172. data/ext/tcc/tcc-0.9.26/tests/tests2/52_unnamed_enum.c +27 -0
  173. data/ext/tcc/tcc-0.9.26/tests/tests2/52_unnamed_enum.expect +9 -0
  174. data/ext/tcc/tcc-0.9.26/tests/tests2/54_goto.c +56 -0
  175. data/ext/tcc/tcc-0.9.26/tests/tests2/54_goto.expect +8 -0
  176. data/ext/tcc/tcc-0.9.26/tests/tests2/55_lshift_type.c +52 -0
  177. data/ext/tcc/tcc-0.9.26/tests/tests2/55_lshift_type.expect +1 -0
  178. data/ext/tcc/tcc-0.9.26/tests/tests2/LICENSE +37 -0
  179. data/ext/tcc/tcc-0.9.26/tests/tests2/Makefile +98 -0
  180. data/ext/tcc/tcc-0.9.26/texi2pod.pl +427 -0
  181. data/ext/tcc/tcc-0.9.26/win32/build-tcc.bat +60 -0
  182. data/ext/tcc/tcc-0.9.26/win32/examples/dll.c +12 -0
  183. data/ext/tcc/tcc-0.9.26/win32/examples/fib.c +23 -0
  184. data/ext/tcc/tcc-0.9.26/win32/examples/hello_dll.c +19 -0
  185. data/ext/tcc/tcc-0.9.26/win32/examples/hello_win.c +163 -0
  186. data/ext/tcc/tcc-0.9.26/win32/include/_mingw.h +139 -0
  187. data/ext/tcc/tcc-0.9.26/win32/include/assert.h +54 -0
  188. data/ext/tcc/tcc-0.9.26/win32/include/conio.h +409 -0
  189. data/ext/tcc/tcc-0.9.26/win32/include/ctype.h +281 -0
  190. data/ext/tcc/tcc-0.9.26/win32/include/dir.h +31 -0
  191. data/ext/tcc/tcc-0.9.26/win32/include/direct.h +68 -0
  192. data/ext/tcc/tcc-0.9.26/win32/include/dirent.h +135 -0
  193. data/ext/tcc/tcc-0.9.26/win32/include/dos.h +55 -0
  194. data/ext/tcc/tcc-0.9.26/win32/include/errno.h +75 -0
  195. data/ext/tcc/tcc-0.9.26/win32/include/excpt.h +123 -0
  196. data/ext/tcc/tcc-0.9.26/win32/include/fcntl.h +52 -0
  197. data/ext/tcc/tcc-0.9.26/win32/include/fenv.h +108 -0
  198. data/ext/tcc/tcc-0.9.26/win32/include/inttypes.h +297 -0
  199. data/ext/tcc/tcc-0.9.26/win32/include/io.h +418 -0
  200. data/ext/tcc/tcc-0.9.26/win32/include/limits.h +111 -0
  201. data/ext/tcc/tcc-0.9.26/win32/include/locale.h +91 -0
  202. data/ext/tcc/tcc-0.9.26/win32/include/malloc.h +175 -0
  203. data/ext/tcc/tcc-0.9.26/win32/include/math.h +777 -0
  204. data/ext/tcc/tcc-0.9.26/win32/include/mem.h +13 -0
  205. data/ext/tcc/tcc-0.9.26/win32/include/memory.h +40 -0
  206. data/ext/tcc/tcc-0.9.26/win32/include/process.h +176 -0
  207. data/ext/tcc/tcc-0.9.26/win32/include/sec_api/conio_s.h +42 -0
  208. data/ext/tcc/tcc-0.9.26/win32/include/sec_api/crtdbg_s.h +19 -0
  209. data/ext/tcc/tcc-0.9.26/win32/include/sec_api/io_s.h +33 -0
  210. data/ext/tcc/tcc-0.9.26/win32/include/sec_api/mbstring_s.h +52 -0
  211. data/ext/tcc/tcc-0.9.26/win32/include/sec_api/search_s.h +25 -0
  212. data/ext/tcc/tcc-0.9.26/win32/include/sec_api/stdio_s.h +145 -0
  213. data/ext/tcc/tcc-0.9.26/win32/include/sec_api/stdlib_s.h +67 -0
  214. data/ext/tcc/tcc-0.9.26/win32/include/sec_api/stralign_s.h +30 -0
  215. data/ext/tcc/tcc-0.9.26/win32/include/sec_api/string_s.h +41 -0
  216. data/ext/tcc/tcc-0.9.26/win32/include/sec_api/sys/timeb_s.h +34 -0
  217. data/ext/tcc/tcc-0.9.26/win32/include/sec_api/tchar_s.h +266 -0
  218. data/ext/tcc/tcc-0.9.26/win32/include/sec_api/time_s.h +61 -0
  219. data/ext/tcc/tcc-0.9.26/win32/include/sec_api/wchar_s.h +128 -0
  220. data/ext/tcc/tcc-0.9.26/win32/include/setjmp.h +160 -0
  221. data/ext/tcc/tcc-0.9.26/win32/include/share.h +28 -0
  222. data/ext/tcc/tcc-0.9.26/win32/include/signal.h +63 -0
  223. data/ext/tcc/tcc-0.9.26/win32/include/stdint.h +209 -0
  224. data/ext/tcc/tcc-0.9.26/win32/include/stdio.h +429 -0
  225. data/ext/tcc/tcc-0.9.26/win32/include/stdlib.h +580 -0
  226. data/ext/tcc/tcc-0.9.26/win32/include/string.h +164 -0
  227. data/ext/tcc/tcc-0.9.26/win32/include/sys/fcntl.h +13 -0
  228. data/ext/tcc/tcc-0.9.26/win32/include/sys/file.h +14 -0
  229. data/ext/tcc/tcc-0.9.26/win32/include/sys/locking.h +30 -0
  230. data/ext/tcc/tcc-0.9.26/win32/include/sys/stat.h +290 -0
  231. data/ext/tcc/tcc-0.9.26/win32/include/sys/time.h +69 -0
  232. data/ext/tcc/tcc-0.9.26/win32/include/sys/timeb.h +133 -0
  233. data/ext/tcc/tcc-0.9.26/win32/include/sys/types.h +118 -0
  234. data/ext/tcc/tcc-0.9.26/win32/include/sys/unistd.h +14 -0
  235. data/ext/tcc/tcc-0.9.26/win32/include/sys/utime.h +146 -0
  236. data/ext/tcc/tcc-0.9.26/win32/include/tchar.h +1102 -0
  237. data/ext/tcc/tcc-0.9.26/win32/include/time.h +287 -0
  238. data/ext/tcc/tcc-0.9.26/win32/include/vadefs.h +11 -0
  239. data/ext/tcc/tcc-0.9.26/win32/include/values.h +4 -0
  240. data/ext/tcc/tcc-0.9.26/win32/include/wchar.h +871 -0
  241. data/ext/tcc/tcc-0.9.26/win32/include/wctype.h +172 -0
  242. data/ext/tcc/tcc-0.9.26/win32/include/winapi/basetsd.h +149 -0
  243. data/ext/tcc/tcc-0.9.26/win32/include/winapi/basetyps.h +85 -0
  244. data/ext/tcc/tcc-0.9.26/win32/include/winapi/guiddef.h +151 -0
  245. data/ext/tcc/tcc-0.9.26/win32/include/winapi/intrin.h +11 -0
  246. data/ext/tcc/tcc-0.9.26/win32/include/winapi/poppack.h +8 -0
  247. data/ext/tcc/tcc-0.9.26/win32/include/winapi/pshpack1.h +8 -0
  248. data/ext/tcc/tcc-0.9.26/win32/include/winapi/pshpack2.h +8 -0
  249. data/ext/tcc/tcc-0.9.26/win32/include/winapi/pshpack4.h +8 -0
  250. data/ext/tcc/tcc-0.9.26/win32/include/winapi/pshpack8.h +8 -0
  251. data/ext/tcc/tcc-0.9.26/win32/include/winapi/reason.h +80 -0
  252. data/ext/tcc/tcc-0.9.26/win32/include/winapi/specstrings.h +7 -0
  253. data/ext/tcc/tcc-0.9.26/win32/include/winapi/stralign.h +154 -0
  254. data/ext/tcc/tcc-0.9.26/win32/include/winapi/tvout.h +79 -0
  255. data/ext/tcc/tcc-0.9.26/win32/include/winapi/winbase.h +2951 -0
  256. data/ext/tcc/tcc-0.9.26/win32/include/winapi/wincon.h +301 -0
  257. data/ext/tcc/tcc-0.9.26/win32/include/winapi/windef.h +293 -0
  258. data/ext/tcc/tcc-0.9.26/win32/include/winapi/windows.h +123 -0
  259. data/ext/tcc/tcc-0.9.26/win32/include/winapi/winerror.h +3166 -0
  260. data/ext/tcc/tcc-0.9.26/win32/include/winapi/wingdi.h +4080 -0
  261. data/ext/tcc/tcc-0.9.26/win32/include/winapi/winnetwk.h +476 -0
  262. data/ext/tcc/tcc-0.9.26/win32/include/winapi/winnls.h +765 -0
  263. data/ext/tcc/tcc-0.9.26/win32/include/winapi/winnt.h +5770 -0
  264. data/ext/tcc/tcc-0.9.26/win32/include/winapi/winreg.h +272 -0
  265. data/ext/tcc/tcc-0.9.26/win32/include/winapi/winuser.h +5651 -0
  266. data/ext/tcc/tcc-0.9.26/win32/include/winapi/winver.h +160 -0
  267. data/ext/tcc/tcc-0.9.26/win32/lib/chkstk.S +191 -0
  268. data/ext/tcc/tcc-0.9.26/win32/lib/crt1.c +34 -0
  269. data/ext/tcc/tcc-0.9.26/win32/lib/dllcrt1.c +13 -0
  270. data/ext/tcc/tcc-0.9.26/win32/lib/dllmain.c +9 -0
  271. data/ext/tcc/tcc-0.9.26/win32/lib/gdi32.def +337 -0
  272. data/ext/tcc/tcc-0.9.26/win32/lib/kernel32.def +765 -0
  273. data/ext/tcc/tcc-0.9.26/win32/lib/msvcrt.def +1399 -0
  274. data/ext/tcc/tcc-0.9.26/win32/lib/user32.def +654 -0
  275. data/ext/tcc/tcc-0.9.26/win32/lib/wincrt1.c +64 -0
  276. data/ext/tcc/tcc-0.9.26/win32/tcc-win32.txt +156 -0
  277. data/ext/tcc/tcc-0.9.26/win32/tools/tiny_impdef.c +243 -0
  278. data/ext/tcc/tcc-0.9.26/win32/tools/tiny_libmaker.c +258 -0
  279. data/ext/tcc/tcc-0.9.26/x86_64-asm.h +448 -0
  280. data/ext/tcc/tcc-0.9.26/x86_64-gen.c +1701 -0
  281. data/lib/tcc.rb +291 -0
  282. data/tcc.gemspec +15 -0
  283. metadata +343 -0
@@ -0,0 +1,164 @@
1
+ /**
2
+ * This file has no copyright assigned and is placed in the Public Domain.
3
+ * This file is part of the w64 mingw-runtime package.
4
+ * No warranty is given; refer to the file DISCLAIMER within this package.
5
+ */
6
+ #ifndef _INC_STRING
7
+ #define _INC_STRING
8
+
9
+ #include <_mingw.h>
10
+
11
+ #ifdef __cplusplus
12
+ extern "C" {
13
+ #endif
14
+
15
+ #ifndef _NLSCMP_DEFINED
16
+ #define _NLSCMP_DEFINED
17
+ #define _NLSCMPERROR 2147483647
18
+ #endif
19
+
20
+ #ifndef NULL
21
+ #ifdef __cplusplus
22
+ #define NULL 0
23
+ #else
24
+ #define NULL ((void *)0)
25
+ #endif
26
+ #endif
27
+
28
+ #define _WConst_return _CONST_RETURN
29
+
30
+ #ifndef _CRT_MEMORY_DEFINED
31
+ #define _CRT_MEMORY_DEFINED
32
+ _CRTIMP void *__cdecl _memccpy(void *_Dst,const void *_Src,int _Val,size_t _MaxCount);
33
+ _CONST_RETURN void *__cdecl memchr(const void *_Buf ,int _Val,size_t _MaxCount);
34
+ _CRTIMP int __cdecl _memicmp(const void *_Buf1,const void *_Buf2,size_t _Size);
35
+ _CRTIMP int __cdecl _memicmp_l(const void *_Buf1,const void *_Buf2,size_t _Size,_locale_t _Locale);
36
+ int __cdecl memcmp(const void *_Buf1,const void *_Buf2,size_t _Size);
37
+ void *__cdecl memcpy(void *_Dst,const void *_Src,size_t _Size);
38
+ void *__cdecl memset(void *_Dst,int _Val,size_t _Size);
39
+ #ifndef NO_OLDNAMES
40
+ void *__cdecl memccpy(void *_Dst,const void *_Src,int _Val,size_t _Size);
41
+ int __cdecl memicmp(const void *_Buf1,const void *_Buf2,size_t _Size);
42
+ #endif
43
+ #endif
44
+ char *__cdecl _strset(char *_Str,int _Val);
45
+ char *__cdecl strcpy(char *_Dest,const char *_Source);
46
+ char *__cdecl strcat(char *_Dest,const char *_Source);
47
+ int __cdecl strcmp(const char *_Str1,const char *_Str2);
48
+ size_t __cdecl strlen(const char *_Str);
49
+ #if 0
50
+ size_t __cdecl strnlen(const char *_Str,size_t _MaxCount);
51
+ #endif
52
+ void *__cdecl memmove(void *_Dst,const void *_Src,size_t _Size);
53
+ _CRTIMP char *__cdecl _strdup(const char *_Src);
54
+ _CONST_RETURN char *__cdecl strchr(const char *_Str,int _Val);
55
+ _CRTIMP int __cdecl _stricmp(const char *_Str1,const char *_Str2);
56
+ _CRTIMP int __cdecl _strcmpi(const char *_Str1,const char *_Str2);
57
+ _CRTIMP int __cdecl _stricmp_l(const char *_Str1,const char *_Str2,_locale_t _Locale);
58
+ int __cdecl strcoll(const char *_Str1,const char *_Str2);
59
+ _CRTIMP int __cdecl _strcoll_l(const char *_Str1,const char *_Str2,_locale_t _Locale);
60
+ _CRTIMP int __cdecl _stricoll(const char *_Str1,const char *_Str2);
61
+ _CRTIMP int __cdecl _stricoll_l(const char *_Str1,const char *_Str2,_locale_t _Locale);
62
+ _CRTIMP int __cdecl _strncoll (const char *_Str1,const char *_Str2,size_t _MaxCount);
63
+ _CRTIMP int __cdecl _strncoll_l(const char *_Str1,const char *_Str2,size_t _MaxCount,_locale_t _Locale);
64
+ _CRTIMP int __cdecl _strnicoll (const char *_Str1,const char *_Str2,size_t _MaxCount);
65
+ _CRTIMP int __cdecl _strnicoll_l(const char *_Str1,const char *_Str2,size_t _MaxCount,_locale_t _Locale);
66
+ size_t __cdecl strcspn(const char *_Str,const char *_Control);
67
+ _CRTIMP char *__cdecl _strerror(const char *_ErrMsg);
68
+ char *__cdecl strerror(int);
69
+ _CRTIMP char *__cdecl _strlwr(char *_String);
70
+ char *strlwr_l(char *_String,_locale_t _Locale);
71
+ char *__cdecl strncat(char *_Dest,const char *_Source,size_t _Count);
72
+ int __cdecl strncmp(const char *_Str1,const char *_Str2,size_t _MaxCount);
73
+ _CRTIMP int __cdecl _strnicmp(const char *_Str1,const char *_Str2,size_t _MaxCount);
74
+ _CRTIMP int __cdecl _strnicmp_l(const char *_Str1,const char *_Str2,size_t _MaxCount,_locale_t _Locale);
75
+ char *strncpy(char *_Dest,const char *_Source,size_t _Count);
76
+ _CRTIMP char *__cdecl _strnset(char *_Str,int _Val,size_t _MaxCount);
77
+ _CONST_RETURN char *__cdecl strpbrk(const char *_Str,const char *_Control);
78
+ _CONST_RETURN char *__cdecl strrchr(const char *_Str,int _Ch);
79
+ _CRTIMP char *__cdecl _strrev(char *_Str);
80
+ size_t __cdecl strspn(const char *_Str,const char *_Control);
81
+ _CONST_RETURN char *__cdecl strstr(const char *_Str,const char *_SubStr);
82
+ char *__cdecl strtok(char *_Str,const char *_Delim);
83
+ _CRTIMP char *__cdecl _strupr(char *_String);
84
+ _CRTIMP char *_strupr_l(char *_String,_locale_t _Locale);
85
+ size_t __cdecl strxfrm(char *_Dst,const char *_Src,size_t _MaxCount);
86
+ _CRTIMP size_t __cdecl _strxfrm_l(char *_Dst,const char *_Src,size_t _MaxCount,_locale_t _Locale);
87
+
88
+ #ifndef NO_OLDNAMES
89
+ char *__cdecl strdup(const char *_Src);
90
+ int __cdecl strcmpi(const char *_Str1,const char *_Str2);
91
+ int __cdecl stricmp(const char *_Str1,const char *_Str2);
92
+ char *__cdecl strlwr(char *_Str);
93
+ int __cdecl strnicmp(const char *_Str1,const char *_Str,size_t _MaxCount);
94
+ __CRT_INLINE int __cdecl strncasecmp (const char *__sz1, const char *__sz2, size_t __sizeMaxCompare) { return _strnicmp (__sz1, __sz2, __sizeMaxCompare); }
95
+ __CRT_INLINE int __cdecl strcasecmp (const char *__sz1, const char *__sz2) { return _stricmp (__sz1, __sz2); }
96
+ char *__cdecl strnset(char *_Str,int _Val,size_t _MaxCount);
97
+ char *__cdecl strrev(char *_Str);
98
+ char *__cdecl strset(char *_Str,int _Val);
99
+ char *__cdecl strupr(char *_Str);
100
+ #endif
101
+
102
+ #ifndef _WSTRING_DEFINED
103
+ #define _WSTRING_DEFINED
104
+
105
+ _CRTIMP wchar_t *__cdecl _wcsdup(const wchar_t *_Str);
106
+ wchar_t *__cdecl wcscat(wchar_t *_Dest,const wchar_t *_Source);
107
+ _CONST_RETURN wchar_t *__cdecl wcschr(const wchar_t *_Str,wchar_t _Ch);
108
+ int __cdecl wcscmp(const wchar_t *_Str1,const wchar_t *_Str2);
109
+ wchar_t *__cdecl wcscpy(wchar_t *_Dest,const wchar_t *_Source);
110
+ size_t __cdecl wcscspn(const wchar_t *_Str,const wchar_t *_Control);
111
+ size_t __cdecl wcslen(const wchar_t *_Str);
112
+ size_t __cdecl wcsnlen(const wchar_t *_Src,size_t _MaxCount);
113
+ wchar_t *wcsncat(wchar_t *_Dest,const wchar_t *_Source,size_t _Count);
114
+ int __cdecl wcsncmp(const wchar_t *_Str1,const wchar_t *_Str2,size_t _MaxCount);
115
+ wchar_t *wcsncpy(wchar_t *_Dest,const wchar_t *_Source,size_t _Count);
116
+ _CONST_RETURN wchar_t *__cdecl wcspbrk(const wchar_t *_Str,const wchar_t *_Control);
117
+ _CONST_RETURN wchar_t *__cdecl wcsrchr(const wchar_t *_Str,wchar_t _Ch);
118
+ size_t __cdecl wcsspn(const wchar_t *_Str,const wchar_t *_Control);
119
+ _CONST_RETURN wchar_t *__cdecl wcsstr(const wchar_t *_Str,const wchar_t *_SubStr);
120
+ wchar_t *__cdecl wcstok(wchar_t *_Str,const wchar_t *_Delim);
121
+ _CRTIMP wchar_t *__cdecl _wcserror(int _ErrNum);
122
+ _CRTIMP wchar_t *__cdecl __wcserror(const wchar_t *_Str);
123
+ _CRTIMP int __cdecl _wcsicmp(const wchar_t *_Str1,const wchar_t *_Str2);
124
+ _CRTIMP int __cdecl _wcsicmp_l(const wchar_t *_Str1,const wchar_t *_Str2,_locale_t _Locale);
125
+ _CRTIMP int __cdecl _wcsnicmp(const wchar_t *_Str1,const wchar_t *_Str2,size_t _MaxCount);
126
+ _CRTIMP int __cdecl _wcsnicmp_l(const wchar_t *_Str1,const wchar_t *_Str2,size_t _MaxCount,_locale_t _Locale);
127
+ _CRTIMP wchar_t *__cdecl _wcsnset(wchar_t *_Str,wchar_t _Val,size_t _MaxCount);
128
+ _CRTIMP wchar_t *__cdecl _wcsrev(wchar_t *_Str);
129
+ _CRTIMP wchar_t *__cdecl _wcsset(wchar_t *_Str,wchar_t _Val);
130
+ _CRTIMP wchar_t *__cdecl _wcslwr(wchar_t *_String);
131
+ _CRTIMP wchar_t *_wcslwr_l(wchar_t *_String,_locale_t _Locale);
132
+ _CRTIMP wchar_t *__cdecl _wcsupr(wchar_t *_String);
133
+ _CRTIMP wchar_t *_wcsupr_l(wchar_t *_String,_locale_t _Locale);
134
+ size_t __cdecl wcsxfrm(wchar_t *_Dst,const wchar_t *_Src,size_t _MaxCount);
135
+ _CRTIMP size_t __cdecl _wcsxfrm_l(wchar_t *_Dst,const wchar_t *_Src,size_t _MaxCount,_locale_t _Locale);
136
+ int __cdecl wcscoll(const wchar_t *_Str1,const wchar_t *_Str2);
137
+ _CRTIMP int __cdecl _wcscoll_l(const wchar_t *_Str1,const wchar_t *_Str2,_locale_t _Locale);
138
+ _CRTIMP int __cdecl _wcsicoll(const wchar_t *_Str1,const wchar_t *_Str2);
139
+ _CRTIMP int __cdecl _wcsicoll_l(const wchar_t *_Str1,const wchar_t *_Str2,_locale_t _Locale);
140
+ _CRTIMP int __cdecl _wcsncoll(const wchar_t *_Str1,const wchar_t *_Str2,size_t _MaxCount);
141
+ _CRTIMP int __cdecl _wcsncoll_l(const wchar_t *_Str1,const wchar_t *_Str2,size_t _MaxCount,_locale_t _Locale);
142
+ _CRTIMP int __cdecl _wcsnicoll(const wchar_t *_Str1,const wchar_t *_Str2,size_t _MaxCount);
143
+ _CRTIMP int __cdecl _wcsnicoll_l(const wchar_t *_Str1,const wchar_t *_Str2,size_t _MaxCount,_locale_t _Locale);
144
+
145
+ #ifndef NO_OLDNAMES
146
+ wchar_t *__cdecl wcsdup(const wchar_t *_Str);
147
+ #define wcswcs wcsstr
148
+ int __cdecl wcsicmp(const wchar_t *_Str1,const wchar_t *_Str2);
149
+ int __cdecl wcsnicmp(const wchar_t *_Str1,const wchar_t *_Str2,size_t _MaxCount);
150
+ wchar_t *__cdecl wcsnset(wchar_t *_Str,wchar_t _Val,size_t _MaxCount);
151
+ wchar_t *__cdecl wcsrev(wchar_t *_Str);
152
+ wchar_t *__cdecl wcsset(wchar_t *_Str,wchar_t _Val);
153
+ wchar_t *__cdecl wcslwr(wchar_t *_Str);
154
+ wchar_t *__cdecl wcsupr(wchar_t *_Str);
155
+ int __cdecl wcsicoll(const wchar_t *_Str1,const wchar_t *_Str2);
156
+ #endif
157
+ #endif
158
+
159
+ #ifdef __cplusplus
160
+ }
161
+ #endif
162
+
163
+ #include <sec_api/string_s.h>
164
+ #endif
@@ -0,0 +1,13 @@
1
+ /**
2
+ * This file has no copyright assigned and is placed in the Public Domain.
3
+ * This file is part of the w64 mingw-runtime package.
4
+ * No warranty is given; refer to the file DISCLAIMER within this package.
5
+ */
6
+ /*
7
+ * This file is part of the Mingw32 package.
8
+ *
9
+ * This fcntl.h maps to the root fcntl.h
10
+ */
11
+ #ifndef __STRICT_ANSI__
12
+ #include <fcntl.h>
13
+ #endif
@@ -0,0 +1,14 @@
1
+ /**
2
+ * This file has no copyright assigned and is placed in the Public Domain.
3
+ * This file is part of the w64 mingw-runtime package.
4
+ * No warranty is given; refer to the file DISCLAIMER within this package.
5
+ */
6
+ /*
7
+ * This file is part of the Mingw32 package.
8
+ *
9
+ * This file.h maps to the root fcntl.h
10
+ * TODO?
11
+ */
12
+ #ifndef __STRICT_ANSI__
13
+ #include <fcntl.h>
14
+ #endif
@@ -0,0 +1,30 @@
1
+ /**
2
+ * This file has no copyright assigned and is placed in the Public Domain.
3
+ * This file is part of the w64 mingw-runtime package.
4
+ * No warranty is given; refer to the file DISCLAIMER within this package.
5
+ */
6
+ #ifndef _INC_LOCKING
7
+ #define _INC_LOCKING
8
+
9
+ #ifndef _WIN32
10
+ #error Only Win32 target is supported!
11
+ #endif
12
+
13
+ /* All the headers include this file. */
14
+ #include <_mingw.h>
15
+
16
+ #define _LK_UNLCK 0
17
+ #define _LK_LOCK 1
18
+ #define _LK_NBLCK 2
19
+ #define _LK_RLCK 3
20
+ #define _LK_NBRLCK 4
21
+
22
+ #ifndef NO_OLDNAMES
23
+ #define LK_UNLCK _LK_UNLCK
24
+ #define LK_LOCK _LK_LOCK
25
+ #define LK_NBLCK _LK_NBLCK
26
+ #define LK_RLCK _LK_RLCK
27
+ #define LK_NBRLCK _LK_NBRLCK
28
+ #endif
29
+
30
+ #endif
@@ -0,0 +1,290 @@
1
+ /**
2
+ * This file has no copyright assigned and is placed in the Public Domain.
3
+ * This file is part of the w64 mingw-runtime package.
4
+ * No warranty is given; refer to the file DISCLAIMER within this package.
5
+ */
6
+ #ifndef _INC_STAT
7
+ #define _INC_STAT
8
+
9
+ #ifndef _WIN32
10
+ #error Only Win32 target is supported!
11
+ #endif
12
+
13
+ #include <_mingw.h>
14
+ #include <io.h>
15
+
16
+ #pragma pack(push,_CRT_PACKING)
17
+
18
+ #ifdef __cplusplus
19
+ extern "C" {
20
+ #endif
21
+
22
+ #ifndef _CRTIMP
23
+ #define _CRTIMP __declspec(dllimport)
24
+ #endif
25
+
26
+ #include <sys/types.h>
27
+
28
+ #ifndef __TINYC__ //gr
29
+ #ifdef _USE_32BIT_TIME_T
30
+ #ifdef _WIN64
31
+ #undef _USE_32BIT_TIME_T
32
+ #endif
33
+ #else
34
+ #if _INTEGRAL_MAX_BITS < 64
35
+ #define _USE_32BIT_TIME_T
36
+ #endif
37
+ #endif
38
+ #endif
39
+
40
+ #ifndef _TIME32_T_DEFINED
41
+ typedef long __time32_t;
42
+ #define _TIME32_T_DEFINED
43
+ #endif
44
+
45
+ #ifndef _TIME64_T_DEFINED
46
+ #if _INTEGRAL_MAX_BITS >= 64
47
+ typedef __int64 __time64_t;
48
+ #endif
49
+ #define _TIME64_T_DEFINED
50
+ #endif
51
+
52
+ #ifndef _TIME_T_DEFINED
53
+ #ifdef _USE_32BIT_TIME_T
54
+ typedef __time32_t time_t;
55
+ #else
56
+ typedef __time64_t time_t;
57
+ #endif
58
+ #define _TIME_T_DEFINED
59
+ #endif
60
+
61
+ #ifndef _WCHAR_T_DEFINED
62
+ typedef unsigned short wchar_t;
63
+ #define _WCHAR_T_DEFINED
64
+ #endif
65
+
66
+ #ifndef _STAT_DEFINED
67
+
68
+ #ifdef _USE_32BIT_TIME_T
69
+ #ifndef _WIN64
70
+ #define _fstat32 _fstat
71
+ #define _stat32 _stat
72
+ #define _wstat32 _wstat
73
+ #else
74
+ #define _fstat _fstat32
75
+ #define _stat _stat32
76
+ #define _wstat _wstat32
77
+ #endif
78
+ #define _fstati64 _fstat32i64
79
+ #define _stati64 _stat32i64
80
+ #define _wstati64 _wstat32i64
81
+ #else
82
+ #define _fstat _fstat64i32
83
+ #define _fstati64 _fstat64
84
+ #define _stat _stat64i32
85
+ #define _stati64 _stat64
86
+ #define _wstat _wstat64i32
87
+ #define _wstati64 _wstat64
88
+ #endif
89
+
90
+ struct _stat32 {
91
+ _dev_t st_dev;
92
+ _ino_t st_ino;
93
+ unsigned short st_mode;
94
+ short st_nlink;
95
+ short st_uid;
96
+ short st_gid;
97
+ _dev_t st_rdev;
98
+ _off_t st_size;
99
+ __time32_t st_atime;
100
+ __time32_t st_mtime;
101
+ __time32_t st_ctime;
102
+ };
103
+
104
+ #ifndef NO_OLDNAMES
105
+ struct stat {
106
+ _dev_t st_dev;
107
+ _ino_t st_ino;
108
+ unsigned short st_mode;
109
+ short st_nlink;
110
+ short st_uid;
111
+ short st_gid;
112
+ _dev_t st_rdev;
113
+ _off_t st_size;
114
+ time_t st_atime;
115
+ time_t st_mtime;
116
+ time_t st_ctime;
117
+ };
118
+ #endif
119
+
120
+ #if _INTEGRAL_MAX_BITS >= 64
121
+ struct _stat32i64 {
122
+ _dev_t st_dev;
123
+ _ino_t st_ino;
124
+ unsigned short st_mode;
125
+ short st_nlink;
126
+ short st_uid;
127
+ short st_gid;
128
+ _dev_t st_rdev;
129
+ __int64 st_size;
130
+ __time32_t st_atime;
131
+ __time32_t st_mtime;
132
+ __time32_t st_ctime;
133
+ };
134
+
135
+ struct _stat64i32 {
136
+ _dev_t st_dev;
137
+ _ino_t st_ino;
138
+ unsigned short st_mode;
139
+ short st_nlink;
140
+ short st_uid;
141
+ short st_gid;
142
+ _dev_t st_rdev;
143
+ _off_t st_size;
144
+ __time64_t st_atime;
145
+ __time64_t st_mtime;
146
+ __time64_t st_ctime;
147
+ };
148
+
149
+ struct _stat64 {
150
+ _dev_t st_dev;
151
+ _ino_t st_ino;
152
+ unsigned short st_mode;
153
+ short st_nlink;
154
+ short st_uid;
155
+ short st_gid;
156
+ _dev_t st_rdev;
157
+ __int64 st_size;
158
+ __time64_t st_atime;
159
+ __time64_t st_mtime;
160
+ __time64_t st_ctime;
161
+ };
162
+ #endif
163
+
164
+ #define __stat64 _stat64
165
+
166
+ #define _STAT_DEFINED
167
+ #endif
168
+
169
+ #define _S_IFMT 0xF000
170
+ #define _S_IFDIR 0x4000
171
+ #define _S_IFCHR 0x2000
172
+ #define _S_IFIFO 0x1000
173
+ #define _S_IFREG 0x8000
174
+ #define _S_IREAD 0x0100
175
+ #define _S_IWRITE 0x0080
176
+ #define _S_IEXEC 0x0040
177
+
178
+ _CRTIMP int __cdecl _fstat32(int _FileDes,struct _stat32 *_Stat);
179
+ _CRTIMP int __cdecl _stat32(const char *_Name,struct _stat32 *_Stat);
180
+ #if _INTEGRAL_MAX_BITS >= 64
181
+ _CRTIMP int __cdecl _fstat64(int _FileDes,struct _stat64 *_Stat);
182
+ _CRTIMP int __cdecl _fstat32i64(int _FileDes,struct _stat32i64 *_Stat);
183
+ int __cdecl _fstat64i32(int _FileDes,struct _stat64i32 *_Stat);
184
+ __CRT_INLINE int __cdecl _fstat64i32(int _FileDes,struct _stat64i32 *_Stat)
185
+ {
186
+ struct _stat64 st;
187
+ int ret=_fstat64(_FileDes,&st);
188
+ _Stat->st_dev=st.st_dev;
189
+ _Stat->st_ino=st.st_ino;
190
+ _Stat->st_mode=st.st_mode;
191
+ _Stat->st_nlink=st.st_nlink;
192
+ _Stat->st_uid=st.st_uid;
193
+ _Stat->st_gid=st.st_gid;
194
+ _Stat->st_rdev=st.st_rdev;
195
+ _Stat->st_size=(_off_t) st.st_size;
196
+ _Stat->st_atime=st.st_atime;
197
+ _Stat->st_mtime=st.st_mtime;
198
+ _Stat->st_ctime=st.st_ctime;
199
+ return ret;
200
+ }
201
+ _CRTIMP int __cdecl _stat64(const char *_Name,struct _stat64 *_Stat);
202
+ _CRTIMP int __cdecl _stat32i64(const char *_Name,struct _stat32i64 *_Stat);
203
+ int __cdecl _stat64i32(const char *_Name,struct _stat64i32 *_Stat);
204
+ __CRT_INLINE int __cdecl _stat64i32(const char *_Name,struct _stat64i32 *_Stat)
205
+ {
206
+ struct _stat64 st;
207
+ int ret=_stat64(_Name,&st);
208
+ _Stat->st_dev=st.st_dev;
209
+ _Stat->st_ino=st.st_ino;
210
+ _Stat->st_mode=st.st_mode;
211
+ _Stat->st_nlink=st.st_nlink;
212
+ _Stat->st_uid=st.st_uid;
213
+ _Stat->st_gid=st.st_gid;
214
+ _Stat->st_rdev=st.st_rdev;
215
+ _Stat->st_size=(_off_t) st.st_size;
216
+ _Stat->st_atime=st.st_atime;
217
+ _Stat->st_mtime=st.st_mtime;
218
+ _Stat->st_ctime=st.st_ctime;
219
+ return ret;
220
+ }
221
+ #endif
222
+
223
+ #ifndef _WSTAT_DEFINED
224
+ #define _WSTAT_DEFINED
225
+ _CRTIMP int __cdecl _wstat32(const wchar_t *_Name,struct _stat32 *_Stat);
226
+ #if _INTEGRAL_MAX_BITS >= 64
227
+ _CRTIMP int __cdecl _wstat32i64(const wchar_t *_Name,struct _stat32i64 *_Stat);
228
+ int __cdecl _wstat64i32(const wchar_t *_Name,struct _stat64i32 *_Stat);
229
+ _CRTIMP int __cdecl _wstat64(const wchar_t *_Name,struct _stat64 *_Stat);
230
+ #endif
231
+ #endif
232
+
233
+ #ifndef NO_OLDNAMES
234
+ #define _S_IFBLK 0x3000 /* Block: Is this ever set under w32? */
235
+
236
+ #define S_IFMT _S_IFMT
237
+ #define S_IFDIR _S_IFDIR
238
+ #define S_IFCHR _S_IFCHR
239
+ #define S_IFREG _S_IFREG
240
+ #define S_IREAD _S_IREAD
241
+ #define S_IWRITE _S_IWRITE
242
+ #define S_IEXEC _S_IEXEC
243
+ #define S_IFIFO _S_IFIFO
244
+ #define S_IFBLK _S_IFBLK
245
+
246
+ #define _S_IRWXU (_S_IREAD | _S_IWRITE | _S_IEXEC)
247
+ #define _S_IXUSR _S_IEXEC
248
+ #define _S_IWUSR _S_IWRITE
249
+
250
+ #define S_IRWXU _S_IRWXU
251
+ #define S_IXUSR _S_IXUSR
252
+ #define S_IWUSR _S_IWUSR
253
+ #define S_IRUSR _S_IRUSR
254
+ #define _S_IRUSR _S_IREAD
255
+
256
+ #define S_ISDIR(m) (((m) & S_IFMT) == S_IFDIR)
257
+ #define S_ISFIFO(m) (((m) & S_IFMT) == S_IFIFO)
258
+ #define S_ISCHR(m) (((m) & S_IFMT) == S_IFCHR)
259
+ #define S_ISBLK(m) (((m) & S_IFMT) == S_IFBLK)
260
+ #define S_ISREG(m) (((m) & S_IFMT) == S_IFREG)
261
+
262
+ #endif
263
+
264
+ #if !defined (RC_INVOKED) && !defined (NO_OLDNAMES)
265
+ int __cdecl stat(const char *_Filename,struct stat *_Stat);
266
+ int __cdecl fstat(int _Desc,struct stat *_Stat);
267
+ int __cdecl wstat(const wchar_t *_Filename,struct stat *_Stat);
268
+ #ifdef _USE_32BIT_TIME_T
269
+ __CRT_INLINE int __cdecl fstat(int _Desc,struct stat *_Stat) {
270
+ return _fstat32(_Desc,(struct _stat32 *)_Stat);
271
+ }
272
+ __CRT_INLINE int __cdecl stat(const char *_Filename,struct stat *_Stat) {
273
+ return _stat32(_Filename,(struct _stat32 *)_Stat);
274
+ }
275
+ #else
276
+ __CRT_INLINE int __cdecl fstat(int _Desc,struct stat *_Stat) {
277
+ return _fstat64i32(_Desc,(struct _stat64i32 *)_Stat);
278
+ }
279
+ __CRT_INLINE int __cdecl stat(const char *_Filename,struct stat *_Stat) {
280
+ return _stat64i32(_Filename,(struct _stat64i32 *)_Stat);
281
+ }
282
+ #endif
283
+ #endif
284
+
285
+ #ifdef __cplusplus
286
+ }
287
+ #endif
288
+
289
+ #pragma pack(pop)
290
+ #endif