adlint 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (465) hide show
  1. data/AUTHORS +27 -0
  2. data/COPYING +674 -0
  3. data/ChangeLog +820 -0
  4. data/INSTALL +78 -0
  5. data/MANIFEST +464 -0
  6. data/NEWS +38 -0
  7. data/README +74 -0
  8. data/Rakefile +167 -0
  9. data/TODO +29 -0
  10. data/bin/adlint +141 -0
  11. data/bin/adlint_chk +129 -0
  12. data/bin/adlint_cma +122 -0
  13. data/bin/adlint_sma +129 -0
  14. data/bin/adlintize +286 -0
  15. data/etc/conf.d/fallback/cinit.erb +11 -0
  16. data/etc/conf.d/fallback/traits.erb +216 -0
  17. data/etc/conf.d/i686-cygwin/cinit-gcc_4.3.4.erb +149 -0
  18. data/etc/conf.d/i686-cygwin/traits-gcc_4.3.4.erb +227 -0
  19. data/etc/conf.d/i686-devkit/cinit-gcc_4.5.2.erb +224 -0
  20. data/etc/conf.d/i686-devkit/traits-gcc_4.5.2.erb +226 -0
  21. data/etc/conf.d/i686-linux/cinit-gcc_4.5.1.erb +219 -0
  22. data/etc/conf.d/i686-linux/traits-gcc_4.5.1.erb +224 -0
  23. data/etc/conf.d/i686-mingw/cinit-gcc_4.6.1.erb +234 -0
  24. data/etc/conf.d/i686-mingw/traits-gcc_4.6.1.erb +226 -0
  25. data/etc/conf.d/noarch/GNUmakefile.erb +119 -0
  26. data/etc/conf.d/noarch/adlint_all_bat.erb +9 -0
  27. data/etc/conf.d/noarch/adlint_all_sh.erb +10 -0
  28. data/etc/conf.d/noarch/pinit.erb +11 -0
  29. data/etc/mesg.d/en_US/messages.yml +784 -0
  30. data/etc/mesg.d/ja_JP/messages.yml +784 -0
  31. data/lib/adlint/analyzer.rb +294 -0
  32. data/lib/adlint/c/branch.rb +251 -0
  33. data/lib/adlint/c/builtin.rb +92 -0
  34. data/lib/adlint/c/code.rb +490 -0
  35. data/lib/adlint/c/const.rb +465 -0
  36. data/lib/adlint/c/conv.rb +212 -0
  37. data/lib/adlint/c/ctrlexpr.rb +949 -0
  38. data/lib/adlint/c/domain.rb +7499 -0
  39. data/lib/adlint/c/environ.rb +133 -0
  40. data/lib/adlint/c/expr.rb +1725 -0
  41. data/lib/adlint/c/format.rb +3209 -0
  42. data/lib/adlint/c/interp.rb +1740 -0
  43. data/lib/adlint/c/lexer.rb +241 -0
  44. data/lib/adlint/c/mediator.rb +313 -0
  45. data/lib/adlint/c/message.rb +13597 -0
  46. data/lib/adlint/c/metric.rb +765 -0
  47. data/lib/adlint/c/object.rb +1018 -0
  48. data/lib/adlint/c/parser.rb +3800 -0
  49. data/lib/adlint/c/parser.y +2054 -0
  50. data/lib/adlint/c/phase.rb +712 -0
  51. data/lib/adlint/c/resolver.rb +270 -0
  52. data/lib/adlint/c/scanner.rb +248 -0
  53. data/lib/adlint/c/scope.rb +74 -0
  54. data/lib/adlint/c/syntax.rb +4279 -0
  55. data/lib/adlint/c/type.rb +7506 -0
  56. data/lib/adlint/c/util.rb +91 -0
  57. data/lib/adlint/c/value.rb +2310 -0
  58. data/lib/adlint/c.rb +56 -0
  59. data/lib/adlint/code.rb +500 -0
  60. data/lib/adlint/cpp/code.rb +189 -0
  61. data/lib/adlint/cpp/constexpr.rb +721 -0
  62. data/lib/adlint/cpp/constexpr.y +389 -0
  63. data/lib/adlint/cpp/eval.rb +1012 -0
  64. data/lib/adlint/cpp/lexer.rb +860 -0
  65. data/lib/adlint/cpp/macro.rb +637 -0
  66. data/lib/adlint/cpp/message.rb +992 -0
  67. data/lib/adlint/cpp/phase.rb +176 -0
  68. data/lib/adlint/cpp/scanner.rb +93 -0
  69. data/lib/adlint/cpp/source.rb +169 -0
  70. data/lib/adlint/cpp/subst.rb +300 -0
  71. data/lib/adlint/cpp/syntax.rb +1412 -0
  72. data/lib/adlint/cpp/util.rb +97 -0
  73. data/lib/adlint/cpp.rb +43 -0
  74. data/lib/adlint/driver.rb +147 -0
  75. data/lib/adlint/error.rb +179 -0
  76. data/lib/adlint/lang.rb +97 -0
  77. data/lib/adlint/ld/message.rb +259 -0
  78. data/lib/adlint/ld/metric.rb +57 -0
  79. data/lib/adlint/ld/object.rb +542 -0
  80. data/lib/adlint/ld/phase.rb +193 -0
  81. data/lib/adlint/ld/typedef.rb +109 -0
  82. data/lib/adlint/ld/util.rb +88 -0
  83. data/lib/adlint/ld.rb +37 -0
  84. data/lib/adlint/lexer.rb +293 -0
  85. data/lib/adlint/message.rb +368 -0
  86. data/lib/adlint/metric.rb +805 -0
  87. data/lib/adlint/monitor.rb +144 -0
  88. data/lib/adlint/phase.rb +90 -0
  89. data/lib/adlint/prelude.rb +314 -0
  90. data/lib/adlint/report.rb +617 -0
  91. data/lib/adlint/source.rb +155 -0
  92. data/lib/adlint/symbol.rb +127 -0
  93. data/lib/adlint/token.rb +215 -0
  94. data/lib/adlint/traits.rb +643 -0
  95. data/lib/adlint/util.rb +524 -0
  96. data/lib/adlint/version.rb +71 -0
  97. data/lib/adlint.rb +66 -0
  98. data/share/HEADER +45 -0
  99. data/share/demo/Makefile +110 -0
  100. data/share/demo/ambig_operator/ambig_operator.c +289 -0
  101. data/share/demo/arg_points_unset/arg_points_unset.c +37 -0
  102. data/share/demo/array_range/array_range.c +62 -0
  103. data/share/demo/bad_bitfields/bad_bitfields.c +74 -0
  104. data/share/demo/bad_brace/bad_brace.c +19 -0
  105. data/share/demo/bad_charset/abcde$.h +0 -0
  106. data/share/demo/bad_charset/bad_charset.c +22 -0
  107. data/share/demo/bad_comment/bad_comment.c +3 -0
  108. data/share/demo/bad_const/bad_const.c +19 -0
  109. data/share/demo/bad_conv/bad_conv.c +48 -0
  110. data/share/demo/bad_indent/bad_indent.c +50 -0
  111. data/share/demo/bad_init/bad_init.c +49 -0
  112. data/share/demo/bad_macro/bad_macro.c +97 -0
  113. data/share/demo/bitwise_expr/bitwise_expr.c +19 -0
  114. data/share/demo/call_by_value/call_by_value.c +26 -0
  115. data/share/demo/cross_ref/cross_ref.c +21 -0
  116. data/share/demo/dangling_else/dangling_else.c +20 -0
  117. data/share/demo/dead_code/dead_code.c +237 -0
  118. data/share/demo/deep_nest/deep_nest.c +57 -0
  119. data/share/demo/dense_switch/dense_switch.c +62 -0
  120. data/share/demo/direct_recur/direct_recur.c +15 -0
  121. data/share/demo/div_by_zero/div_by_zero.c +35 -0
  122. data/share/demo/dos_source/dos_source.c +7 -0
  123. data/share/demo/funptr_cast/funptr_cast.c +26 -0
  124. data/share/demo/goto_stmt/goto_stmt.c +19 -0
  125. data/share/demo/id_hiding/id_hiding.c +19 -0
  126. data/share/demo/ill_defined/ill_defined.c +13 -0
  127. data/share/demo/implicit_conv/implicit_conv.c +60 -0
  128. data/share/demo/implicit_int/implicit_int.c +14 -0
  129. data/share/demo/incomplete_type/incomplete_type.c +49 -0
  130. data/share/demo/indirect_recur/indirect_recur_1.c +14 -0
  131. data/share/demo/indirect_recur/indirect_recur_1.h +7 -0
  132. data/share/demo/indirect_recur/indirect_recur_2.c +12 -0
  133. data/share/demo/indirect_recur/indirect_recur_2.h +6 -0
  134. data/share/demo/indirect_recur/indirect_recur_3.c +6 -0
  135. data/share/demo/indirect_recur/indirect_recur_3.h +6 -0
  136. data/share/demo/indirect_recur/indirect_recur_4.c +25 -0
  137. data/share/demo/intro_demo/intro_demo.c +76 -0
  138. data/share/demo/intro_demo/intro_demo.h +12 -0
  139. data/share/demo/intro_demo/useless_header.h +5 -0
  140. data/share/demo/invalid_call/invalid_call.c +32 -0
  141. data/share/demo/kandr_fundef/kandr_fundef.c +10 -0
  142. data/share/demo/line_comment/line_comment.c +12 -0
  143. data/share/demo/local_decl/local_decl.c +9 -0
  144. data/share/demo/logical_trick/logical_trick.c +36 -0
  145. data/share/demo/long_sym/long_sym.c +5 -0
  146. data/share/demo/loop_var/loop_var.c +92 -0
  147. data/share/demo/malloc_or_die/malloc_or_die.c +43 -0
  148. data/share/demo/may_be_null/may_be_null.c +52 -0
  149. data/share/demo/may_be_null_arith/may_be_null_arith.c +15 -0
  150. data/share/demo/may_be_unset/may_be_unset.c +34 -0
  151. data/share/demo/mmapped_io/mmapped_io.c +23 -0
  152. data/share/demo/multi_break/multi_break.c +33 -0
  153. data/share/demo/multi_decl/multi_decl_1.c +17 -0
  154. data/share/demo/multi_decl/multi_decl_1.h +6 -0
  155. data/share/demo/multi_decl/multi_decl_2.c +13 -0
  156. data/share/demo/multi_decl/multi_decl_2.h +6 -0
  157. data/share/demo/multi_decl/multi_decl_3.c +22 -0
  158. data/share/demo/multi_def/multi_def_1.c +36 -0
  159. data/share/demo/multi_def/multi_def_1.h +6 -0
  160. data/share/demo/multi_def/multi_def_2.c +22 -0
  161. data/share/demo/multi_def/multi_def_2.h +6 -0
  162. data/share/demo/multi_def/multi_def_3.c +6 -0
  163. data/share/demo/multi_typedef/multi_typedef.c +11 -0
  164. data/share/demo/multi_typedef/multi_typedef_1.h +1 -0
  165. data/share/demo/multi_typedef/multi_typedef_2.h +1 -0
  166. data/share/demo/must_be_false/must_be_false.c +53 -0
  167. data/share/demo/must_be_null/must_be_null.c +13 -0
  168. data/share/demo/must_be_null_arith/must_be_null_arith.c +14 -0
  169. data/share/demo/must_be_true/must_be_true.c +21 -0
  170. data/share/demo/no_eof_nl/no_eof_nl.c +4 -0
  171. data/share/demo/no_void_arg/no_void_arg.c +14 -0
  172. data/share/demo/null_stmt/null_stmt.c +19 -0
  173. data/share/demo/octal_const/octal_const.c +20 -0
  174. data/share/demo/output_by_param/output_by_param.c +17 -0
  175. data/share/demo/overflow/overflow.c +74 -0
  176. data/share/demo/press_release/press_release.c +40 -0
  177. data/share/demo/retn_lvar_addr/retn_lvar_addr.c +47 -0
  178. data/share/demo/shift_expr/shift_expr.c +14 -0
  179. data/share/demo/should_be_typedef/should_be_typedef.c +51 -0
  180. data/share/demo/static_paths/static_paths.c +153 -0
  181. data/share/demo/static_vars/static_vars.c +39 -0
  182. data/share/demo/tag_hiding/tag_hiding.c +18 -0
  183. data/share/demo/tricky_incdec/tricky_incdec.c +12 -0
  184. data/share/demo/undefined_macro/undefined_macro.c +17 -0
  185. data/share/demo/uninit_vars/uninit_vars.c +28 -0
  186. data/share/demo/union_type/union_type.c +23 -0
  187. data/share/demo/unmatch_decl/unmatch_decl_1.c +12 -0
  188. data/share/demo/unmatch_decl/unmatch_decl_1.h +8 -0
  189. data/share/demo/unmatch_decl/unmatch_decl_2.c +10 -0
  190. data/share/demo/unmatch_decl/unmatch_decl_2.h +8 -0
  191. data/share/demo/unmatch_decl/unmatch_decl_3.c +7 -0
  192. data/share/demo/unmatch_paren_macro/unmatch_paren_macro.c +15 -0
  193. data/share/demo/unreachable/unreachable.c +34 -0
  194. data/share/demo/useless_exp_funs/useless_exp_funs_1.c +14 -0
  195. data/share/demo/useless_exp_funs/useless_exp_funs_1.h +1 -0
  196. data/share/demo/useless_exp_funs/useless_exp_funs_2.c +6 -0
  197. data/share/demo/useless_exp_vars/useless_export_1.c +8 -0
  198. data/share/demo/useless_exp_vars/useless_export_1.h +1 -0
  199. data/share/demo/useless_exp_vars/useless_export_2.c +7 -0
  200. data/share/demo/useless_expr/useless_expr.c +17 -0
  201. data/share/demo/useless_funs/useless_funs_1.c +21 -0
  202. data/share/demo/useless_funs/useless_funs_1.h +8 -0
  203. data/share/demo/useless_funs/useless_funs_2.c +6 -0
  204. data/share/demo/useless_header/useless_header.c +9 -0
  205. data/share/demo/useless_header/useless_header_1.h +12 -0
  206. data/share/demo/useless_header/useless_header_2.h +6 -0
  207. data/share/demo/useless_header/useless_header_3.h +9 -0
  208. data/share/demo/useless_header/useless_header_4.h +3 -0
  209. data/share/demo/useless_vars/useless_vars.c +17 -0
  210. data/share/demo/va_funcall/va_funcall.c +25 -0
  211. data/share/demo/various_fundef/various_fundef.c +36 -0
  212. data/share/demo/wchar_wstring/wchar_wstring.c +7 -0
  213. data/share/demo/wrap_around/wrap_around.c +38 -0
  214. data/share/doc/Makefile +16 -0
  215. data/share/doc/adlint_on_adqua.png +0 -0
  216. data/share/doc/adlint_on_eclipse_en.png +0 -0
  217. data/share/doc/adlint_on_eclipse_ja.png +0 -0
  218. data/share/doc/adlint_on_vim_en.png +0 -0
  219. data/share/doc/adlint_on_vim_ja.png +0 -0
  220. data/share/doc/developers_guide_ja.html +171 -0
  221. data/share/doc/developers_guide_ja.texi +87 -0
  222. data/share/doc/gen_mesg_sections.rb +39 -0
  223. data/share/doc/samples/GNUmakefile +162 -0
  224. data/share/doc/samples/adlint_traits.yml +238 -0
  225. data/share/doc/texinfo.css +22 -0
  226. data/share/doc/users_guide_en.html +39975 -0
  227. data/share/doc/users_guide_en.texi +32640 -0
  228. data/share/doc/users_guide_ja.html +40505 -0
  229. data/share/doc/users_guide_ja.texi +33189 -0
  230. data/share/logo/adlint-110.png +0 -0
  231. data/share/logo/adlint-524.png +0 -0
  232. data/share/logo/adlint.svg +4637 -0
  233. data/share/sample/README +6 -0
  234. data/share/sample/bison-2.5/adlint/GNUmakefile +170 -0
  235. data/share/sample/bison-2.5/adlint/adlint_traits.yml +225 -0
  236. data/share/sample/bison-2.5/adlint/lib/GNUmakefile +198 -0
  237. data/share/sample/bison-2.5/adlint/lib/adlint_cinit.h +228 -0
  238. data/share/sample/bison-2.5/adlint/lib/adlint_pinit.h +21 -0
  239. data/share/sample/bison-2.5/adlint/lib/adlint_traits.yml +238 -0
  240. data/share/sample/bison-2.5/adlint/src/GNUmakefile +166 -0
  241. data/share/sample/bison-2.5/adlint/src/adlint_cinit.h +228 -0
  242. data/share/sample/bison-2.5/adlint/src/adlint_pinit.h +21 -0
  243. data/share/sample/bison-2.5/adlint/src/adlint_traits.yml +239 -0
  244. data/share/sample/ctags-5.8/adlint/GNUmakefile +169 -0
  245. data/share/sample/ctags-5.8/adlint/adlint_cinit.h +219 -0
  246. data/share/sample/ctags-5.8/adlint/adlint_pinit.h +13 -0
  247. data/share/sample/ctags-5.8/adlint/adlint_traits.yml +225 -0
  248. data/share/sample/flex-2.5.35/adlint/GNUmakefile +140 -0
  249. data/share/sample/flex-2.5.35/adlint/adlint_cinit.h +219 -0
  250. data/share/sample/flex-2.5.35/adlint/adlint_pinit.h +14 -0
  251. data/share/sample/flex-2.5.35/adlint/adlint_traits.yml +225 -0
  252. data/share/sample/ruby-1.9.3-p0/adlint/GNUmakefile +314 -0
  253. data/share/sample/ruby-1.9.3-p0/adlint/adlint_traits.yml +225 -0
  254. data/share/sample/ruby-1.9.3-p0/adlint/core/GNUmakefile +204 -0
  255. data/share/sample/ruby-1.9.3-p0/adlint/core/adlint_cinit.h +228 -0
  256. data/share/sample/ruby-1.9.3-p0/adlint/core/adlint_pinit.h +28 -0
  257. data/share/sample/ruby-1.9.3-p0/adlint/core/adlint_traits.yml +240 -0
  258. data/share/sample/ruby-1.9.3-p0/adlint/enc/GNUmakefile +163 -0
  259. data/share/sample/ruby-1.9.3-p0/adlint/enc/adlint_cinit.h +228 -0
  260. data/share/sample/ruby-1.9.3-p0/adlint/enc/adlint_pinit.h +24 -0
  261. data/share/sample/ruby-1.9.3-p0/adlint/enc/adlint_traits.yml +240 -0
  262. data/share/sample/ruby-1.9.3-p0/adlint/enc-trans/GNUmakefile +149 -0
  263. data/share/sample/ruby-1.9.3-p0/adlint/enc-trans/adlint_cinit.h +228 -0
  264. data/share/sample/ruby-1.9.3-p0/adlint/enc-trans/adlint_pinit.h +24 -0
  265. data/share/sample/ruby-1.9.3-p0/adlint/enc-trans/adlint_traits.yml +240 -0
  266. data/share/sample/ruby-1.9.3-p0/adlint/ext-bigdecimal/GNUmakefile +131 -0
  267. data/share/sample/ruby-1.9.3-p0/adlint/ext-bigdecimal/adlint_cinit.h +228 -0
  268. data/share/sample/ruby-1.9.3-p0/adlint/ext-bigdecimal/adlint_pinit.h +24 -0
  269. data/share/sample/ruby-1.9.3-p0/adlint/ext-bigdecimal/adlint_traits.yml +241 -0
  270. data/share/sample/ruby-1.9.3-p0/adlint/ext-continuation/GNUmakefile +131 -0
  271. data/share/sample/ruby-1.9.3-p0/adlint/ext-continuation/adlint_cinit.h +228 -0
  272. data/share/sample/ruby-1.9.3-p0/adlint/ext-continuation/adlint_pinit.h +24 -0
  273. data/share/sample/ruby-1.9.3-p0/adlint/ext-continuation/adlint_traits.yml +241 -0
  274. data/share/sample/ruby-1.9.3-p0/adlint/ext-coverage/GNUmakefile +131 -0
  275. data/share/sample/ruby-1.9.3-p0/adlint/ext-coverage/adlint_cinit.h +228 -0
  276. data/share/sample/ruby-1.9.3-p0/adlint/ext-coverage/adlint_pinit.h +24 -0
  277. data/share/sample/ruby-1.9.3-p0/adlint/ext-coverage/adlint_traits.yml +241 -0
  278. data/share/sample/ruby-1.9.3-p0/adlint/ext-curses/GNUmakefile +131 -0
  279. data/share/sample/ruby-1.9.3-p0/adlint/ext-curses/adlint_cinit.h +228 -0
  280. data/share/sample/ruby-1.9.3-p0/adlint/ext-curses/adlint_pinit.h +24 -0
  281. data/share/sample/ruby-1.9.3-p0/adlint/ext-curses/adlint_traits.yml +241 -0
  282. data/share/sample/ruby-1.9.3-p0/adlint/ext-date/GNUmakefile +134 -0
  283. data/share/sample/ruby-1.9.3-p0/adlint/ext-date/adlint_cinit.h +228 -0
  284. data/share/sample/ruby-1.9.3-p0/adlint/ext-date/adlint_pinit.h +24 -0
  285. data/share/sample/ruby-1.9.3-p0/adlint/ext-date/adlint_traits.yml +241 -0
  286. data/share/sample/ruby-1.9.3-p0/adlint/ext-dbm/GNUmakefile +131 -0
  287. data/share/sample/ruby-1.9.3-p0/adlint/ext-dbm/adlint_cinit.h +228 -0
  288. data/share/sample/ruby-1.9.3-p0/adlint/ext-dbm/adlint_pinit.h +24 -0
  289. data/share/sample/ruby-1.9.3-p0/adlint/ext-dbm/adlint_traits.yml +241 -0
  290. data/share/sample/ruby-1.9.3-p0/adlint/ext-digest/GNUmakefile +131 -0
  291. data/share/sample/ruby-1.9.3-p0/adlint/ext-digest/adlint_cinit.h +228 -0
  292. data/share/sample/ruby-1.9.3-p0/adlint/ext-digest/adlint_pinit.h +24 -0
  293. data/share/sample/ruby-1.9.3-p0/adlint/ext-digest/adlint_traits.yml +241 -0
  294. data/share/sample/ruby-1.9.3-p0/adlint/ext-digest-bubblebabble/GNUmakefile +131 -0
  295. data/share/sample/ruby-1.9.3-p0/adlint/ext-digest-bubblebabble/adlint_cinit.h +228 -0
  296. data/share/sample/ruby-1.9.3-p0/adlint/ext-digest-bubblebabble/adlint_pinit.h +24 -0
  297. data/share/sample/ruby-1.9.3-p0/adlint/ext-digest-bubblebabble/adlint_traits.yml +242 -0
  298. data/share/sample/ruby-1.9.3-p0/adlint/ext-digest-md5/GNUmakefile +132 -0
  299. data/share/sample/ruby-1.9.3-p0/adlint/ext-digest-md5/adlint_cinit.h +228 -0
  300. data/share/sample/ruby-1.9.3-p0/adlint/ext-digest-md5/adlint_pinit.h +24 -0
  301. data/share/sample/ruby-1.9.3-p0/adlint/ext-digest-md5/adlint_traits.yml +242 -0
  302. data/share/sample/ruby-1.9.3-p0/adlint/ext-digest-rmd160/GNUmakefile +132 -0
  303. data/share/sample/ruby-1.9.3-p0/adlint/ext-digest-rmd160/adlint_cinit.h +228 -0
  304. data/share/sample/ruby-1.9.3-p0/adlint/ext-digest-rmd160/adlint_pinit.h +24 -0
  305. data/share/sample/ruby-1.9.3-p0/adlint/ext-digest-rmd160/adlint_traits.yml +242 -0
  306. data/share/sample/ruby-1.9.3-p0/adlint/ext-digest-sha1/GNUmakefile +132 -0
  307. data/share/sample/ruby-1.9.3-p0/adlint/ext-digest-sha1/adlint_cinit.h +228 -0
  308. data/share/sample/ruby-1.9.3-p0/adlint/ext-digest-sha1/adlint_pinit.h +24 -0
  309. data/share/sample/ruby-1.9.3-p0/adlint/ext-digest-sha1/adlint_traits.yml +242 -0
  310. data/share/sample/ruby-1.9.3-p0/adlint/ext-digest-sha2/GNUmakefile +132 -0
  311. data/share/sample/ruby-1.9.3-p0/adlint/ext-digest-sha2/adlint_cinit.h +228 -0
  312. data/share/sample/ruby-1.9.3-p0/adlint/ext-digest-sha2/adlint_pinit.h +24 -0
  313. data/share/sample/ruby-1.9.3-p0/adlint/ext-digest-sha2/adlint_traits.yml +242 -0
  314. data/share/sample/ruby-1.9.3-p0/adlint/ext-dl/GNUmakefile +134 -0
  315. data/share/sample/ruby-1.9.3-p0/adlint/ext-dl/adlint_cinit.h +228 -0
  316. data/share/sample/ruby-1.9.3-p0/adlint/ext-dl/adlint_pinit.h +24 -0
  317. data/share/sample/ruby-1.9.3-p0/adlint/ext-dl/adlint_traits.yml +241 -0
  318. data/share/sample/ruby-1.9.3-p0/adlint/ext-dl-callback/GNUmakefile +140 -0
  319. data/share/sample/ruby-1.9.3-p0/adlint/ext-dl-callback/adlint_cinit.h +228 -0
  320. data/share/sample/ruby-1.9.3-p0/adlint/ext-dl-callback/adlint_pinit.h +24 -0
  321. data/share/sample/ruby-1.9.3-p0/adlint/ext-dl-callback/adlint_traits.yml +242 -0
  322. data/share/sample/ruby-1.9.3-p0/adlint/ext-etc/GNUmakefile +131 -0
  323. data/share/sample/ruby-1.9.3-p0/adlint/ext-etc/adlint_cinit.h +228 -0
  324. data/share/sample/ruby-1.9.3-p0/adlint/ext-etc/adlint_pinit.h +24 -0
  325. data/share/sample/ruby-1.9.3-p0/adlint/ext-etc/adlint_traits.yml +241 -0
  326. data/share/sample/ruby-1.9.3-p0/adlint/ext-fcntl/GNUmakefile +131 -0
  327. data/share/sample/ruby-1.9.3-p0/adlint/ext-fcntl/adlint_cinit.h +228 -0
  328. data/share/sample/ruby-1.9.3-p0/adlint/ext-fcntl/adlint_pinit.h +24 -0
  329. data/share/sample/ruby-1.9.3-p0/adlint/ext-fcntl/adlint_traits.yml +241 -0
  330. data/share/sample/ruby-1.9.3-p0/adlint/ext-fiber/GNUmakefile +131 -0
  331. data/share/sample/ruby-1.9.3-p0/adlint/ext-fiber/adlint_cinit.h +228 -0
  332. data/share/sample/ruby-1.9.3-p0/adlint/ext-fiber/adlint_pinit.h +24 -0
  333. data/share/sample/ruby-1.9.3-p0/adlint/ext-fiber/adlint_traits.yml +241 -0
  334. data/share/sample/ruby-1.9.3-p0/adlint/ext-fiddle/GNUmakefile +134 -0
  335. data/share/sample/ruby-1.9.3-p0/adlint/ext-fiddle/adlint_cinit.h +228 -0
  336. data/share/sample/ruby-1.9.3-p0/adlint/ext-fiddle/adlint_pinit.h +24 -0
  337. data/share/sample/ruby-1.9.3-p0/adlint/ext-fiddle/adlint_traits.yml +242 -0
  338. data/share/sample/ruby-1.9.3-p0/adlint/ext-gdbm/GNUmakefile +131 -0
  339. data/share/sample/ruby-1.9.3-p0/adlint/ext-gdbm/adlint_cinit.h +228 -0
  340. data/share/sample/ruby-1.9.3-p0/adlint/ext-gdbm/adlint_pinit.h +24 -0
  341. data/share/sample/ruby-1.9.3-p0/adlint/ext-gdbm/adlint_traits.yml +241 -0
  342. data/share/sample/ruby-1.9.3-p0/adlint/ext-iconv/GNUmakefile +131 -0
  343. data/share/sample/ruby-1.9.3-p0/adlint/ext-iconv/adlint_cinit.h +228 -0
  344. data/share/sample/ruby-1.9.3-p0/adlint/ext-iconv/adlint_pinit.h +24 -0
  345. data/share/sample/ruby-1.9.3-p0/adlint/ext-iconv/adlint_traits.yml +241 -0
  346. data/share/sample/ruby-1.9.3-p0/adlint/ext-io-console/GNUmakefile +131 -0
  347. data/share/sample/ruby-1.9.3-p0/adlint/ext-io-console/adlint_cinit.h +228 -0
  348. data/share/sample/ruby-1.9.3-p0/adlint/ext-io-console/adlint_pinit.h +24 -0
  349. data/share/sample/ruby-1.9.3-p0/adlint/ext-io-console/adlint_traits.yml +241 -0
  350. data/share/sample/ruby-1.9.3-p0/adlint/ext-io-nonblock/GNUmakefile +131 -0
  351. data/share/sample/ruby-1.9.3-p0/adlint/ext-io-nonblock/adlint_cinit.h +228 -0
  352. data/share/sample/ruby-1.9.3-p0/adlint/ext-io-nonblock/adlint_pinit.h +24 -0
  353. data/share/sample/ruby-1.9.3-p0/adlint/ext-io-nonblock/adlint_traits.yml +241 -0
  354. data/share/sample/ruby-1.9.3-p0/adlint/ext-io-wait/GNUmakefile +131 -0
  355. data/share/sample/ruby-1.9.3-p0/adlint/ext-io-wait/adlint_cinit.h +228 -0
  356. data/share/sample/ruby-1.9.3-p0/adlint/ext-io-wait/adlint_pinit.h +24 -0
  357. data/share/sample/ruby-1.9.3-p0/adlint/ext-io-wait/adlint_traits.yml +241 -0
  358. data/share/sample/ruby-1.9.3-p0/adlint/ext-json-generator/GNUmakefile +131 -0
  359. data/share/sample/ruby-1.9.3-p0/adlint/ext-json-generator/adlint_cinit.h +228 -0
  360. data/share/sample/ruby-1.9.3-p0/adlint/ext-json-generator/adlint_pinit.h +24 -0
  361. data/share/sample/ruby-1.9.3-p0/adlint/ext-json-generator/adlint_traits.yml +241 -0
  362. data/share/sample/ruby-1.9.3-p0/adlint/ext-json-parser/GNUmakefile +131 -0
  363. data/share/sample/ruby-1.9.3-p0/adlint/ext-json-parser/adlint_cinit.h +228 -0
  364. data/share/sample/ruby-1.9.3-p0/adlint/ext-json-parser/adlint_pinit.h +24 -0
  365. data/share/sample/ruby-1.9.3-p0/adlint/ext-json-parser/adlint_traits.yml +241 -0
  366. data/share/sample/ruby-1.9.3-p0/adlint/ext-mathn-complex/GNUmakefile +131 -0
  367. data/share/sample/ruby-1.9.3-p0/adlint/ext-mathn-complex/adlint_cinit.h +228 -0
  368. data/share/sample/ruby-1.9.3-p0/adlint/ext-mathn-complex/adlint_pinit.h +24 -0
  369. data/share/sample/ruby-1.9.3-p0/adlint/ext-mathn-complex/adlint_traits.yml +241 -0
  370. data/share/sample/ruby-1.9.3-p0/adlint/ext-mathn-rational/GNUmakefile +131 -0
  371. data/share/sample/ruby-1.9.3-p0/adlint/ext-mathn-rational/adlint_cinit.h +228 -0
  372. data/share/sample/ruby-1.9.3-p0/adlint/ext-mathn-rational/adlint_pinit.h +24 -0
  373. data/share/sample/ruby-1.9.3-p0/adlint/ext-mathn-rational/adlint_traits.yml +241 -0
  374. data/share/sample/ruby-1.9.3-p0/adlint/ext-nkf/GNUmakefile +131 -0
  375. data/share/sample/ruby-1.9.3-p0/adlint/ext-nkf/adlint_cinit.h +228 -0
  376. data/share/sample/ruby-1.9.3-p0/adlint/ext-nkf/adlint_pinit.h +24 -0
  377. data/share/sample/ruby-1.9.3-p0/adlint/ext-nkf/adlint_traits.yml +241 -0
  378. data/share/sample/ruby-1.9.3-p0/adlint/ext-openssl/GNUmakefile +162 -0
  379. data/share/sample/ruby-1.9.3-p0/adlint/ext-openssl/adlint_cinit.h +228 -0
  380. data/share/sample/ruby-1.9.3-p0/adlint/ext-openssl/adlint_pinit.h +24 -0
  381. data/share/sample/ruby-1.9.3-p0/adlint/ext-openssl/adlint_traits.yml +241 -0
  382. data/share/sample/ruby-1.9.3-p0/adlint/ext-pathname/GNUmakefile +131 -0
  383. data/share/sample/ruby-1.9.3-p0/adlint/ext-pathname/adlint_cinit.h +228 -0
  384. data/share/sample/ruby-1.9.3-p0/adlint/ext-pathname/adlint_pinit.h +24 -0
  385. data/share/sample/ruby-1.9.3-p0/adlint/ext-pathname/adlint_traits.yml +241 -0
  386. data/share/sample/ruby-1.9.3-p0/adlint/ext-psych/GNUmakefile +135 -0
  387. data/share/sample/ruby-1.9.3-p0/adlint/ext-psych/adlint_cinit.h +228 -0
  388. data/share/sample/ruby-1.9.3-p0/adlint/ext-psych/adlint_pinit.h +24 -0
  389. data/share/sample/ruby-1.9.3-p0/adlint/ext-psych/adlint_traits.yml +241 -0
  390. data/share/sample/ruby-1.9.3-p0/adlint/ext-pty/GNUmakefile +131 -0
  391. data/share/sample/ruby-1.9.3-p0/adlint/ext-pty/adlint_cinit.h +228 -0
  392. data/share/sample/ruby-1.9.3-p0/adlint/ext-pty/adlint_pinit.h +24 -0
  393. data/share/sample/ruby-1.9.3-p0/adlint/ext-pty/adlint_traits.yml +241 -0
  394. data/share/sample/ruby-1.9.3-p0/adlint/ext-racc-cparse/GNUmakefile +131 -0
  395. data/share/sample/ruby-1.9.3-p0/adlint/ext-racc-cparse/adlint_cinit.h +228 -0
  396. data/share/sample/ruby-1.9.3-p0/adlint/ext-racc-cparse/adlint_pinit.h +24 -0
  397. data/share/sample/ruby-1.9.3-p0/adlint/ext-racc-cparse/adlint_traits.yml +241 -0
  398. data/share/sample/ruby-1.9.3-p0/adlint/ext-readline/GNUmakefile +131 -0
  399. data/share/sample/ruby-1.9.3-p0/adlint/ext-readline/adlint_cinit.h +228 -0
  400. data/share/sample/ruby-1.9.3-p0/adlint/ext-readline/adlint_pinit.h +24 -0
  401. data/share/sample/ruby-1.9.3-p0/adlint/ext-readline/adlint_traits.yml +241 -0
  402. data/share/sample/ruby-1.9.3-p0/adlint/ext-ripper/GNUmakefile +131 -0
  403. data/share/sample/ruby-1.9.3-p0/adlint/ext-ripper/adlint_cinit.h +228 -0
  404. data/share/sample/ruby-1.9.3-p0/adlint/ext-ripper/adlint_pinit.h +24 -0
  405. data/share/sample/ruby-1.9.3-p0/adlint/ext-ripper/adlint_traits.yml +241 -0
  406. data/share/sample/ruby-1.9.3-p0/adlint/ext-sdbm/GNUmakefile +132 -0
  407. data/share/sample/ruby-1.9.3-p0/adlint/ext-sdbm/adlint_cinit.h +228 -0
  408. data/share/sample/ruby-1.9.3-p0/adlint/ext-sdbm/adlint_pinit.h +24 -0
  409. data/share/sample/ruby-1.9.3-p0/adlint/ext-sdbm/adlint_traits.yml +241 -0
  410. data/share/sample/ruby-1.9.3-p0/adlint/ext-socket/GNUmakefile +144 -0
  411. data/share/sample/ruby-1.9.3-p0/adlint/ext-socket/adlint_cinit.h +228 -0
  412. data/share/sample/ruby-1.9.3-p0/adlint/ext-socket/adlint_pinit.h +24 -0
  413. data/share/sample/ruby-1.9.3-p0/adlint/ext-socket/adlint_traits.yml +241 -0
  414. data/share/sample/ruby-1.9.3-p0/adlint/ext-stringio/GNUmakefile +131 -0
  415. data/share/sample/ruby-1.9.3-p0/adlint/ext-stringio/adlint_cinit.h +228 -0
  416. data/share/sample/ruby-1.9.3-p0/adlint/ext-stringio/adlint_pinit.h +24 -0
  417. data/share/sample/ruby-1.9.3-p0/adlint/ext-stringio/adlint_traits.yml +241 -0
  418. data/share/sample/ruby-1.9.3-p0/adlint/ext-strscan/GNUmakefile +131 -0
  419. data/share/sample/ruby-1.9.3-p0/adlint/ext-strscan/adlint_cinit.h +228 -0
  420. data/share/sample/ruby-1.9.3-p0/adlint/ext-strscan/adlint_pinit.h +24 -0
  421. data/share/sample/ruby-1.9.3-p0/adlint/ext-strscan/adlint_traits.yml +241 -0
  422. data/share/sample/ruby-1.9.3-p0/adlint/ext-syck/GNUmakefile +140 -0
  423. data/share/sample/ruby-1.9.3-p0/adlint/ext-syck/adlint_cinit.h +228 -0
  424. data/share/sample/ruby-1.9.3-p0/adlint/ext-syck/adlint_pinit.h +24 -0
  425. data/share/sample/ruby-1.9.3-p0/adlint/ext-syck/adlint_traits.yml +241 -0
  426. data/share/sample/ruby-1.9.3-p0/adlint/ext-syslog/GNUmakefile +131 -0
  427. data/share/sample/ruby-1.9.3-p0/adlint/ext-syslog/adlint_cinit.h +228 -0
  428. data/share/sample/ruby-1.9.3-p0/adlint/ext-syslog/adlint_pinit.h +24 -0
  429. data/share/sample/ruby-1.9.3-p0/adlint/ext-syslog/adlint_traits.yml +241 -0
  430. data/share/sample/ruby-1.9.3-p0/adlint/ext-zlib/GNUmakefile +131 -0
  431. data/share/sample/ruby-1.9.3-p0/adlint/ext-zlib/adlint_cinit.h +228 -0
  432. data/share/sample/ruby-1.9.3-p0/adlint/ext-zlib/adlint_pinit.h +24 -0
  433. data/share/sample/ruby-1.9.3-p0/adlint/ext-zlib/adlint_traits.yml +241 -0
  434. data/share/sample/screen-4.0.3/adlint/GNUmakefile +162 -0
  435. data/share/sample/screen-4.0.3/adlint/adlint_cinit.h +228 -0
  436. data/share/sample/screen-4.0.3/adlint/adlint_pinit.h +21 -0
  437. data/share/sample/screen-4.0.3/adlint/adlint_traits.yml +238 -0
  438. data/share/sample/vim-7.3/adlint/vim/GNUmakefile +185 -0
  439. data/share/sample/vim-7.3/adlint/vim/adlint_cinit.h +228 -0
  440. data/share/sample/vim-7.3/adlint/vim/adlint_pinit.h +25 -0
  441. data/share/sample/vim-7.3/adlint/vim/adlint_traits.yml +250 -0
  442. data/share/sample/vim-7.3/adlint/xxd/GNUmakefile +131 -0
  443. data/share/sample/vim-7.3/adlint/xxd/adlint_cinit.h +228 -0
  444. data/share/sample/vim-7.3/adlint/xxd/adlint_pinit.h +24 -0
  445. data/share/sample/vim-7.3/adlint/xxd/adlint_traits.yml +237 -0
  446. data/share/sample/zsh-4.3.15/adlint/GNUmakefile +146 -0
  447. data/share/sample/zsh-4.3.15/adlint/adlint_traits.yml +225 -0
  448. data/share/sample/zsh-4.3.15/adlint/builtins/GNUmakefile +132 -0
  449. data/share/sample/zsh-4.3.15/adlint/builtins/adlint_cinit.h +228 -0
  450. data/share/sample/zsh-4.3.15/adlint/builtins/adlint_pinit.h +24 -0
  451. data/share/sample/zsh-4.3.15/adlint/builtins/adlint_traits.yml +240 -0
  452. data/share/sample/zsh-4.3.15/adlint/core/GNUmakefile +153 -0
  453. data/share/sample/zsh-4.3.15/adlint/core/adlint_cinit.h +228 -0
  454. data/share/sample/zsh-4.3.15/adlint/core/adlint_pinit.h +23 -0
  455. data/share/sample/zsh-4.3.15/adlint/core/adlint_traits.yml +239 -0
  456. data/share/sample/zsh-4.3.15/adlint/modules/GNUmakefile +147 -0
  457. data/share/sample/zsh-4.3.15/adlint/modules/adlint_cinit.h +228 -0
  458. data/share/sample/zsh-4.3.15/adlint/modules/adlint_pinit.h +24 -0
  459. data/share/sample/zsh-4.3.15/adlint/modules/adlint_traits.yml +240 -0
  460. data/share/sample/zsh-4.3.15/adlint/zle/GNUmakefile +144 -0
  461. data/share/sample/zsh-4.3.15/adlint/zle/adlint_cinit.h +228 -0
  462. data/share/sample/zsh-4.3.15/adlint/zle/adlint_pinit.h +24 -0
  463. data/share/sample/zsh-4.3.15/adlint/zle/adlint_traits.yml +239 -0
  464. data/spec/MUST_WRITE_SPECS_WITH_RSPEC +0 -0
  465. metadata +532 -0
@@ -0,0 +1,110 @@
1
+ DIRS = \
2
+ ambig_operator \
3
+ arg_points_unset \
4
+ array_range \
5
+ bad_bitfields \
6
+ bad_brace \
7
+ bad_charset \
8
+ bad_comment \
9
+ bad_const \
10
+ bad_conv \
11
+ bad_indent \
12
+ bad_init \
13
+ bad_macro \
14
+ bitwise_expr \
15
+ call_by_value \
16
+ cross_ref \
17
+ dangling_else \
18
+ dead_code \
19
+ deep_nest \
20
+ dense_switch \
21
+ direct_recur \
22
+ div_by_zero \
23
+ dos_source \
24
+ funptr_cast \
25
+ goto_stmt \
26
+ id_hiding \
27
+ ill_defined \
28
+ implicit_int \
29
+ implicit_conv \
30
+ incomplete_type \
31
+ indirect_recur \
32
+ intro_demo \
33
+ invalid_call \
34
+ kandr_fundef \
35
+ line_comment \
36
+ local_decl \
37
+ logical_trick \
38
+ long_sym \
39
+ loop_var \
40
+ malloc_or_die \
41
+ may_be_null \
42
+ may_be_null_arith \
43
+ may_be_unset \
44
+ mmapped_io \
45
+ multi_break \
46
+ multi_decl \
47
+ multi_def \
48
+ multi_typedef \
49
+ must_be_false \
50
+ must_be_null \
51
+ must_be_null_arith \
52
+ must_be_true \
53
+ no_eof_nl \
54
+ no_void_arg \
55
+ null_stmt \
56
+ octal_const \
57
+ output_by_param \
58
+ overflow \
59
+ press_release \
60
+ retn_lvar_addr \
61
+ shift_expr \
62
+ should_be_typedef \
63
+ static_paths \
64
+ static_vars \
65
+ tag_hiding \
66
+ tricky_incdec \
67
+ undefined_macro \
68
+ uninit_vars \
69
+ union_type \
70
+ unmatch_decl \
71
+ unmatch_paren_macro \
72
+ unreachable \
73
+ useless_exp_funs \
74
+ useless_exp_vars \
75
+ useless_expr \
76
+ useless_funs \
77
+ useless_header \
78
+ useless_vars \
79
+ va_funcall \
80
+ various_fundef \
81
+ wchar_wstring \
82
+ wrap_around
83
+
84
+ .PHONY: adlintize
85
+ adlintize:
86
+ @for i in $(DIRS); do (\
87
+ cd $$i; \
88
+ if [ ! -d adlint ]; then \
89
+ adlintize -o adlint; \
90
+ fi \
91
+ ) done
92
+
93
+ .PHONY: all
94
+ all : adlintize
95
+ @for i in $(DIRS); do (\
96
+ cd $$i/adlint; \
97
+ make all 2>/dev/null; \
98
+ ) done
99
+
100
+ .PHONY: verbose-all
101
+ verbose-all : adlintize
102
+ @for i in $(DIRS); do (\
103
+ cd $$i/adlint; \
104
+ make verbose-all; \
105
+ ) done
106
+
107
+ .PHONY: clean
108
+ clean :
109
+ @-for i in $(DIRS); do ( cd $$i/adlint && make clean; ) done
110
+ @for i in $(DIRS); do ( rm -rf $$i/adlint; ) done
@@ -0,0 +1,289 @@
1
+ extern int foo(int);
2
+
3
+ void bar1(void)
4
+ {
5
+ const int i = 1;
6
+ const int j = 2;
7
+ const int k = 3;
8
+ const int * const p = &i;
9
+ int r;
10
+
11
+ r = i + j % k;
12
+ r = i % j % k;
13
+ r = i % j * k;
14
+ r = i * j % k;
15
+
16
+ r = foo(i + j % k);
17
+ r = foo(i + j % foo(i + j % k));
18
+
19
+ r = i << j >> k;
20
+ r = i < j > k;
21
+ r = i == j != k;
22
+
23
+ r = i + j * k;
24
+ r = i / j - k;
25
+
26
+ r = i ? j : k;
27
+ r = -i ? j : k;
28
+ r = i ? -j : k;
29
+
30
+ r = i > j ? j : k;
31
+ r = i + j ? j : k;
32
+ r = i ? j + k : k;
33
+ r = i ? j : j + k;
34
+
35
+ r = i + j >> k;
36
+ r = i < j + k;
37
+ r = i & j != k;
38
+
39
+ i && -j;
40
+
41
+ r = i && ~j;
42
+ r = !i || j;
43
+ r = *p || j;
44
+ r = i && (unsigned int) j;
45
+
46
+ r = i && j && k;
47
+ r = i || j || k;
48
+ r = i || j && i;
49
+ r = i > j && k;
50
+ r = i && j != k;
51
+
52
+ r = i ? j : k ? i : j;
53
+ r = i ? j ? k : j : i;
54
+
55
+ r = i <= j <= k;
56
+ r = i == j == k;
57
+ r = i << j << k;
58
+ }
59
+
60
+ void bar2(void)
61
+ {
62
+ const int i = 1;
63
+ const int j = 2;
64
+ const int k = 3;
65
+ const int * const p = &i;
66
+ int r;
67
+
68
+ r = i + (j % k);
69
+ r = (i % j) % k;
70
+ r = (i % j) * k;
71
+ r = (i * j) % k;
72
+
73
+ r = foo(i + (j % k));
74
+ r = foo(i + (j % foo(i + (j % k))));
75
+
76
+ r = (i << j) >> k;
77
+ r = (i < j) > k;
78
+ r = (i == j) != k;
79
+
80
+ r = i + (j * k);
81
+ r = (i / j) - k;
82
+
83
+ r = (i > j) ? j : k;
84
+ r = (i + j) ? j : k;
85
+ r = i ? (j + k) : k;
86
+ r = i ? j : (j + k);
87
+
88
+ r = (i + j) >> k;
89
+ r = i < (j + k);
90
+ r = i & (j != k);
91
+
92
+ r = i && (~j);
93
+ r = (!i) || j;
94
+ r = (*p) || j;
95
+ r = i && ((unsigned int) j);
96
+
97
+ r = (i || j) && i;
98
+ r = (i > j) && k;
99
+ r = i && (j != k);
100
+
101
+ r = i ? j : (k ? i : j);
102
+ r = i ? (j ? k : j) : i;
103
+
104
+ r = (i <= j) <= k;
105
+ r = (i == j) == k;
106
+ r = (i << j) << k;
107
+ }
108
+
109
+ void baz1(void)
110
+ {
111
+ const int i = 1;
112
+ const int j = 2;
113
+ const int k = 3;
114
+ const int * const p = &i;
115
+
116
+ { const int r = i + j % k; }
117
+ { const int r = i % j % k; }
118
+ { const int r = i % j * k; }
119
+ { const int r = i * j % k; }
120
+
121
+ { const int r = foo(i + j % k); }
122
+ { const int r = foo(i + j % foo(i + j % k)); }
123
+
124
+ { const int r = i << j >> k; }
125
+ { const int r = i < j > k; }
126
+ { const int r = i == j != k; }
127
+
128
+ { const int r = i + j * k; }
129
+ { const int r = i / j - k; }
130
+
131
+ { const int r = i ? j : k; }
132
+ { const int r = -i ? j : k; }
133
+ { const int r = i ? -j : k; }
134
+
135
+ { const int r = i > j ? j : k; }
136
+ { const int r = i + j ? j : k; }
137
+ { const int r = i ? j + k : k; }
138
+ { const int r = i ? j : j + k; }
139
+
140
+ { const int r = i + j >> k; }
141
+ { const int r = i < j + k; }
142
+ { const int r = i & j != k; }
143
+
144
+ { const int r = i && ~j; }
145
+ { const int r = !i || j; }
146
+ { const int r = *p || j; }
147
+ { const int r = i && (unsigned int) j; }
148
+
149
+ { const int r = i && j && k; }
150
+ { const int r = i || j || k; }
151
+ { const int r = i || j && i; }
152
+ { const int r = i > j && k; }
153
+ { const int r = i && j != k; }
154
+
155
+ { const int r = i ? j : k ? i : j; }
156
+ { const int r = i ? j ? k : j : i; }
157
+
158
+ { const int r = i <= j <= k; }
159
+ { const int r = i == j == k; }
160
+ { const int r = i << j << k; }
161
+ }
162
+
163
+ void baz2(void)
164
+ {
165
+ const int i = 1;
166
+ const int j = 2;
167
+ const int k = 3;
168
+ const int * const p = &i;
169
+
170
+ { const int r = i + (j % k); }
171
+ { const int r = (i % j) % k; }
172
+ { const int r = (i % j) * k; }
173
+ { const int r = (i * j) % k; }
174
+
175
+ { const int r = foo(i + (j % k)); }
176
+ { const int r = foo(i + (j % foo(i + (j % k)))); }
177
+
178
+ { const int r = (i << j) >> k; }
179
+ { const int r = (i < j) > k; }
180
+ { const int r = (i == j) != k; }
181
+
182
+ { const int r = i + (j * k); }
183
+ { const int r = (i / j) - k; }
184
+
185
+ { const int r = (i > j) ? j : k; }
186
+ { const int r = (i + j) ? j : k; }
187
+ { const int r = i ? (j + k) : k; }
188
+ { const int r = i ? j : (j + k); }
189
+
190
+ { const int r = (i + j) >> k; }
191
+ { const int r = i < (j + k); }
192
+ { const int r = i & (j != k); }
193
+
194
+ { const int r = i && (~j); }
195
+ { const int r = (!i) || j; }
196
+ { const int r = (*p) || j; }
197
+ { const int r = i && ((unsigned int) j); }
198
+
199
+ { const int r = (i || j) && i; }
200
+ { const int r = (i > j) && k; }
201
+ { const int r = i && (j != k); }
202
+
203
+ { const int r = i ? j : (k ? i : j); }
204
+ { const int r = i ? (j ? k : j) : i; }
205
+
206
+ { const int r = (i <= j) <= k; }
207
+ { const int r = (i == j) == k; }
208
+ { const int r = (i << j) << k; }
209
+ }
210
+
211
+ void qux1(void)
212
+ {
213
+ const int i = 1;
214
+ const int j = 2;
215
+ const int a[5] = {0};
216
+ const struct { int m; } s = {0}, * const p = &s;
217
+ int r;
218
+
219
+ r = a[i] && j;
220
+ r = foo(i) || j;
221
+ r = p->m && i;
222
+ r = s.m || i;
223
+ }
224
+
225
+ void qux2(void)
226
+ {
227
+ const int i = 1;
228
+ const int j = 2;
229
+ const int a[5] = {0};
230
+ const struct { int m; } s = {0}, * const p = &s;
231
+ int r;
232
+
233
+ r = (a[i]) && j;
234
+ r = (foo(i)) || j;
235
+ r = (p->m) && i;
236
+ r = (s.m) || i;
237
+ }
238
+
239
+ void quux1(void)
240
+ {
241
+ const int i = 1;
242
+ const int j = 2;
243
+ const int a[5] = {0};
244
+ const struct { int m; } s = {0}, * const p = &s;
245
+
246
+ { const int r = a[i] && j; }
247
+ { const int r = foo(i) || j; }
248
+ { const int r = p->m && i; }
249
+ { const int r = s.m || i; }
250
+ }
251
+
252
+ void quux2(void)
253
+ {
254
+ const int i = 1;
255
+ const int j = 2;
256
+ const int a[5] = {0};
257
+ const struct { int m; } s = {0}, * const p = &s;
258
+
259
+ { const int r = (a[i]) && j; }
260
+ { const int r = (foo(i)) || j; }
261
+ { const int r = (p->m) && i; }
262
+ { const int r = (s.m) || i; }
263
+ }
264
+
265
+ void foobar1(void)
266
+ {
267
+ const int i = 1;
268
+ const int j = 2;
269
+ const int k = 3;
270
+ int r;
271
+
272
+ r = i * j / k;
273
+ r = i / j * k;
274
+ r = i + j - k;
275
+ r = i - j + k;
276
+ }
277
+
278
+ void foobar2(void)
279
+ {
280
+ const int i = 1;
281
+ const int j = 2;
282
+ const int k = 3;
283
+ int r;
284
+
285
+ r = (i * j) / k;
286
+ r = (i / j) * k;
287
+ r = (i + j) - k;
288
+ r = (i - j) + k;
289
+ }
@@ -0,0 +1,37 @@
1
+ extern int printf(const char *, ...);
2
+ extern int rand(void);
3
+
4
+ static void foo(const int *p) { }
5
+
6
+ static void bar(char *str, const long *p)
7
+ {
8
+ printf(str, *p);
9
+ }
10
+
11
+ static void baz(void)
12
+ {
13
+ int i;
14
+
15
+ for (int j = 0; j < rand(); ++j) {
16
+ i = 0;
17
+ }
18
+
19
+ foo(&i);
20
+ }
21
+
22
+ int main(void)
23
+ {
24
+ int i;
25
+ long l;
26
+
27
+ foo(&i);
28
+ bar("%l", &l);
29
+
30
+ if (rand() == 0) {
31
+ i = 1;
32
+ }
33
+
34
+ foo(&i);
35
+
36
+ return i;
37
+ }
@@ -0,0 +1,62 @@
1
+ static int foo(const int i)
2
+ {
3
+ int array[10] = { 0 };
4
+ int j;
5
+
6
+ j = array[5];
7
+ j = array[10];
8
+
9
+ if (i < 5) {
10
+ j = array[i];
11
+ }
12
+
13
+ if (i > 5) {
14
+ j = array[i];
15
+ }
16
+
17
+ if (i < 0) {
18
+ j = array[i];
19
+ }
20
+
21
+ if (i > 9) {
22
+ j = array[i];
23
+ }
24
+
25
+ j = array[i];
26
+
27
+
28
+ for (j = 0; j < 10; j++) {
29
+ array[j] = 0;
30
+ array[j + 1] = 0;
31
+ if (j == 10) {
32
+ break;
33
+ }
34
+ if (j < 0) {
35
+ break;
36
+ }
37
+ }
38
+
39
+ for (j = 9; j >= 0; j--) {
40
+ array[j] = 0;
41
+ array[j - 1] = 0;
42
+ if (j < 0) {
43
+ break;
44
+ }
45
+ if (j > 9) {
46
+ break;
47
+ }
48
+ }
49
+
50
+ for (j = 0; j != 10; j++) {
51
+ array[j] = 0;
52
+ array[j + 1] = 0;
53
+ if (j == 10) {
54
+ break;
55
+ }
56
+ if (j < 0) {
57
+ break;
58
+ }
59
+ }
60
+
61
+ return j;
62
+ }
@@ -0,0 +1,74 @@
1
+ struct foo {
2
+ signed int b1:1;
3
+ signed int :1;
4
+ int b2:1;
5
+ int :1;
6
+ };
7
+
8
+ struct bar {
9
+ int a:5;
10
+ unsigned int b:4;
11
+ signed int c:3;
12
+ int d:4;
13
+ struct baz {
14
+ int a:5;
15
+ unsigned int b:4;
16
+ signed int c:3;
17
+ int d:4;
18
+ } baz;
19
+ };
20
+
21
+ enum color { R = 0, G, B };
22
+
23
+ struct hoge {
24
+ signed int a:3;
25
+ unsigned int b:4;
26
+ unsigned char c:6;
27
+ unsigned short d:5;
28
+ enum color e:2;
29
+ };
30
+
31
+ #define NBITS 3
32
+ enum { FOUR = 4 };
33
+
34
+ struct hage {
35
+ unsigned int a:1;
36
+ unsigned int b:2;
37
+ unsigned int c:NBITS;
38
+ unsigned int d:FOUR;
39
+ struct hage *p;
40
+ };
41
+
42
+ void foo()
43
+ {
44
+ struct foo f;
45
+ f.b1 = 0;
46
+ f.b1 = -1;
47
+ f.b1 = 1;
48
+ }
49
+
50
+ void bar()
51
+ {
52
+ const struct foo f;
53
+ const int i = sizeof(f.b1);
54
+ }
55
+
56
+ void baz()
57
+ {
58
+ const int i = { 0 };
59
+ const int a1[] = { { 0, 0, 0 } };
60
+ const int a2[][3] = { { 0, 0, 0 } };
61
+ const struct bar b1 = { 0, 0, 0, 0, { 0, 0, 0, 0 } };
62
+ const struct bar b2 = { { 0, 0, 0, 0, { 0, 0, 0, 0 } } };
63
+ const struct bar b3[] = { { 0, 0, 0, 0, { 0, 0, 0, 0 } } };
64
+
65
+ const int a3[4] = { 0 };
66
+ const int a4[4] = { 1, 2, 3, 4 };
67
+ const int a5[4] = { 1, 2, 3 };
68
+ const int aa1[3][3] = { { 0 }, { 1, 2, 3 }, { 4, 5, 6 } };
69
+ const int aa2[3][3] = { { 1 }, { 1, 2, 3 }, { 4, 5, 6 } };
70
+ const int aa3[3][3] = { { 0, 1 }, { 1, 2, 3 }, { 4, 5, 6 } };
71
+ const int aa4[3][3] = { { 0 + 1, 2 }, { 1, 2, 3 }, { 4, 5, 6 } };
72
+ const int aa5[3][3] = { { 1, 2, 3 } };
73
+ const int aa6[3][3] = { { { 0 } }, { 1, 2, 3 }, { 4, 5, 6 } };
74
+ }
@@ -0,0 +1,19 @@
1
+ int main(int argc, char *argv[])
2
+ {
3
+ if (argc < 2)
4
+ {
5
+ return 1;
6
+ }
7
+
8
+ if (argc > 2)
9
+ {
10
+ return 2;
11
+ }
12
+
13
+ if (argc == 2)
14
+ {
15
+ return 3;
16
+ }
17
+
18
+ return 0;
19
+ }
File without changes
@@ -0,0 +1,22 @@
1
+ #include <abcde$.h>
2
+ #include "abcde$.h"
3
+
4
+ #define FOO '@'
5
+ #define BAR abc$1
6
+ #define BAZ abc$2
7
+
8
+ /* 日本語 */
9
+ /* £ */
10
+ /* $ */
11
+ int main(void)
12
+ {
13
+ const unsigned char ch = '@';
14
+ const char * const str1 = "foo@bar";
15
+ const char * const str2 = "foo bar";
16
+ const char * const str3 = "foo`bar";
17
+
18
+ return 0;
19
+ }
20
+ /* 日本語 */
21
+ /* £ */
22
+ /* $ */
@@ -0,0 +1,3 @@
1
+ /* outer comment /* inner comment */
2
+
3
+ // C++ style line comment
@@ -0,0 +1,19 @@
1
+ #define MESG "hello world\n"
2
+ #define CHAR 'C'
3
+ #define SIZE (10)
4
+
5
+ extern void foo(void)
6
+ {
7
+ const unsigned int ui = 0x80000000;
8
+ const long l = 2147483648;
9
+ const int i = 50;
10
+ const char * const str = "hoge";
11
+ const char ch = 'A';
12
+ const int a1[3];
13
+ const int a2[3 + 1];
14
+ const int a3[SIZE];
15
+ const int a4[SIZE + 1];
16
+
17
+ puts(MESG);
18
+ printf("%c\n", CHAR);
19
+ }
@@ -0,0 +1,48 @@
1
+ extern int printf(const char *, ...);
2
+ extern int scanf(const char *, ...);
3
+
4
+ int main(void)
5
+ {
6
+ int i = 0;
7
+ int ii = 1;
8
+
9
+ printf();
10
+
11
+ printf("%509d\n", i);
12
+ printf("%510d\n", i);
13
+
14
+ printf("%3d %5t\n", i, ii);
15
+
16
+ printf("%3ld %xd\n", i);
17
+ printf("%3to %fo\n", i, ii, 0);
18
+ printf("%3tu %fu\n");
19
+ printf("%3tx %fx\n", i, ii);
20
+ printf("%3tX %fX\n", i, ii);
21
+ printf("%3lf %Lf\n", i, ii);
22
+ printf("%3le %Le\n", i, ii);
23
+ printf("%3lE %LE\n", i, ii);
24
+ printf("%3lg %Lg\n", i, ii);
25
+ printf("%3lG %LG\n", i, ii);
26
+ printf("%lc %Lc\n", i, ii);
27
+ printf("%%lc % %Z\n", i, ii);
28
+ printf("%ls %Ls\n", i, ii);
29
+ printf("%ln %Ln\n", i, ii);
30
+ printf("%p %lp\n", i, ii);
31
+ printf("%#x %#\n", i, ii);
32
+
33
+ scanf("%3d %5t\n", &i, &ii);
34
+
35
+ scanf("%3ld %xd\n", &i, &ii);
36
+ scanf("%3to %fo\n", i, &ii);
37
+ scanf("%3tu %fu\n", &i, ii);
38
+ scanf("%3tx %fx\n", &i, &ii);
39
+ scanf("%3tf %lf\n", &i, &ii);
40
+ scanf("%3lls %fs\n", &i, &ii);
41
+ scanf("%3p %lp\n", &i, &ii);
42
+ scanf("%%lc % %Z\n", &i, &ii);
43
+ scanf("%l[a-z] %ll[a-z]\n", &i, &ii);
44
+ scanf("%3llc %fc\n", &i, &ii);
45
+ scanf("%3llz %c\n", &i, &ii);
46
+
47
+ return 0;
48
+ }