adlint 2.6.14 → 3.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (401) hide show
  1. data/AUTHORS +1 -3
  2. data/ChangeLog +511 -0
  3. data/INSTALL +1 -1
  4. data/MANIFEST +57 -37
  5. data/NEWS +36 -7
  6. data/README +2 -2
  7. data/Rakefile +6 -6
  8. data/TODO +1 -1
  9. data/bin/adlint +25 -16
  10. data/bin/adlint_chk +22 -12
  11. data/bin/adlint_cma +17 -12
  12. data/bin/adlint_sma +22 -12
  13. data/bin/adlintize +98 -17
  14. data/etc/conf.d/fallback/cinit.erb +1 -1
  15. data/etc/conf.d/fallback/traits.erb +37 -37
  16. data/etc/conf.d/i686-cygwin/cinit-gcc_4.3.4.erb +1 -1
  17. data/etc/conf.d/i686-cygwin/traits-gcc_4.3.4.erb +41 -41
  18. data/etc/conf.d/i686-devkit/cinit-gcc_4.5.2.erb +1 -1
  19. data/etc/conf.d/i686-devkit/traits-gcc_4.5.2.erb +40 -40
  20. data/etc/conf.d/i686-linux/cinit-gcc_4.5.1.erb +1 -1
  21. data/etc/conf.d/i686-linux/traits-gcc_4.5.1.erb +40 -40
  22. data/etc/conf.d/i686-mingw/cinit-gcc_4.6.1.erb +1 -1
  23. data/etc/conf.d/i686-mingw/traits-gcc_4.6.1.erb +40 -40
  24. data/etc/conf.d/noarch/GNUmakefile.erb +1 -1
  25. data/etc/conf.d/noarch/adlint_all_bat.erb +1 -1
  26. data/etc/conf.d/noarch/adlint_all_sh.erb +1 -1
  27. data/etc/conf.d/noarch/pinit.erb +1 -1
  28. data/etc/conf.d/x86_64-ubuntu_12.04/cinit-gcc_4.6.3.erb +1 -1
  29. data/etc/conf.d/x86_64-ubuntu_12.04/traits-gcc_4.6.3.erb +42 -42
  30. data/etc/mesg.d/c_builtin/en_US/messages.yml +33 -33
  31. data/etc/mesg.d/c_builtin/ja_JP/messages.yml +5 -5
  32. data/etc/mesg.d/core/en_US/messages.yml +2 -2
  33. data/etc/mesg.d/core/ja_JP/messages.yml +2 -2
  34. data/features/code_check/W0018.feature +197 -0
  35. data/features/code_check/W0019.feature +79 -0
  36. data/features/code_check/W0021.feature +81 -0
  37. data/features/code_check/W0023.feature +203 -0
  38. data/features/code_check/W0024.feature +226 -0
  39. data/features/code_check/W0025.feature +5 -0
  40. data/features/code_check/W0088.feature +2 -2
  41. data/features/code_check/W0109.feature +2 -2
  42. data/features/code_check/W0477.feature +0 -3
  43. data/features/code_check/W0478.feature +0 -1
  44. data/features/code_check/W0582.feature +3 -3
  45. data/features/code_check/W0583.feature +4 -7
  46. data/features/code_check/W0646.feature +0 -1
  47. data/features/code_check/W0695.feature +0 -1
  48. data/features/code_check/W0705.feature +8 -0
  49. data/features/code_check/W0723.feature +0 -1
  50. data/features/code_check/W0745.feature +1 -0
  51. data/features/code_check/W0781.feature +1 -0
  52. data/features/code_check/W1057.feature +141 -0
  53. data/features/code_check/W1058.feature +93 -0
  54. data/features/code_check/W1059.feature +86 -0
  55. data/features/code_check/W1060.feature +77 -0
  56. data/features/code_check/W1061.feature +143 -0
  57. data/features/code_check/W1062.feature +162 -0
  58. data/features/code_check/W1063.feature +123 -0
  59. data/features/code_check/W1064.feature +83 -0
  60. data/features/code_check/W1065.feature +82 -0
  61. data/features/code_check/W9003.feature +2 -0
  62. data/features/step_definitions/code_check_steps.rb +1 -0
  63. data/features/support/env.rb +16 -13
  64. data/lib/adlint.rb +7 -4
  65. data/lib/adlint/analyzer.rb +131 -157
  66. data/lib/adlint/annot.rb +149 -0
  67. data/lib/adlint/cc1.rb +57 -0
  68. data/lib/adlint/{c → cc1}/branch.rb +74 -62
  69. data/lib/adlint/{c → cc1}/builtin.rb +21 -21
  70. data/lib/adlint/{c → cc1}/const.rb +119 -117
  71. data/lib/adlint/{c → cc1}/conv.rb +76 -78
  72. data/lib/adlint/{c → cc1}/ctrlexpr.rb +69 -86
  73. data/lib/adlint/cc1/domain.rb +8103 -0
  74. data/lib/adlint/{c → cc1}/enum.rb +3 -3
  75. data/lib/adlint/{c → cc1}/environ.rb +21 -21
  76. data/lib/adlint/{c → cc1}/expr.rb +232 -218
  77. data/lib/adlint/{c → cc1}/format.rb +305 -342
  78. data/lib/adlint/{c → cc1}/interp.rb +269 -220
  79. data/lib/adlint/cc1/lexer.rb +246 -0
  80. data/lib/adlint/{c → cc1}/mediator.rb +78 -84
  81. data/lib/adlint/{c → cc1}/object.rb +261 -264
  82. data/lib/adlint/{c → cc1}/operator.rb +7 -7
  83. data/lib/adlint/{c → cc1}/option.rb +4 -3
  84. data/lib/adlint/{c → cc1}/parser.rb +274 -506
  85. data/lib/adlint/{c → cc1}/parser.y +69 -301
  86. data/lib/adlint/cc1/phase.rb +138 -0
  87. data/lib/adlint/{c → cc1}/resolver.rb +66 -78
  88. data/lib/adlint/{c → cc1}/scanner.rb +57 -49
  89. data/lib/adlint/{c → cc1}/scope.rb +3 -3
  90. data/lib/adlint/{c → cc1}/seqp.rb +13 -5
  91. data/lib/adlint/{c → cc1}/syntax.rb +819 -1122
  92. data/lib/adlint/{c → cc1}/type.rb +1498 -1479
  93. data/lib/adlint/{c → cc1}/util.rb +20 -12
  94. data/lib/adlint/{c → cc1}/value.rb +699 -642
  95. data/lib/adlint/code.rb +163 -164
  96. data/lib/adlint/cpp.rb +2 -2
  97. data/lib/adlint/cpp/asm.rb +13 -14
  98. data/lib/adlint/cpp/constexpr.rb +42 -38
  99. data/lib/adlint/cpp/constexpr.y +44 -40
  100. data/lib/adlint/cpp/eval.rb +435 -435
  101. data/lib/adlint/cpp/lexer.rb +343 -340
  102. data/lib/adlint/cpp/macro.rb +188 -190
  103. data/lib/adlint/cpp/phase.rb +66 -45
  104. data/lib/adlint/cpp/scanner.rb +14 -17
  105. data/lib/adlint/cpp/source.rb +49 -55
  106. data/lib/adlint/cpp/subst.rb +65 -65
  107. data/lib/adlint/cpp/syntax.rb +155 -275
  108. data/lib/adlint/cpp/util.rb +22 -19
  109. data/lib/adlint/driver.rb +86 -93
  110. data/lib/adlint/error.rb +33 -52
  111. data/lib/adlint/exam.rb +158 -24
  112. data/lib/adlint/exam/c_builtin.rb +7 -7
  113. data/lib/adlint/exam/c_builtin/cc1_check.rb +20522 -0
  114. data/lib/adlint/exam/c_builtin/cc1_check_shima.rb +957 -0
  115. data/lib/adlint/exam/c_builtin/cc1_code.rb +459 -0
  116. data/lib/adlint/exam/c_builtin/cc1_metric.rb +794 -0
  117. data/lib/adlint/exam/c_builtin/cpp_check.rb +486 -441
  118. data/lib/adlint/exam/c_builtin/cpp_check_shima.rb +36 -39
  119. data/lib/adlint/exam/c_builtin/cpp_code.rb +63 -65
  120. data/lib/adlint/exam/c_builtin/ld_check.rb +136 -129
  121. data/lib/adlint/exam/c_builtin/ld_metric.rb +11 -11
  122. data/lib/adlint/lang.rb +25 -25
  123. data/lib/adlint/ld.rb +2 -2
  124. data/lib/adlint/ld/object.rb +220 -188
  125. data/lib/adlint/ld/phase.rb +94 -63
  126. data/lib/adlint/ld/typedef.rb +22 -11
  127. data/lib/adlint/ld/util.rb +43 -35
  128. data/lib/adlint/lexer.rb +59 -56
  129. data/lib/adlint/location.rb +140 -0
  130. data/lib/adlint/memo.rb +157 -0
  131. data/lib/adlint/message.rb +207 -156
  132. data/lib/adlint/metric.rb +139 -217
  133. data/lib/adlint/monitor.rb +45 -43
  134. data/lib/adlint/phase.rb +56 -29
  135. data/lib/adlint/prelude.rb +66 -54
  136. data/lib/adlint/report.rb +253 -332
  137. data/lib/adlint/source.rb +26 -27
  138. data/lib/adlint/supp.rb +131 -0
  139. data/lib/adlint/symbol.rb +14 -16
  140. data/lib/adlint/token.rb +19 -91
  141. data/lib/adlint/traits.rb +242 -226
  142. data/lib/adlint/util.rb +116 -205
  143. data/lib/adlint/version.rb +8 -8
  144. data/share/HEADER +2 -2
  145. data/share/doc/developers_guide_ja.html +148 -19
  146. data/share/doc/developers_guide_ja.texi +141 -11
  147. data/share/doc/samples/GNUmakefile +1 -1
  148. data/share/doc/samples/adlint_traits.yml +45 -36
  149. data/share/doc/users_guide_en.html +1321 -1252
  150. data/share/doc/users_guide_en.texi +475 -408
  151. data/share/doc/users_guide_ja.html +1932 -1878
  152. data/share/doc/users_guide_ja.texi +324 -273
  153. data/share/sample/bison-2.5/adlint/GNUmakefile +5 -1
  154. data/share/sample/bison-2.5/adlint/adlint_traits.yml +38 -38
  155. data/share/sample/bison-2.5/adlint/lib/GNUmakefile +1 -1
  156. data/share/sample/bison-2.5/adlint/lib/adlint_cinit.h +1 -1
  157. data/share/sample/bison-2.5/adlint/lib/adlint_pinit.h +1 -1
  158. data/share/sample/bison-2.5/adlint/lib/adlint_traits.yml +50 -42
  159. data/share/sample/bison-2.5/adlint/src/GNUmakefile +1 -1
  160. data/share/sample/bison-2.5/adlint/src/adlint_cinit.h +1 -1
  161. data/share/sample/bison-2.5/adlint/src/adlint_pinit.h +1 -1
  162. data/share/sample/bison-2.5/adlint/src/adlint_traits.yml +50 -42
  163. data/share/sample/ctags-5.8/adlint/GNUmakefile +1 -1
  164. data/share/sample/ctags-5.8/adlint/adlint_cinit.h +1 -1
  165. data/share/sample/ctags-5.8/adlint/adlint_pinit.h +1 -1
  166. data/share/sample/ctags-5.8/adlint/adlint_traits.yml +50 -42
  167. data/share/sample/flex-2.5.35/adlint/GNUmakefile +1 -1
  168. data/share/sample/flex-2.5.35/adlint/adlint_cinit.h +1 -1
  169. data/share/sample/flex-2.5.35/adlint/adlint_pinit.h +1 -1
  170. data/share/sample/flex-2.5.35/adlint/adlint_traits.yml +50 -42
  171. data/share/sample/ruby-1.9.3-p0/adlint/GNUmakefile +1 -1
  172. data/share/sample/ruby-1.9.3-p0/adlint/adlint_traits.yml +46 -38
  173. data/share/sample/ruby-1.9.3-p0/adlint/core/GNUmakefile +1 -1
  174. data/share/sample/ruby-1.9.3-p0/adlint/core/adlint_cinit.h +1 -1
  175. data/share/sample/ruby-1.9.3-p0/adlint/core/adlint_pinit.h +1 -1
  176. data/share/sample/ruby-1.9.3-p0/adlint/core/adlint_traits.yml +50 -42
  177. data/share/sample/ruby-1.9.3-p0/adlint/enc-trans/GNUmakefile +1 -1
  178. data/share/sample/ruby-1.9.3-p0/adlint/enc-trans/adlint_cinit.h +1 -1
  179. data/share/sample/ruby-1.9.3-p0/adlint/enc-trans/adlint_pinit.h +1 -1
  180. data/share/sample/ruby-1.9.3-p0/adlint/enc-trans/adlint_traits.yml +50 -42
  181. data/share/sample/ruby-1.9.3-p0/adlint/enc/GNUmakefile +1 -1
  182. data/share/sample/ruby-1.9.3-p0/adlint/enc/adlint_cinit.h +1 -1
  183. data/share/sample/ruby-1.9.3-p0/adlint/enc/adlint_pinit.h +1 -1
  184. data/share/sample/ruby-1.9.3-p0/adlint/enc/adlint_traits.yml +50 -42
  185. data/share/sample/ruby-1.9.3-p0/adlint/ext-bigdecimal/GNUmakefile +1 -1
  186. data/share/sample/ruby-1.9.3-p0/adlint/ext-bigdecimal/adlint_cinit.h +1 -1
  187. data/share/sample/ruby-1.9.3-p0/adlint/ext-bigdecimal/adlint_pinit.h +1 -1
  188. data/share/sample/ruby-1.9.3-p0/adlint/ext-bigdecimal/adlint_traits.yml +50 -42
  189. data/share/sample/ruby-1.9.3-p0/adlint/ext-continuation/GNUmakefile +1 -1
  190. data/share/sample/ruby-1.9.3-p0/adlint/ext-continuation/adlint_cinit.h +1 -1
  191. data/share/sample/ruby-1.9.3-p0/adlint/ext-continuation/adlint_pinit.h +1 -1
  192. data/share/sample/ruby-1.9.3-p0/adlint/ext-continuation/adlint_traits.yml +50 -42
  193. data/share/sample/ruby-1.9.3-p0/adlint/ext-coverage/GNUmakefile +1 -1
  194. data/share/sample/ruby-1.9.3-p0/adlint/ext-coverage/adlint_cinit.h +1 -1
  195. data/share/sample/ruby-1.9.3-p0/adlint/ext-coverage/adlint_pinit.h +1 -1
  196. data/share/sample/ruby-1.9.3-p0/adlint/ext-coverage/adlint_traits.yml +50 -42
  197. data/share/sample/ruby-1.9.3-p0/adlint/ext-curses/GNUmakefile +1 -1
  198. data/share/sample/ruby-1.9.3-p0/adlint/ext-curses/adlint_cinit.h +1 -1
  199. data/share/sample/ruby-1.9.3-p0/adlint/ext-curses/adlint_pinit.h +1 -1
  200. data/share/sample/ruby-1.9.3-p0/adlint/ext-curses/adlint_traits.yml +50 -42
  201. data/share/sample/ruby-1.9.3-p0/adlint/ext-date/GNUmakefile +1 -1
  202. data/share/sample/ruby-1.9.3-p0/adlint/ext-date/adlint_cinit.h +1 -1
  203. data/share/sample/ruby-1.9.3-p0/adlint/ext-date/adlint_pinit.h +1 -1
  204. data/share/sample/ruby-1.9.3-p0/adlint/ext-date/adlint_traits.yml +50 -42
  205. data/share/sample/ruby-1.9.3-p0/adlint/ext-dbm/GNUmakefile +1 -1
  206. data/share/sample/ruby-1.9.3-p0/adlint/ext-dbm/adlint_cinit.h +1 -1
  207. data/share/sample/ruby-1.9.3-p0/adlint/ext-dbm/adlint_pinit.h +1 -1
  208. data/share/sample/ruby-1.9.3-p0/adlint/ext-dbm/adlint_traits.yml +50 -42
  209. data/share/sample/ruby-1.9.3-p0/adlint/ext-digest-bubblebabble/GNUmakefile +1 -1
  210. data/share/sample/ruby-1.9.3-p0/adlint/ext-digest-bubblebabble/adlint_cinit.h +1 -1
  211. data/share/sample/ruby-1.9.3-p0/adlint/ext-digest-bubblebabble/adlint_pinit.h +1 -1
  212. data/share/sample/ruby-1.9.3-p0/adlint/ext-digest-bubblebabble/adlint_traits.yml +50 -42
  213. data/share/sample/ruby-1.9.3-p0/adlint/ext-digest-md5/GNUmakefile +1 -1
  214. data/share/sample/ruby-1.9.3-p0/adlint/ext-digest-md5/adlint_cinit.h +1 -1
  215. data/share/sample/ruby-1.9.3-p0/adlint/ext-digest-md5/adlint_pinit.h +1 -1
  216. data/share/sample/ruby-1.9.3-p0/adlint/ext-digest-md5/adlint_traits.yml +50 -42
  217. data/share/sample/ruby-1.9.3-p0/adlint/ext-digest-rmd160/GNUmakefile +1 -1
  218. data/share/sample/ruby-1.9.3-p0/adlint/ext-digest-rmd160/adlint_cinit.h +1 -1
  219. data/share/sample/ruby-1.9.3-p0/adlint/ext-digest-rmd160/adlint_pinit.h +1 -1
  220. data/share/sample/ruby-1.9.3-p0/adlint/ext-digest-rmd160/adlint_traits.yml +50 -42
  221. data/share/sample/ruby-1.9.3-p0/adlint/ext-digest-sha1/GNUmakefile +1 -1
  222. data/share/sample/ruby-1.9.3-p0/adlint/ext-digest-sha1/adlint_cinit.h +1 -1
  223. data/share/sample/ruby-1.9.3-p0/adlint/ext-digest-sha1/adlint_pinit.h +1 -1
  224. data/share/sample/ruby-1.9.3-p0/adlint/ext-digest-sha1/adlint_traits.yml +50 -42
  225. data/share/sample/ruby-1.9.3-p0/adlint/ext-digest-sha2/GNUmakefile +1 -1
  226. data/share/sample/ruby-1.9.3-p0/adlint/ext-digest-sha2/adlint_cinit.h +1 -1
  227. data/share/sample/ruby-1.9.3-p0/adlint/ext-digest-sha2/adlint_pinit.h +1 -1
  228. data/share/sample/ruby-1.9.3-p0/adlint/ext-digest-sha2/adlint_traits.yml +50 -42
  229. data/share/sample/ruby-1.9.3-p0/adlint/ext-digest/GNUmakefile +1 -1
  230. data/share/sample/ruby-1.9.3-p0/adlint/ext-digest/adlint_cinit.h +1 -1
  231. data/share/sample/ruby-1.9.3-p0/adlint/ext-digest/adlint_pinit.h +1 -1
  232. data/share/sample/ruby-1.9.3-p0/adlint/ext-digest/adlint_traits.yml +50 -42
  233. data/share/sample/ruby-1.9.3-p0/adlint/ext-dl-callback/GNUmakefile +1 -1
  234. data/share/sample/ruby-1.9.3-p0/adlint/ext-dl-callback/adlint_cinit.h +1 -1
  235. data/share/sample/ruby-1.9.3-p0/adlint/ext-dl-callback/adlint_pinit.h +1 -1
  236. data/share/sample/ruby-1.9.3-p0/adlint/ext-dl-callback/adlint_traits.yml +50 -42
  237. data/share/sample/ruby-1.9.3-p0/adlint/ext-dl/GNUmakefile +1 -1
  238. data/share/sample/ruby-1.9.3-p0/adlint/ext-dl/adlint_cinit.h +1 -1
  239. data/share/sample/ruby-1.9.3-p0/adlint/ext-dl/adlint_pinit.h +1 -1
  240. data/share/sample/ruby-1.9.3-p0/adlint/ext-dl/adlint_traits.yml +50 -42
  241. data/share/sample/ruby-1.9.3-p0/adlint/ext-etc/GNUmakefile +1 -1
  242. data/share/sample/ruby-1.9.3-p0/adlint/ext-etc/adlint_cinit.h +1 -1
  243. data/share/sample/ruby-1.9.3-p0/adlint/ext-etc/adlint_pinit.h +1 -1
  244. data/share/sample/ruby-1.9.3-p0/adlint/ext-etc/adlint_traits.yml +50 -42
  245. data/share/sample/ruby-1.9.3-p0/adlint/ext-fcntl/GNUmakefile +1 -1
  246. data/share/sample/ruby-1.9.3-p0/adlint/ext-fcntl/adlint_cinit.h +1 -1
  247. data/share/sample/ruby-1.9.3-p0/adlint/ext-fcntl/adlint_pinit.h +1 -1
  248. data/share/sample/ruby-1.9.3-p0/adlint/ext-fcntl/adlint_traits.yml +50 -42
  249. data/share/sample/ruby-1.9.3-p0/adlint/ext-fiber/GNUmakefile +1 -1
  250. data/share/sample/ruby-1.9.3-p0/adlint/ext-fiber/adlint_cinit.h +1 -1
  251. data/share/sample/ruby-1.9.3-p0/adlint/ext-fiber/adlint_pinit.h +1 -1
  252. data/share/sample/ruby-1.9.3-p0/adlint/ext-fiber/adlint_traits.yml +50 -42
  253. data/share/sample/ruby-1.9.3-p0/adlint/ext-fiddle/GNUmakefile +1 -1
  254. data/share/sample/ruby-1.9.3-p0/adlint/ext-fiddle/adlint_cinit.h +1 -1
  255. data/share/sample/ruby-1.9.3-p0/adlint/ext-fiddle/adlint_pinit.h +1 -1
  256. data/share/sample/ruby-1.9.3-p0/adlint/ext-fiddle/adlint_traits.yml +50 -42
  257. data/share/sample/ruby-1.9.3-p0/adlint/ext-gdbm/GNUmakefile +1 -1
  258. data/share/sample/ruby-1.9.3-p0/adlint/ext-gdbm/adlint_cinit.h +1 -1
  259. data/share/sample/ruby-1.9.3-p0/adlint/ext-gdbm/adlint_pinit.h +1 -1
  260. data/share/sample/ruby-1.9.3-p0/adlint/ext-gdbm/adlint_traits.yml +50 -42
  261. data/share/sample/ruby-1.9.3-p0/adlint/ext-iconv/GNUmakefile +1 -1
  262. data/share/sample/ruby-1.9.3-p0/adlint/ext-iconv/adlint_cinit.h +1 -1
  263. data/share/sample/ruby-1.9.3-p0/adlint/ext-iconv/adlint_pinit.h +1 -1
  264. data/share/sample/ruby-1.9.3-p0/adlint/ext-iconv/adlint_traits.yml +50 -42
  265. data/share/sample/ruby-1.9.3-p0/adlint/ext-io-console/GNUmakefile +1 -1
  266. data/share/sample/ruby-1.9.3-p0/adlint/ext-io-console/adlint_cinit.h +1 -1
  267. data/share/sample/ruby-1.9.3-p0/adlint/ext-io-console/adlint_pinit.h +1 -1
  268. data/share/sample/ruby-1.9.3-p0/adlint/ext-io-console/adlint_traits.yml +50 -42
  269. data/share/sample/ruby-1.9.3-p0/adlint/ext-io-nonblock/GNUmakefile +1 -1
  270. data/share/sample/ruby-1.9.3-p0/adlint/ext-io-nonblock/adlint_cinit.h +1 -1
  271. data/share/sample/ruby-1.9.3-p0/adlint/ext-io-nonblock/adlint_pinit.h +1 -1
  272. data/share/sample/ruby-1.9.3-p0/adlint/ext-io-nonblock/adlint_traits.yml +50 -42
  273. data/share/sample/ruby-1.9.3-p0/adlint/ext-io-wait/GNUmakefile +1 -1
  274. data/share/sample/ruby-1.9.3-p0/adlint/ext-io-wait/adlint_cinit.h +1 -1
  275. data/share/sample/ruby-1.9.3-p0/adlint/ext-io-wait/adlint_pinit.h +1 -1
  276. data/share/sample/ruby-1.9.3-p0/adlint/ext-io-wait/adlint_traits.yml +50 -42
  277. data/share/sample/ruby-1.9.3-p0/adlint/ext-json-generator/GNUmakefile +1 -1
  278. data/share/sample/ruby-1.9.3-p0/adlint/ext-json-generator/adlint_cinit.h +1 -1
  279. data/share/sample/ruby-1.9.3-p0/adlint/ext-json-generator/adlint_pinit.h +1 -1
  280. data/share/sample/ruby-1.9.3-p0/adlint/ext-json-generator/adlint_traits.yml +50 -42
  281. data/share/sample/ruby-1.9.3-p0/adlint/ext-json-parser/GNUmakefile +1 -1
  282. data/share/sample/ruby-1.9.3-p0/adlint/ext-json-parser/adlint_cinit.h +1 -1
  283. data/share/sample/ruby-1.9.3-p0/adlint/ext-json-parser/adlint_pinit.h +1 -1
  284. data/share/sample/ruby-1.9.3-p0/adlint/ext-json-parser/adlint_traits.yml +50 -42
  285. data/share/sample/ruby-1.9.3-p0/adlint/ext-mathn-complex/GNUmakefile +1 -1
  286. data/share/sample/ruby-1.9.3-p0/adlint/ext-mathn-complex/adlint_cinit.h +1 -1
  287. data/share/sample/ruby-1.9.3-p0/adlint/ext-mathn-complex/adlint_pinit.h +1 -1
  288. data/share/sample/ruby-1.9.3-p0/adlint/ext-mathn-complex/adlint_traits.yml +50 -42
  289. data/share/sample/ruby-1.9.3-p0/adlint/ext-mathn-rational/GNUmakefile +1 -1
  290. data/share/sample/ruby-1.9.3-p0/adlint/ext-mathn-rational/adlint_cinit.h +1 -1
  291. data/share/sample/ruby-1.9.3-p0/adlint/ext-mathn-rational/adlint_pinit.h +1 -1
  292. data/share/sample/ruby-1.9.3-p0/adlint/ext-mathn-rational/adlint_traits.yml +50 -42
  293. data/share/sample/ruby-1.9.3-p0/adlint/ext-nkf/GNUmakefile +1 -1
  294. data/share/sample/ruby-1.9.3-p0/adlint/ext-nkf/adlint_cinit.h +1 -1
  295. data/share/sample/ruby-1.9.3-p0/adlint/ext-nkf/adlint_pinit.h +1 -1
  296. data/share/sample/ruby-1.9.3-p0/adlint/ext-nkf/adlint_traits.yml +50 -42
  297. data/share/sample/ruby-1.9.3-p0/adlint/ext-openssl/GNUmakefile +1 -1
  298. data/share/sample/ruby-1.9.3-p0/adlint/ext-openssl/adlint_cinit.h +1 -1
  299. data/share/sample/ruby-1.9.3-p0/adlint/ext-openssl/adlint_pinit.h +1 -1
  300. data/share/sample/ruby-1.9.3-p0/adlint/ext-openssl/adlint_traits.yml +50 -42
  301. data/share/sample/ruby-1.9.3-p0/adlint/ext-pathname/GNUmakefile +1 -1
  302. data/share/sample/ruby-1.9.3-p0/adlint/ext-pathname/adlint_cinit.h +1 -1
  303. data/share/sample/ruby-1.9.3-p0/adlint/ext-pathname/adlint_pinit.h +1 -1
  304. data/share/sample/ruby-1.9.3-p0/adlint/ext-pathname/adlint_traits.yml +50 -42
  305. data/share/sample/ruby-1.9.3-p0/adlint/ext-psych/GNUmakefile +1 -1
  306. data/share/sample/ruby-1.9.3-p0/adlint/ext-psych/adlint_cinit.h +1 -1
  307. data/share/sample/ruby-1.9.3-p0/adlint/ext-psych/adlint_pinit.h +1 -1
  308. data/share/sample/ruby-1.9.3-p0/adlint/ext-psych/adlint_traits.yml +50 -42
  309. data/share/sample/ruby-1.9.3-p0/adlint/ext-pty/GNUmakefile +1 -1
  310. data/share/sample/ruby-1.9.3-p0/adlint/ext-pty/adlint_cinit.h +1 -1
  311. data/share/sample/ruby-1.9.3-p0/adlint/ext-pty/adlint_pinit.h +1 -1
  312. data/share/sample/ruby-1.9.3-p0/adlint/ext-pty/adlint_traits.yml +50 -42
  313. data/share/sample/ruby-1.9.3-p0/adlint/ext-racc-cparse/GNUmakefile +1 -1
  314. data/share/sample/ruby-1.9.3-p0/adlint/ext-racc-cparse/adlint_cinit.h +1 -1
  315. data/share/sample/ruby-1.9.3-p0/adlint/ext-racc-cparse/adlint_pinit.h +1 -1
  316. data/share/sample/ruby-1.9.3-p0/adlint/ext-racc-cparse/adlint_traits.yml +50 -42
  317. data/share/sample/ruby-1.9.3-p0/adlint/ext-readline/GNUmakefile +1 -1
  318. data/share/sample/ruby-1.9.3-p0/adlint/ext-readline/adlint_cinit.h +1 -1
  319. data/share/sample/ruby-1.9.3-p0/adlint/ext-readline/adlint_pinit.h +1 -1
  320. data/share/sample/ruby-1.9.3-p0/adlint/ext-readline/adlint_traits.yml +50 -42
  321. data/share/sample/ruby-1.9.3-p0/adlint/ext-ripper/GNUmakefile +1 -1
  322. data/share/sample/ruby-1.9.3-p0/adlint/ext-ripper/adlint_cinit.h +1 -1
  323. data/share/sample/ruby-1.9.3-p0/adlint/ext-ripper/adlint_pinit.h +1 -1
  324. data/share/sample/ruby-1.9.3-p0/adlint/ext-ripper/adlint_traits.yml +50 -42
  325. data/share/sample/ruby-1.9.3-p0/adlint/ext-sdbm/GNUmakefile +1 -1
  326. data/share/sample/ruby-1.9.3-p0/adlint/ext-sdbm/adlint_cinit.h +1 -1
  327. data/share/sample/ruby-1.9.3-p0/adlint/ext-sdbm/adlint_pinit.h +1 -1
  328. data/share/sample/ruby-1.9.3-p0/adlint/ext-sdbm/adlint_traits.yml +50 -42
  329. data/share/sample/ruby-1.9.3-p0/adlint/ext-socket/GNUmakefile +1 -1
  330. data/share/sample/ruby-1.9.3-p0/adlint/ext-socket/adlint_cinit.h +1 -1
  331. data/share/sample/ruby-1.9.3-p0/adlint/ext-socket/adlint_pinit.h +1 -1
  332. data/share/sample/ruby-1.9.3-p0/adlint/ext-socket/adlint_traits.yml +50 -42
  333. data/share/sample/ruby-1.9.3-p0/adlint/ext-stringio/GNUmakefile +1 -1
  334. data/share/sample/ruby-1.9.3-p0/adlint/ext-stringio/adlint_cinit.h +1 -1
  335. data/share/sample/ruby-1.9.3-p0/adlint/ext-stringio/adlint_pinit.h +1 -1
  336. data/share/sample/ruby-1.9.3-p0/adlint/ext-stringio/adlint_traits.yml +50 -42
  337. data/share/sample/ruby-1.9.3-p0/adlint/ext-strscan/GNUmakefile +1 -1
  338. data/share/sample/ruby-1.9.3-p0/adlint/ext-strscan/adlint_cinit.h +1 -1
  339. data/share/sample/ruby-1.9.3-p0/adlint/ext-strscan/adlint_pinit.h +1 -1
  340. data/share/sample/ruby-1.9.3-p0/adlint/ext-strscan/adlint_traits.yml +50 -42
  341. data/share/sample/ruby-1.9.3-p0/adlint/ext-syck/GNUmakefile +1 -1
  342. data/share/sample/ruby-1.9.3-p0/adlint/ext-syck/adlint_cinit.h +1 -1
  343. data/share/sample/ruby-1.9.3-p0/adlint/ext-syck/adlint_pinit.h +1 -1
  344. data/share/sample/ruby-1.9.3-p0/adlint/ext-syck/adlint_traits.yml +50 -42
  345. data/share/sample/ruby-1.9.3-p0/adlint/ext-syslog/GNUmakefile +1 -1
  346. data/share/sample/ruby-1.9.3-p0/adlint/ext-syslog/adlint_cinit.h +1 -1
  347. data/share/sample/ruby-1.9.3-p0/adlint/ext-syslog/adlint_pinit.h +1 -1
  348. data/share/sample/ruby-1.9.3-p0/adlint/ext-syslog/adlint_traits.yml +50 -42
  349. data/share/sample/ruby-1.9.3-p0/adlint/ext-zlib/GNUmakefile +1 -1
  350. data/share/sample/ruby-1.9.3-p0/adlint/ext-zlib/adlint_cinit.h +1 -1
  351. data/share/sample/ruby-1.9.3-p0/adlint/ext-zlib/adlint_pinit.h +1 -1
  352. data/share/sample/ruby-1.9.3-p0/adlint/ext-zlib/adlint_traits.yml +50 -42
  353. data/share/sample/screen-4.0.3/adlint/GNUmakefile +1 -1
  354. data/share/sample/screen-4.0.3/adlint/adlint_cinit.h +1 -1
  355. data/share/sample/screen-4.0.3/adlint/adlint_pinit.h +1 -1
  356. data/share/sample/screen-4.0.3/adlint/adlint_traits.yml +50 -42
  357. data/share/sample/vim-7.3/adlint/vim/GNUmakefile +1 -1
  358. data/share/sample/vim-7.3/adlint/vim/adlint_cinit.h +1 -1
  359. data/share/sample/vim-7.3/adlint/vim/adlint_pinit.h +1 -1
  360. data/share/sample/vim-7.3/adlint/vim/adlint_traits.yml +50 -42
  361. data/share/sample/vim-7.3/adlint/xxd/GNUmakefile +1 -1
  362. data/share/sample/vim-7.3/adlint/xxd/adlint_cinit.h +1 -1
  363. data/share/sample/vim-7.3/adlint/xxd/adlint_pinit.h +1 -1
  364. data/share/sample/vim-7.3/adlint/xxd/adlint_traits.yml +49 -41
  365. data/share/sample/zsh-4.3.15/adlint/GNUmakefile +1 -1
  366. data/share/sample/zsh-4.3.15/adlint/adlint_traits.yml +46 -38
  367. data/share/sample/zsh-4.3.15/adlint/builtins/GNUmakefile +1 -1
  368. data/share/sample/zsh-4.3.15/adlint/builtins/adlint_cinit.h +1 -1
  369. data/share/sample/zsh-4.3.15/adlint/builtins/adlint_pinit.h +1 -1
  370. data/share/sample/zsh-4.3.15/adlint/builtins/adlint_traits.yml +50 -42
  371. data/share/sample/zsh-4.3.15/adlint/core/GNUmakefile +1 -1
  372. data/share/sample/zsh-4.3.15/adlint/core/adlint_cinit.h +1 -1
  373. data/share/sample/zsh-4.3.15/adlint/core/adlint_pinit.h +1 -1
  374. data/share/sample/zsh-4.3.15/adlint/core/adlint_traits.yml +50 -42
  375. data/share/sample/zsh-4.3.15/adlint/modules/GNUmakefile +1 -1
  376. data/share/sample/zsh-4.3.15/adlint/modules/adlint_cinit.h +1 -1
  377. data/share/sample/zsh-4.3.15/adlint/modules/adlint_pinit.h +1 -1
  378. data/share/sample/zsh-4.3.15/adlint/modules/adlint_traits.yml +50 -42
  379. data/share/sample/zsh-4.3.15/adlint/zle/GNUmakefile +1 -1
  380. data/share/sample/zsh-4.3.15/adlint/zle/adlint_cinit.h +1 -1
  381. data/share/sample/zsh-4.3.15/adlint/zle/adlint_pinit.h +1 -1
  382. data/share/sample/zsh-4.3.15/adlint/zle/adlint_traits.yml +50 -42
  383. data/spec/adlint/{c → cc1}/ctrlexpr_spec.rb +51 -49
  384. data/spec/adlint/{c → cc1}/domain_spec.rb +210 -179
  385. data/spec/adlint/{c → cc1}/operator_spec.rb +3 -3
  386. data/spec/adlint/{c → cc1}/syntax_spec.rb +10 -12
  387. data/spec/adlint/{c → cc1}/type_spec.rb +61 -68
  388. data/{lib/adlint/c.rb → spec/adlint/location_spec.rb} +24 -29
  389. data/spec/conf.d/default_traits.yml +38 -37
  390. data/spec/conf.d/empty_cinit.h +1 -1
  391. data/spec/conf.d/empty_pinit.h +1 -1
  392. data/spec/conf.d/project/foo.c +0 -0
  393. data/spec/spec_helper.rb +2 -2
  394. metadata +60 -40
  395. data/lib/adlint/c/domain.rb +0 -7931
  396. data/lib/adlint/c/lexer.rb +0 -252
  397. data/lib/adlint/c/phase.rb +0 -135
  398. data/lib/adlint/exam/c_builtin/c_check.rb +0 -20745
  399. data/lib/adlint/exam/c_builtin/c_check_shima.rb +0 -983
  400. data/lib/adlint/exam/c_builtin/c_code.rb +0 -477
  401. data/lib/adlint/exam/c_builtin/c_metric.rb +0 -818
data/INSTALL CHANGED
@@ -3,7 +3,7 @@
3
3
  / | / _ |/ / / / | / /__ __/ Source Code Static Analyzer
4
4
  / /| | / / / / / / / |/ / / / AdLint - Advanced Lint
5
5
  / __ |/ /_/ / /___/ / /| / / /
6
- /_/ |_|_____/_____/_/_/ |_/ /_/ Copyright (C) 2010-2012, OGIS-RI Co.,Ltd.
6
+ /_/ |_|_____/_____/_/_/ |_/ /_/ Copyright (C) 2010-2013, OGIS-RI Co.,Ltd.
7
7
 
8
8
  This file is part of AdLint.
9
9
 
data/MANIFEST CHANGED
@@ -41,6 +41,11 @@ features/code_check/W0010.feature
41
41
  features/code_check/W0013.feature
42
42
  features/code_check/W0016.feature
43
43
  features/code_check/W0017.feature
44
+ features/code_check/W0018.feature
45
+ features/code_check/W0019.feature
46
+ features/code_check/W0021.feature
47
+ features/code_check/W0023.feature
48
+ features/code_check/W0024.feature
44
49
  features/code_check/W0025.feature
45
50
  features/code_check/W0026.feature
46
51
  features/code_check/W0070.feature
@@ -309,6 +314,15 @@ features/code_check/W1041.feature
309
314
  features/code_check/W1046.feature
310
315
  features/code_check/W1047.feature
311
316
  features/code_check/W1052.feature
317
+ features/code_check/W1057.feature
318
+ features/code_check/W1058.feature
319
+ features/code_check/W1059.feature
320
+ features/code_check/W1060.feature
321
+ features/code_check/W1061.feature
322
+ features/code_check/W1062.feature
323
+ features/code_check/W1063.feature
324
+ features/code_check/W1064.feature
325
+ features/code_check/W1065.feature
312
326
  features/code_check/W1066.feature
313
327
  features/code_check/W1067.feature
314
328
  features/code_check/W1068.feature
@@ -327,34 +341,35 @@ features/step_definitions/code_check_steps.rb
327
341
  features/support/env.rb
328
342
  lib/adlint.rb
329
343
  lib/adlint/analyzer.rb
330
- lib/adlint/c.rb
331
- lib/adlint/c/branch.rb
332
- lib/adlint/c/builtin.rb
333
- lib/adlint/c/const.rb
334
- lib/adlint/c/conv.rb
335
- lib/adlint/c/ctrlexpr.rb
336
- lib/adlint/c/domain.rb
337
- lib/adlint/c/enum.rb
338
- lib/adlint/c/environ.rb
339
- lib/adlint/c/expr.rb
340
- lib/adlint/c/format.rb
341
- lib/adlint/c/interp.rb
342
- lib/adlint/c/lexer.rb
343
- lib/adlint/c/mediator.rb
344
- lib/adlint/c/object.rb
345
- lib/adlint/c/operator.rb
346
- lib/adlint/c/option.rb
347
- lib/adlint/c/parser.rb
348
- lib/adlint/c/parser.y
349
- lib/adlint/c/phase.rb
350
- lib/adlint/c/resolver.rb
351
- lib/adlint/c/scanner.rb
352
- lib/adlint/c/scope.rb
353
- lib/adlint/c/seqp.rb
354
- lib/adlint/c/syntax.rb
355
- lib/adlint/c/type.rb
356
- lib/adlint/c/util.rb
357
- lib/adlint/c/value.rb
344
+ lib/adlint/annot.rb
345
+ lib/adlint/cc1.rb
346
+ lib/adlint/cc1/branch.rb
347
+ lib/adlint/cc1/builtin.rb
348
+ lib/adlint/cc1/const.rb
349
+ lib/adlint/cc1/conv.rb
350
+ lib/adlint/cc1/ctrlexpr.rb
351
+ lib/adlint/cc1/domain.rb
352
+ lib/adlint/cc1/enum.rb
353
+ lib/adlint/cc1/environ.rb
354
+ lib/adlint/cc1/expr.rb
355
+ lib/adlint/cc1/format.rb
356
+ lib/adlint/cc1/interp.rb
357
+ lib/adlint/cc1/lexer.rb
358
+ lib/adlint/cc1/mediator.rb
359
+ lib/adlint/cc1/object.rb
360
+ lib/adlint/cc1/operator.rb
361
+ lib/adlint/cc1/option.rb
362
+ lib/adlint/cc1/parser.rb
363
+ lib/adlint/cc1/parser.y
364
+ lib/adlint/cc1/phase.rb
365
+ lib/adlint/cc1/resolver.rb
366
+ lib/adlint/cc1/scanner.rb
367
+ lib/adlint/cc1/scope.rb
368
+ lib/adlint/cc1/seqp.rb
369
+ lib/adlint/cc1/syntax.rb
370
+ lib/adlint/cc1/type.rb
371
+ lib/adlint/cc1/util.rb
372
+ lib/adlint/cc1/value.rb
358
373
  lib/adlint/code.rb
359
374
  lib/adlint/cpp.rb
360
375
  lib/adlint/cpp/asm.rb
@@ -373,10 +388,10 @@ lib/adlint/driver.rb
373
388
  lib/adlint/error.rb
374
389
  lib/adlint/exam.rb
375
390
  lib/adlint/exam/c_builtin.rb
376
- lib/adlint/exam/c_builtin/c_check.rb
377
- lib/adlint/exam/c_builtin/c_check_shima.rb
378
- lib/adlint/exam/c_builtin/c_code.rb
379
- lib/adlint/exam/c_builtin/c_metric.rb
391
+ lib/adlint/exam/c_builtin/cc1_check.rb
392
+ lib/adlint/exam/c_builtin/cc1_check_shima.rb
393
+ lib/adlint/exam/c_builtin/cc1_code.rb
394
+ lib/adlint/exam/c_builtin/cc1_metric.rb
380
395
  lib/adlint/exam/c_builtin/cpp_check.rb
381
396
  lib/adlint/exam/c_builtin/cpp_check_shima.rb
382
397
  lib/adlint/exam/c_builtin/cpp_code.rb
@@ -389,6 +404,8 @@ lib/adlint/ld/phase.rb
389
404
  lib/adlint/ld/typedef.rb
390
405
  lib/adlint/ld/util.rb
391
406
  lib/adlint/lexer.rb
407
+ lib/adlint/location.rb
408
+ lib/adlint/memo.rb
392
409
  lib/adlint/message.rb
393
410
  lib/adlint/metric.rb
394
411
  lib/adlint/monitor.rb
@@ -396,6 +413,7 @@ lib/adlint/phase.rb
396
413
  lib/adlint/prelude.rb
397
414
  lib/adlint/report.rb
398
415
  lib/adlint/source.rb
416
+ lib/adlint/supp.rb
399
417
  lib/adlint/symbol.rb
400
418
  lib/adlint/token.rb
401
419
  lib/adlint/traits.rb
@@ -779,12 +797,14 @@ share/sample/zsh-4.3.15/adlint/zle/GNUmakefile
779
797
  share/sample/zsh-4.3.15/adlint/zle/adlint_cinit.h
780
798
  share/sample/zsh-4.3.15/adlint/zle/adlint_pinit.h
781
799
  share/sample/zsh-4.3.15/adlint/zle/adlint_traits.yml
782
- spec/adlint/c/ctrlexpr_spec.rb
783
- spec/adlint/c/domain_spec.rb
784
- spec/adlint/c/operator_spec.rb
785
- spec/adlint/c/syntax_spec.rb
786
- spec/adlint/c/type_spec.rb
800
+ spec/adlint/cc1/ctrlexpr_spec.rb
801
+ spec/adlint/cc1/domain_spec.rb
802
+ spec/adlint/cc1/operator_spec.rb
803
+ spec/adlint/cc1/syntax_spec.rb
804
+ spec/adlint/cc1/type_spec.rb
805
+ spec/adlint/location_spec.rb
787
806
  spec/conf.d/default_traits.yml
788
807
  spec/conf.d/empty_cinit.h
789
808
  spec/conf.d/empty_pinit.h
809
+ spec/conf.d/project/foo.c
790
810
  spec/spec_helper.rb
data/NEWS CHANGED
@@ -3,7 +3,7 @@
3
3
  / | / _ |/ / / / | / /__ __/ Source Code Static Analyzer
4
4
  / /| | / / / / / / / |/ / / / AdLint - Advanced Lint
5
5
  / __ |/ /_/ / /___/ / /| / / /
6
- /_/ |_|_____/_____/_/_/ |_/ /_/ Copyright (C) 2010-2012, OGIS-RI Co.,Ltd.
6
+ /_/ |_|_____/_____/_/_/ |_/ /_/ Copyright (C) 2010-2013, OGIS-RI Co.,Ltd.
7
7
 
8
8
  This file is part of AdLint.
9
9
 
@@ -21,23 +21,52 @@
21
21
 
22
22
  ++
23
23
 
24
+ === \AdLint 3.0.0 is released (2013-03-27)
25
+
26
+ ==== Changes since the 2.6.14 release
27
+
28
+ * Support pathname based code-exam selection
29
+ * Support message-class based code-check selection
30
+ * Support annotation based message suppression
31
+ * Add new field indicates whether the function is declared implicitly or
32
+ explicitly to DCL(F) record of the metrics file
33
+ * Improve library interface to support concurrent analysis
34
+ * Fix W0003 code check not to misunderstand that the switch-statement has no
35
+ default clause when the switch-statement contains consecutive case and
36
+ default labels
37
+ * Fix W1061 code check in order to warn when an enum type of the argument
38
+ expression is not consistent to one of the corresponding parameter
39
+ * Fix W1062 code check in order to warn when an enum type of the rhs operand is
40
+ not consistent to one of the lhs operand
41
+ * Fix W1063 code check in order to warn when the function returns value of
42
+ non-constant inconsistent enum-typed expression
43
+ * Fix W0023 code check in order to warn only when the pointer operand appears
44
+ in an arithmetic expressions
45
+ * Fix W1073 code check in order no to warn when a function-call-expression is
46
+ specified as the controlling expression of switch-statement
47
+ * Fix bad fall-through logic of switch-statement
48
+ * Fix missing literal_prefix of LIT record for the octal-constant
49
+ * Fix bad value domain management in order to correctly thin a value domain of
50
+ the terminating execution path
51
+ * Support Ruby 2.0.0-p0
52
+
53
+ See the file
54
+ {ChangeLog}[http://adlint.sourceforge.net/pmwiki/upload.d/Main/ChangeLog]
55
+ for more details.
56
+
24
57
  === \AdLint 2.6.14 is released (2012-12-17)
25
58
 
26
59
  ==== Changes since the 2.6.12 release
27
60
 
28
61
  * Revise specification of code checks about implicit conversion from or to
29
62
  `char' type to clarify warning's intention
30
- * Improve the library interface to easily integrate AdLint with other products
31
- * Support lint and AdLint specific predefined macros; `__LINT__', `lint',
63
+ * Improve the library interface to easily integrate \AdLint with other products
64
+ * Support lint and \AdLint specific predefined macros; `__LINT__', `lint',
32
65
  `__lint', `__lint__', `__ADLINT__', `adlint', `__adlint' and `__adlint__'
33
66
  * Revise code checks' output specification of W0051, W0052, W0491, W0492,
34
67
  W0703, W0704, W0770, W0771, W0787, W0788, W0789, W0790 and W1037 to add
35
68
  context messages telling where is the problematic pair identifiers
36
69
 
37
- See the file
38
- {ChangeLog}[http://adlint.sourceforge.net/pmwiki/upload.d/Main/ChangeLog]
39
- for more details.
40
-
41
70
  === \AdLint 2.6.12 is released (2012-11-29)
42
71
 
43
72
  ==== Changes since the 2.6.10 release
data/README CHANGED
@@ -3,7 +3,7 @@
3
3
  / | / _ |/ / / / | / /__ __/ Source Code Static Analyzer
4
4
  / /| | / / / / / / / |/ / / / AdLint - Advanced Lint
5
5
  / __ |/ /_/ / /___/ / /| / / /
6
- /_/ |_|_____/_____/_/_/ |_/ /_/ Copyright (C) 2010-2012, OGIS-RI Co.,Ltd.
6
+ /_/ |_|_____/_____/_/_/ |_/ /_/ Copyright (C) 2010-2013, OGIS-RI Co.,Ltd.
7
7
 
8
8
  This file is part of AdLint.
9
9
 
@@ -44,7 +44,7 @@ For more details, visit our project homepage at
44
44
 
45
45
  == License
46
46
 
47
- Copyright (C) 2010-2012, {OGIS-RI}[http://www.ogis-ri.co.jp/] Co.,Ltd.
47
+ Copyright (C) 2010-2013, {OGIS-RI}[http://www.ogis-ri.co.jp/] Co.,Ltd.
48
48
 
49
49
  \AdLint is free software: you can redistribute it and/or modify it under the
50
50
  terms of the GNU General Public License as published by the Free Software
data/Rakefile CHANGED
@@ -3,7 +3,7 @@
3
3
  # / | / _ |/ / / / | / /__ __/ Source Code Static Analyzer
4
4
  # / /| | / / / / / / / |/ / / / AdLint - Advanced Lint
5
5
  # / __ |/ /_/ / /___/ / /| / / /
6
- # /_/ |_|_____/_____/_/_/ |_/ /_/ Copyright (C) 2010-2012, OGIS-RI Co.,Ltd.
6
+ # /_/ |_|_____/_____/_/_/ |_/ /_/ Copyright (C) 2010-2013, OGIS-RI Co.,Ltd.
7
7
  #
8
8
  # This file is part of AdLint.
9
9
  #
@@ -67,7 +67,7 @@ EOS
67
67
  / | / _ |/ / / / | / /__ __/ Source Code Static Analyzer
68
68
  / /| | / / / / / / / |/ / / / AdLint - Advanced Lint
69
69
  / __ |/ /_/ / /___/ / /| / / /
70
- /_/ |_|_____/_____/_/_/ |_/ /_/ Copyright (C) 2010-2012, OGIS-RI Co.,Ltd.
70
+ /_/ |_|_____/_____/_/_/ |_/ /_/ Copyright (C) 2010-2013, OGIS-RI Co.,Ltd.
71
71
 
72
72
  Thanks for installing AdLint!
73
73
  Please visit our project homepage at <http://adlint.sourceforge.net/>.
@@ -86,7 +86,7 @@ task :parser do
86
86
  chdir "lib/adlint/cpp" do
87
87
  racc Dir["*.y"]
88
88
  end
89
- chdir "lib/adlint/c" do
89
+ chdir "lib/adlint/cc1" do
90
90
  racc Dir["*.y"]
91
91
  end
92
92
  end
@@ -106,7 +106,7 @@ RDoc::Task.new(:rdoc) do |rd|
106
106
  rd.rdoc_files.include("bin/*")
107
107
  rd.rdoc_files.include("lib/**/*.{rb,y}")
108
108
  rd.rdoc_files.exclude("lib/adlint/cpp/constexpr.rb")
109
- rd.rdoc_files.exclude("lib/adlint/c/parser.rb")
109
+ rd.rdoc_files.exclude("lib/adlint/cc1/parser.rb")
110
110
  rd.options << "--charset=utf-8" << "--all"
111
111
  end
112
112
 
@@ -120,7 +120,7 @@ task :clean do
120
120
  chdir "lib/adlint/cpp" do
121
121
  rm_f Dir["*.output"]
122
122
  end
123
- chdir "lib/adlint/c" do
123
+ chdir "lib/adlint/cc1" do
124
124
  rm_f Dir["*.output"]
125
125
  end
126
126
  end
@@ -130,7 +130,7 @@ task :clobber => :clean do
130
130
  chdir "lib/adlint/cpp" do
131
131
  rm_f Dir["*.y"].map { |f| "#{File.basename(f, '.y')}.rb" }
132
132
  end
133
- chdir "lib/adlint/c" do
133
+ chdir "lib/adlint/cc1" do
134
134
  rm_f Dir["*.y"].map { |f| "#{File.basename(f, '.y')}.rb" }
135
135
  end
136
136
  rm_f Dir["share/doc/*.html"]
data/TODO CHANGED
@@ -3,7 +3,7 @@
3
3
  / | / _ |/ / / / | / /__ __/ Source Code Static Analyzer
4
4
  / /| | / / / / / / / |/ / / / AdLint - Advanced Lint
5
5
  / __ |/ /_/ / /___/ / /| / / /
6
- /_/ |_|_____/_____/_/_/ |_/ /_/ Copyright (C) 2010-2012, OGIS-RI Co.,Ltd.
6
+ /_/ |_|_____/_____/_/_/ |_/ /_/ Copyright (C) 2010-2013, OGIS-RI Co.,Ltd.
7
7
 
8
8
  This file is part of AdLint.
9
9
 
data/bin/adlint CHANGED
@@ -3,7 +3,7 @@
3
3
  # All in one analyzer.
4
4
  #
5
5
  # Author:: Yutaka Yanoh <mailto:yanoh@users.sourceforge.net>
6
- # Copyright:: Copyright (C) 2010-2012, OGIS-RI Co.,Ltd.
6
+ # Copyright:: Copyright (C) 2010-2013, OGIS-RI Co.,Ltd.
7
7
  # License:: GPLv3+: GNU General Public License version 3 or later
8
8
  #
9
9
  # Owner:: Yutaka Yanoh <mailto:yanoh@users.sourceforge.net>
@@ -13,7 +13,7 @@
13
13
  # / | / _ |/ / / / | / /__ __/ Source Code Static Analyzer
14
14
  # / /| | / / / / / / / |/ / / / AdLint - Advanced Lint
15
15
  # / __ |/ /_/ / /___/ / /| / / /
16
- # /_/ |_|_____/_____/_/_/ |_/ /_/ Copyright (C) 2010-2012, OGIS-RI Co.,Ltd.
16
+ # /_/ |_|_____/_____/_/_/ |_/ /_/ Copyright (C) 2010-2013, OGIS-RI Co.,Ltd.
17
17
  #
18
18
  # This file is part of AdLint.
19
19
  #
@@ -57,7 +57,7 @@ EOS
57
57
 
58
58
  require "getoptlong"
59
59
 
60
- parser = GetoptLong.new(
60
+ getopt = GetoptLong.new(
61
61
  ["--traits", "-t", GetoptLong::REQUIRED_ARGUMENT],
62
62
  ["--list-file", "-l", GetoptLong::REQUIRED_ARGUMENT],
63
63
  ["--output-dir", "-o", GetoptLong::REQUIRED_ARGUMENT],
@@ -76,16 +76,16 @@ begin
76
76
  strip_num = 0
77
77
  verbose = false
78
78
 
79
- parser.each do |option, value|
80
- case option
79
+ getopt.each do |opt_name, opt_val|
80
+ case opt_name
81
81
  when "--traits"
82
- traits_fpath = Pathname.new(value)
82
+ traits_fpath = Pathname.new(opt_val)
83
83
  when "--list-file"
84
- list_fpath = Pathname.new(value)
84
+ list_fpath = Pathname.new(opt_val)
85
85
  when "--output-dir"
86
- output_dpath = Pathname.new(value)
86
+ output_dpath = Pathname.new(opt_val)
87
87
  when "--strip"
88
- strip_num = value.to_i
88
+ strip_num = opt_val.to_i
89
89
  when "--verbose"
90
90
  verbose = true
91
91
  when "--version"
@@ -108,12 +108,12 @@ rescue
108
108
  end
109
109
 
110
110
  if list_fpath
111
- fpaths = File.readlines(list_fpath).map { |line| Pathname.new(line.chomp) }
111
+ input_fpaths = File.readlines(list_fpath).map { |s| Pathname.new(s.chomp) }
112
112
  else
113
- fpaths = ARGV.map { |str| Pathname.new(str) }
113
+ input_fpaths = ARGV.map { |str| Pathname.new(str) }
114
114
  end
115
115
 
116
- if fpaths.empty?
116
+ if input_fpaths.empty?
117
117
  $stderr.puts "#{File.basename(__FILE__)}: no input files"
118
118
  $stderr.puts usage
119
119
  exit 1
@@ -125,11 +125,20 @@ unless traits_fpath
125
125
  exit 1
126
126
  end
127
127
 
128
- AdLint.setup(File.basename(__FILE__), traits_fpath, verbose)
128
+ begin
129
+ adlint = AdLint::AdLint.new(traits_fpath, output_dpath, verbose)
129
130
 
130
- AdLint.sma(fpaths, strip_num, output_dpath)
131
+ failed = false
132
+ input_fpaths.each do |fpath|
133
+ adlint.run_sma!(fpath, strip_num) or failed = true
134
+ end
135
+ exit 4 if failed
131
136
 
132
- sma_met_fpaths = AdLint.sma_met_fpaths(fpaths, strip_num, output_dpath)
133
- AdLint.cma(sma_met_fpaths, output_dpath)
137
+ adlint.run_cma!(adlint.met_fpaths_of(input_fpaths, strip_num)) or exit 5
138
+ rescue => ex
139
+ $stderr.puts ex.message, ex.backtrace
140
+ $stderr.puts
141
+ exit 2
142
+ end
134
143
 
135
144
  exit 0
data/bin/adlint_chk CHANGED
@@ -3,7 +3,7 @@
3
3
  # Configuration validator.
4
4
  #
5
5
  # Author:: Yutaka Yanoh <mailto:yanoh@users.sourceforge.net>
6
- # Copyright:: Copyright (C) 2010-2012, OGIS-RI Co.,Ltd.
6
+ # Copyright:: Copyright (C) 2010-2013, OGIS-RI Co.,Ltd.
7
7
  # License:: GPLv3+: GNU General Public License version 3 or later
8
8
  #
9
9
  # Owner:: Yutaka Yanoh <mailto:yanoh@users.sourceforge.net>
@@ -13,7 +13,7 @@
13
13
  # / | / _ |/ / / / | / /__ __/ Source Code Static Analyzer
14
14
  # / /| | / / / / / / / |/ / / / AdLint - Advanced Lint
15
15
  # / __ |/ /_/ / /___/ / /| / / /
16
- # /_/ |_|_____/_____/_/_/ |_/ /_/ Copyright (C) 2010-2012, OGIS-RI Co.,Ltd.
16
+ # /_/ |_|_____/_____/_/_/ |_/ /_/ Copyright (C) 2010-2013, OGIS-RI Co.,Ltd.
17
17
  #
18
18
  # This file is part of AdLint.
19
19
  #
@@ -56,7 +56,7 @@ EOS
56
56
 
57
57
  require "getoptlong"
58
58
 
59
- parser = GetoptLong.new(
59
+ getopt = GetoptLong.new(
60
60
  ["--traits", "-t", GetoptLong::REQUIRED_ARGUMENT],
61
61
  ["--output-dir", "-o", GetoptLong::REQUIRED_ARGUMENT],
62
62
  ["--strip", "-p", GetoptLong::REQUIRED_ARGUMENT],
@@ -73,14 +73,14 @@ begin
73
73
  strip_num = 0
74
74
  verbose = false
75
75
 
76
- parser.each_option do |option, value|
77
- case option
76
+ getopt.each_option do |opt_name, opt_val|
77
+ case opt_name
78
78
  when "--traits"
79
- traits_fpath = Pathname.new(value)
79
+ traits_fpath = Pathname.new(opt_val)
80
80
  when "--output-dir"
81
- output_dpath = Pathname.new(value)
81
+ output_dpath = Pathname.new(opt_val)
82
82
  when "--strip"
83
- strip_num = value.to_i
83
+ strip_num = opt_val.to_i
84
84
  when "--verbose"
85
85
  verbose = true
86
86
  when "--version"
@@ -102,9 +102,9 @@ rescue
102
102
  exit 1
103
103
  end
104
104
 
105
- fpaths = ARGV.map { |str| Pathname.new(str) }
105
+ input_fpaths = ARGV.map { |str| Pathname.new(str) }
106
106
 
107
- if fpaths.empty?
107
+ if input_fpaths.empty?
108
108
  $stderr.puts "#{File.basename(__FILE__)}: no input files"
109
109
  $stderr.puts usage
110
110
  exit 1
@@ -116,8 +116,18 @@ unless traits_fpath
116
116
  exit 1
117
117
  end
118
118
 
119
- AdLint.setup(File.basename(__FILE__), traits_fpath, verbose)
119
+ begin
120
+ adlint = AdLint::AdLint.new(traits_fpath, output_dpath, verbose)
120
121
 
121
- AdLint.chk(fpaths, strip_num, output_dpath)
122
+ failed = false
123
+ input_fpaths.each do |fpath|
124
+ adlint.run_chk!(fpath, strip_num) or failed = true
125
+ end
126
+ exit 6 if failed
127
+ rescue => ex
128
+ $stderr.puts ex.message, ex.backtrace
129
+ $stderr.puts
130
+ exit 2
131
+ end
122
132
 
123
133
  exit 0