adlint 3.2.0 → 3.2.6

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 (371) hide show
  1. checksums.yaml +7 -0
  2. data/AUTHORS +1 -2
  3. data/ChangeLog +196 -5236
  4. data/INSTALL +1 -1
  5. data/MANIFEST +4 -2
  6. data/NEWS +30 -13
  7. data/README +2 -2
  8. data/Rakefile +2 -2
  9. data/TODO +1 -1
  10. data/bin/adlint +2 -2
  11. data/bin/adlint_chk +2 -2
  12. data/bin/adlint_cma +2 -2
  13. data/bin/adlint_sma +2 -2
  14. data/bin/adlintize +2 -2
  15. data/etc/conf.d/fallback/cinit.erb +1 -1
  16. data/etc/conf.d/fallback/traits.erb +1 -1
  17. data/etc/conf.d/i686-cygwin/cinit-gcc_4.3.4.erb +1 -1
  18. data/etc/conf.d/i686-cygwin/traits-gcc_4.3.4.erb +1 -1
  19. data/etc/conf.d/i686-devkit/cinit-gcc_4.5.2.erb +1 -1
  20. data/etc/conf.d/i686-devkit/traits-gcc_4.5.2.erb +1 -1
  21. data/etc/conf.d/i686-linux/cinit-gcc_4.5.1.erb +1 -1
  22. data/etc/conf.d/i686-linux/traits-gcc_4.5.1.erb +1 -1
  23. data/etc/conf.d/i686-mingw/cinit-gcc_4.6.1.erb +1 -1
  24. data/etc/conf.d/i686-mingw/traits-gcc_4.6.1.erb +1 -1
  25. data/etc/conf.d/noarch/GNUmakefile.erb +1 -1
  26. data/etc/conf.d/noarch/adlint_all_bat.erb +1 -1
  27. data/etc/conf.d/noarch/adlint_all_sh.erb +1 -1
  28. data/etc/conf.d/noarch/pinit.erb +1 -1
  29. data/etc/conf.d/x86_64-centos_6.4/cinit-gcc_4.4.7.erb +150 -0
  30. data/etc/conf.d/x86_64-centos_6.4/traits-gcc_4.4.7.erb +290 -0
  31. data/etc/conf.d/x86_64-ubuntu_12.04/cinit-gcc_4.6.3.erb +1 -1
  32. data/etc/conf.d/x86_64-ubuntu_12.04/traits-gcc_4.6.3.erb +1 -1
  33. data/etc/mesg.d/c_builtin/en_US/messages.yml +2 -2
  34. data/etc/mesg.d/c_builtin/ja_JP/messages.yml +3 -3
  35. data/etc/mesg.d/core/en_US/messages.yml +6 -2
  36. data/etc/mesg.d/core/ja_JP/messages.yml +6 -2
  37. data/features/code_check/E0008.feature +122 -0
  38. data/features/code_check/E0016.feature +49 -0
  39. data/features/code_check/E0018.feature +99 -0
  40. data/features/code_check/W0460.feature +8 -8
  41. data/lib/adlint.rb +2 -2
  42. data/lib/adlint/analyzer.rb +2 -2
  43. data/lib/adlint/annot.rb +2 -2
  44. data/lib/adlint/cc1.rb +2 -2
  45. data/lib/adlint/cc1/branch.rb +2 -2
  46. data/lib/adlint/cc1/builtin.rb +2 -2
  47. data/lib/adlint/cc1/const.rb +2 -2
  48. data/lib/adlint/cc1/conv.rb +2 -2
  49. data/lib/adlint/cc1/ctrlexpr.rb +2 -2
  50. data/lib/adlint/cc1/domain.rb +2 -2
  51. data/lib/adlint/cc1/enum.rb +2 -2
  52. data/lib/adlint/cc1/environ.rb +2 -2
  53. data/lib/adlint/cc1/expr.rb +110 -48
  54. data/lib/adlint/cc1/format.rb +2 -2
  55. data/lib/adlint/cc1/interp.rb +46 -12
  56. data/lib/adlint/cc1/lexer.rb +44 -11
  57. data/lib/adlint/cc1/mediator.rb +16 -2
  58. data/lib/adlint/cc1/object.rb +2 -2
  59. data/lib/adlint/cc1/operator.rb +2 -2
  60. data/lib/adlint/cc1/option.rb +3 -3
  61. data/lib/adlint/cc1/parser.rb +1011 -999
  62. data/lib/adlint/cc1/parser.y +20 -11
  63. data/lib/adlint/cc1/phase.rb +2 -2
  64. data/lib/adlint/cc1/resolver.rb +2 -2
  65. data/lib/adlint/cc1/scanner.rb +2 -2
  66. data/lib/adlint/cc1/scope.rb +2 -2
  67. data/lib/adlint/cc1/seqp.rb +2 -2
  68. data/lib/adlint/cc1/syntax.rb +42 -10
  69. data/lib/adlint/cc1/trace.rb +2 -2
  70. data/lib/adlint/cc1/type.rb +72 -2
  71. data/lib/adlint/cc1/util.rb +2 -2
  72. data/lib/adlint/cc1/value.rb +9 -3
  73. data/lib/adlint/code.rb +2 -2
  74. data/lib/adlint/cpp.rb +2 -2
  75. data/lib/adlint/cpp/asm.rb +2 -2
  76. data/lib/adlint/cpp/constexpr.rb +1 -1
  77. data/lib/adlint/cpp/constexpr.y +2 -2
  78. data/lib/adlint/cpp/eval.rb +2 -2
  79. data/lib/adlint/cpp/lexer.rb +13 -3
  80. data/lib/adlint/cpp/macro.rb +2 -2
  81. data/lib/adlint/cpp/phase.rb +2 -2
  82. data/lib/adlint/cpp/scanner.rb +2 -2
  83. data/lib/adlint/cpp/source.rb +2 -2
  84. data/lib/adlint/cpp/subst.rb +6 -2
  85. data/lib/adlint/cpp/syntax.rb +2 -2
  86. data/lib/adlint/cpp/util.rb +2 -2
  87. data/lib/adlint/driver.rb +2 -2
  88. data/lib/adlint/error.rb +2 -2
  89. data/lib/adlint/exam.rb +20 -8
  90. data/lib/adlint/exam/c_builtin.rb +4 -6
  91. data/lib/adlint/exam/c_builtin/cc1_check.rb +1380 -461
  92. data/lib/adlint/exam/c_builtin/cc1_code.rb +25 -25
  93. data/lib/adlint/exam/c_builtin/cc1_metric.rb +180 -209
  94. data/lib/adlint/exam/c_builtin/cpp_check.rb +211 -50
  95. data/lib/adlint/exam/c_builtin/cpp_code.rb +19 -19
  96. data/lib/adlint/exam/c_builtin/ld_check.rb +2 -2
  97. data/lib/adlint/exam/c_builtin/ld_metric.rb +2 -2
  98. data/lib/adlint/lang.rb +2 -2
  99. data/lib/adlint/ld.rb +2 -2
  100. data/lib/adlint/ld/object.rb +3 -3
  101. data/lib/adlint/ld/phase.rb +2 -2
  102. data/lib/adlint/ld/typedef.rb +2 -2
  103. data/lib/adlint/ld/util.rb +2 -2
  104. data/lib/adlint/lexer.rb +2 -2
  105. data/lib/adlint/location.rb +2 -2
  106. data/lib/adlint/memo.rb +2 -2
  107. data/lib/adlint/message.rb +2 -2
  108. data/lib/adlint/metric.rb +2 -2
  109. data/lib/adlint/monitor.rb +2 -2
  110. data/lib/adlint/phase.rb +2 -2
  111. data/lib/adlint/prelude.rb +2 -2
  112. data/lib/adlint/report.rb +4 -4
  113. data/lib/adlint/source.rb +2 -2
  114. data/lib/adlint/supp.rb +2 -2
  115. data/lib/adlint/symbol.rb +2 -2
  116. data/lib/adlint/token.rb +2 -2
  117. data/lib/adlint/traits.rb +2 -2
  118. data/lib/adlint/util.rb +2 -2
  119. data/lib/adlint/version.rb +6 -6
  120. data/share/HEADER +2 -2
  121. data/share/doc/developers_guide_ja.html +20 -9
  122. data/share/doc/developers_guide_ja.texi +18 -7
  123. data/share/doc/samples/GNUmakefile +1 -1
  124. data/share/doc/samples/adlint_traits.yml +1 -1
  125. data/share/doc/users_guide_en.html +6177 -6138
  126. data/share/doc/users_guide_en.texi +35 -5
  127. data/share/doc/users_guide_ja.html +6192 -6153
  128. data/share/doc/users_guide_ja.texi +35 -5
  129. data/share/sample/bison-2.5/adlint/GNUmakefile +1 -1
  130. data/share/sample/bison-2.5/adlint/adlint_traits.yml +1 -1
  131. data/share/sample/bison-2.5/adlint/lib/GNUmakefile +1 -1
  132. data/share/sample/bison-2.5/adlint/lib/adlint_cinit.h +1 -1
  133. data/share/sample/bison-2.5/adlint/lib/adlint_pinit.h +1 -1
  134. data/share/sample/bison-2.5/adlint/lib/adlint_traits.yml +1 -1
  135. data/share/sample/bison-2.5/adlint/src/GNUmakefile +1 -1
  136. data/share/sample/bison-2.5/adlint/src/adlint_cinit.h +1 -1
  137. data/share/sample/bison-2.5/adlint/src/adlint_pinit.h +1 -1
  138. data/share/sample/bison-2.5/adlint/src/adlint_traits.yml +1 -1
  139. data/share/sample/ctags-5.8/adlint/GNUmakefile +1 -1
  140. data/share/sample/ctags-5.8/adlint/adlint_cinit.h +1 -1
  141. data/share/sample/ctags-5.8/adlint/adlint_pinit.h +1 -1
  142. data/share/sample/ctags-5.8/adlint/adlint_traits.yml +1 -1
  143. data/share/sample/flex-2.5.35/adlint/GNUmakefile +1 -1
  144. data/share/sample/flex-2.5.35/adlint/adlint_cinit.h +1 -1
  145. data/share/sample/flex-2.5.35/adlint/adlint_pinit.h +1 -1
  146. data/share/sample/flex-2.5.35/adlint/adlint_traits.yml +1 -1
  147. data/share/sample/ruby-1.9.3-p0/adlint/GNUmakefile +1 -1
  148. data/share/sample/ruby-1.9.3-p0/adlint/adlint_traits.yml +1 -1
  149. data/share/sample/ruby-1.9.3-p0/adlint/core/GNUmakefile +1 -1
  150. data/share/sample/ruby-1.9.3-p0/adlint/core/adlint_cinit.h +1 -1
  151. data/share/sample/ruby-1.9.3-p0/adlint/core/adlint_pinit.h +1 -1
  152. data/share/sample/ruby-1.9.3-p0/adlint/core/adlint_traits.yml +1 -1
  153. data/share/sample/ruby-1.9.3-p0/adlint/enc-trans/GNUmakefile +1 -1
  154. data/share/sample/ruby-1.9.3-p0/adlint/enc-trans/adlint_cinit.h +1 -1
  155. data/share/sample/ruby-1.9.3-p0/adlint/enc-trans/adlint_pinit.h +1 -1
  156. data/share/sample/ruby-1.9.3-p0/adlint/enc-trans/adlint_traits.yml +1 -1
  157. data/share/sample/ruby-1.9.3-p0/adlint/enc/GNUmakefile +1 -1
  158. data/share/sample/ruby-1.9.3-p0/adlint/enc/adlint_cinit.h +1 -1
  159. data/share/sample/ruby-1.9.3-p0/adlint/enc/adlint_pinit.h +1 -1
  160. data/share/sample/ruby-1.9.3-p0/adlint/enc/adlint_traits.yml +1 -1
  161. data/share/sample/ruby-1.9.3-p0/adlint/ext-bigdecimal/GNUmakefile +1 -1
  162. data/share/sample/ruby-1.9.3-p0/adlint/ext-bigdecimal/adlint_cinit.h +1 -1
  163. data/share/sample/ruby-1.9.3-p0/adlint/ext-bigdecimal/adlint_pinit.h +1 -1
  164. data/share/sample/ruby-1.9.3-p0/adlint/ext-bigdecimal/adlint_traits.yml +1 -1
  165. data/share/sample/ruby-1.9.3-p0/adlint/ext-continuation/GNUmakefile +1 -1
  166. data/share/sample/ruby-1.9.3-p0/adlint/ext-continuation/adlint_cinit.h +1 -1
  167. data/share/sample/ruby-1.9.3-p0/adlint/ext-continuation/adlint_pinit.h +1 -1
  168. data/share/sample/ruby-1.9.3-p0/adlint/ext-continuation/adlint_traits.yml +1 -1
  169. data/share/sample/ruby-1.9.3-p0/adlint/ext-coverage/GNUmakefile +1 -1
  170. data/share/sample/ruby-1.9.3-p0/adlint/ext-coverage/adlint_cinit.h +1 -1
  171. data/share/sample/ruby-1.9.3-p0/adlint/ext-coverage/adlint_pinit.h +1 -1
  172. data/share/sample/ruby-1.9.3-p0/adlint/ext-coverage/adlint_traits.yml +1 -1
  173. data/share/sample/ruby-1.9.3-p0/adlint/ext-curses/GNUmakefile +1 -1
  174. data/share/sample/ruby-1.9.3-p0/adlint/ext-curses/adlint_cinit.h +1 -1
  175. data/share/sample/ruby-1.9.3-p0/adlint/ext-curses/adlint_pinit.h +1 -1
  176. data/share/sample/ruby-1.9.3-p0/adlint/ext-curses/adlint_traits.yml +1 -1
  177. data/share/sample/ruby-1.9.3-p0/adlint/ext-date/GNUmakefile +1 -1
  178. data/share/sample/ruby-1.9.3-p0/adlint/ext-date/adlint_cinit.h +1 -1
  179. data/share/sample/ruby-1.9.3-p0/adlint/ext-date/adlint_pinit.h +1 -1
  180. data/share/sample/ruby-1.9.3-p0/adlint/ext-date/adlint_traits.yml +1 -1
  181. data/share/sample/ruby-1.9.3-p0/adlint/ext-dbm/GNUmakefile +1 -1
  182. data/share/sample/ruby-1.9.3-p0/adlint/ext-dbm/adlint_cinit.h +1 -1
  183. data/share/sample/ruby-1.9.3-p0/adlint/ext-dbm/adlint_pinit.h +1 -1
  184. data/share/sample/ruby-1.9.3-p0/adlint/ext-dbm/adlint_traits.yml +1 -1
  185. data/share/sample/ruby-1.9.3-p0/adlint/ext-digest-bubblebabble/GNUmakefile +1 -1
  186. data/share/sample/ruby-1.9.3-p0/adlint/ext-digest-bubblebabble/adlint_cinit.h +1 -1
  187. data/share/sample/ruby-1.9.3-p0/adlint/ext-digest-bubblebabble/adlint_pinit.h +1 -1
  188. data/share/sample/ruby-1.9.3-p0/adlint/ext-digest-bubblebabble/adlint_traits.yml +1 -1
  189. data/share/sample/ruby-1.9.3-p0/adlint/ext-digest-md5/GNUmakefile +1 -1
  190. data/share/sample/ruby-1.9.3-p0/adlint/ext-digest-md5/adlint_cinit.h +1 -1
  191. data/share/sample/ruby-1.9.3-p0/adlint/ext-digest-md5/adlint_pinit.h +1 -1
  192. data/share/sample/ruby-1.9.3-p0/adlint/ext-digest-md5/adlint_traits.yml +1 -1
  193. data/share/sample/ruby-1.9.3-p0/adlint/ext-digest-rmd160/GNUmakefile +1 -1
  194. data/share/sample/ruby-1.9.3-p0/adlint/ext-digest-rmd160/adlint_cinit.h +1 -1
  195. data/share/sample/ruby-1.9.3-p0/adlint/ext-digest-rmd160/adlint_pinit.h +1 -1
  196. data/share/sample/ruby-1.9.3-p0/adlint/ext-digest-rmd160/adlint_traits.yml +1 -1
  197. data/share/sample/ruby-1.9.3-p0/adlint/ext-digest-sha1/GNUmakefile +1 -1
  198. data/share/sample/ruby-1.9.3-p0/adlint/ext-digest-sha1/adlint_cinit.h +1 -1
  199. data/share/sample/ruby-1.9.3-p0/adlint/ext-digest-sha1/adlint_pinit.h +1 -1
  200. data/share/sample/ruby-1.9.3-p0/adlint/ext-digest-sha1/adlint_traits.yml +1 -1
  201. data/share/sample/ruby-1.9.3-p0/adlint/ext-digest-sha2/GNUmakefile +1 -1
  202. data/share/sample/ruby-1.9.3-p0/adlint/ext-digest-sha2/adlint_cinit.h +1 -1
  203. data/share/sample/ruby-1.9.3-p0/adlint/ext-digest-sha2/adlint_pinit.h +1 -1
  204. data/share/sample/ruby-1.9.3-p0/adlint/ext-digest-sha2/adlint_traits.yml +1 -1
  205. data/share/sample/ruby-1.9.3-p0/adlint/ext-digest/GNUmakefile +1 -1
  206. data/share/sample/ruby-1.9.3-p0/adlint/ext-digest/adlint_cinit.h +1 -1
  207. data/share/sample/ruby-1.9.3-p0/adlint/ext-digest/adlint_pinit.h +1 -1
  208. data/share/sample/ruby-1.9.3-p0/adlint/ext-digest/adlint_traits.yml +1 -1
  209. data/share/sample/ruby-1.9.3-p0/adlint/ext-dl-callback/GNUmakefile +1 -1
  210. data/share/sample/ruby-1.9.3-p0/adlint/ext-dl-callback/adlint_cinit.h +1 -1
  211. data/share/sample/ruby-1.9.3-p0/adlint/ext-dl-callback/adlint_pinit.h +1 -1
  212. data/share/sample/ruby-1.9.3-p0/adlint/ext-dl-callback/adlint_traits.yml +1 -1
  213. data/share/sample/ruby-1.9.3-p0/adlint/ext-dl/GNUmakefile +1 -1
  214. data/share/sample/ruby-1.9.3-p0/adlint/ext-dl/adlint_cinit.h +1 -1
  215. data/share/sample/ruby-1.9.3-p0/adlint/ext-dl/adlint_pinit.h +1 -1
  216. data/share/sample/ruby-1.9.3-p0/adlint/ext-dl/adlint_traits.yml +1 -1
  217. data/share/sample/ruby-1.9.3-p0/adlint/ext-etc/GNUmakefile +1 -1
  218. data/share/sample/ruby-1.9.3-p0/adlint/ext-etc/adlint_cinit.h +1 -1
  219. data/share/sample/ruby-1.9.3-p0/adlint/ext-etc/adlint_pinit.h +1 -1
  220. data/share/sample/ruby-1.9.3-p0/adlint/ext-etc/adlint_traits.yml +1 -1
  221. data/share/sample/ruby-1.9.3-p0/adlint/ext-fcntl/GNUmakefile +1 -1
  222. data/share/sample/ruby-1.9.3-p0/adlint/ext-fcntl/adlint_cinit.h +1 -1
  223. data/share/sample/ruby-1.9.3-p0/adlint/ext-fcntl/adlint_pinit.h +1 -1
  224. data/share/sample/ruby-1.9.3-p0/adlint/ext-fcntl/adlint_traits.yml +1 -1
  225. data/share/sample/ruby-1.9.3-p0/adlint/ext-fiber/GNUmakefile +1 -1
  226. data/share/sample/ruby-1.9.3-p0/adlint/ext-fiber/adlint_cinit.h +1 -1
  227. data/share/sample/ruby-1.9.3-p0/adlint/ext-fiber/adlint_pinit.h +1 -1
  228. data/share/sample/ruby-1.9.3-p0/adlint/ext-fiber/adlint_traits.yml +1 -1
  229. data/share/sample/ruby-1.9.3-p0/adlint/ext-fiddle/GNUmakefile +1 -1
  230. data/share/sample/ruby-1.9.3-p0/adlint/ext-fiddle/adlint_cinit.h +1 -1
  231. data/share/sample/ruby-1.9.3-p0/adlint/ext-fiddle/adlint_pinit.h +1 -1
  232. data/share/sample/ruby-1.9.3-p0/adlint/ext-fiddle/adlint_traits.yml +1 -1
  233. data/share/sample/ruby-1.9.3-p0/adlint/ext-gdbm/GNUmakefile +1 -1
  234. data/share/sample/ruby-1.9.3-p0/adlint/ext-gdbm/adlint_cinit.h +1 -1
  235. data/share/sample/ruby-1.9.3-p0/adlint/ext-gdbm/adlint_pinit.h +1 -1
  236. data/share/sample/ruby-1.9.3-p0/adlint/ext-gdbm/adlint_traits.yml +1 -1
  237. data/share/sample/ruby-1.9.3-p0/adlint/ext-iconv/GNUmakefile +1 -1
  238. data/share/sample/ruby-1.9.3-p0/adlint/ext-iconv/adlint_cinit.h +1 -1
  239. data/share/sample/ruby-1.9.3-p0/adlint/ext-iconv/adlint_pinit.h +1 -1
  240. data/share/sample/ruby-1.9.3-p0/adlint/ext-iconv/adlint_traits.yml +1 -1
  241. data/share/sample/ruby-1.9.3-p0/adlint/ext-io-console/GNUmakefile +1 -1
  242. data/share/sample/ruby-1.9.3-p0/adlint/ext-io-console/adlint_cinit.h +1 -1
  243. data/share/sample/ruby-1.9.3-p0/adlint/ext-io-console/adlint_pinit.h +1 -1
  244. data/share/sample/ruby-1.9.3-p0/adlint/ext-io-console/adlint_traits.yml +1 -1
  245. data/share/sample/ruby-1.9.3-p0/adlint/ext-io-nonblock/GNUmakefile +1 -1
  246. data/share/sample/ruby-1.9.3-p0/adlint/ext-io-nonblock/adlint_cinit.h +1 -1
  247. data/share/sample/ruby-1.9.3-p0/adlint/ext-io-nonblock/adlint_pinit.h +1 -1
  248. data/share/sample/ruby-1.9.3-p0/adlint/ext-io-nonblock/adlint_traits.yml +1 -1
  249. data/share/sample/ruby-1.9.3-p0/adlint/ext-io-wait/GNUmakefile +1 -1
  250. data/share/sample/ruby-1.9.3-p0/adlint/ext-io-wait/adlint_cinit.h +1 -1
  251. data/share/sample/ruby-1.9.3-p0/adlint/ext-io-wait/adlint_pinit.h +1 -1
  252. data/share/sample/ruby-1.9.3-p0/adlint/ext-io-wait/adlint_traits.yml +1 -1
  253. data/share/sample/ruby-1.9.3-p0/adlint/ext-json-generator/GNUmakefile +1 -1
  254. data/share/sample/ruby-1.9.3-p0/adlint/ext-json-generator/adlint_cinit.h +1 -1
  255. data/share/sample/ruby-1.9.3-p0/adlint/ext-json-generator/adlint_pinit.h +1 -1
  256. data/share/sample/ruby-1.9.3-p0/adlint/ext-json-generator/adlint_traits.yml +1 -1
  257. data/share/sample/ruby-1.9.3-p0/adlint/ext-json-parser/GNUmakefile +1 -1
  258. data/share/sample/ruby-1.9.3-p0/adlint/ext-json-parser/adlint_cinit.h +1 -1
  259. data/share/sample/ruby-1.9.3-p0/adlint/ext-json-parser/adlint_pinit.h +1 -1
  260. data/share/sample/ruby-1.9.3-p0/adlint/ext-json-parser/adlint_traits.yml +1 -1
  261. data/share/sample/ruby-1.9.3-p0/adlint/ext-mathn-complex/GNUmakefile +1 -1
  262. data/share/sample/ruby-1.9.3-p0/adlint/ext-mathn-complex/adlint_cinit.h +1 -1
  263. data/share/sample/ruby-1.9.3-p0/adlint/ext-mathn-complex/adlint_pinit.h +1 -1
  264. data/share/sample/ruby-1.9.3-p0/adlint/ext-mathn-complex/adlint_traits.yml +1 -1
  265. data/share/sample/ruby-1.9.3-p0/adlint/ext-mathn-rational/GNUmakefile +1 -1
  266. data/share/sample/ruby-1.9.3-p0/adlint/ext-mathn-rational/adlint_cinit.h +1 -1
  267. data/share/sample/ruby-1.9.3-p0/adlint/ext-mathn-rational/adlint_pinit.h +1 -1
  268. data/share/sample/ruby-1.9.3-p0/adlint/ext-mathn-rational/adlint_traits.yml +1 -1
  269. data/share/sample/ruby-1.9.3-p0/adlint/ext-nkf/GNUmakefile +1 -1
  270. data/share/sample/ruby-1.9.3-p0/adlint/ext-nkf/adlint_cinit.h +1 -1
  271. data/share/sample/ruby-1.9.3-p0/adlint/ext-nkf/adlint_pinit.h +1 -1
  272. data/share/sample/ruby-1.9.3-p0/adlint/ext-nkf/adlint_traits.yml +1 -1
  273. data/share/sample/ruby-1.9.3-p0/adlint/ext-openssl/GNUmakefile +1 -1
  274. data/share/sample/ruby-1.9.3-p0/adlint/ext-openssl/adlint_cinit.h +1 -1
  275. data/share/sample/ruby-1.9.3-p0/adlint/ext-openssl/adlint_pinit.h +1 -1
  276. data/share/sample/ruby-1.9.3-p0/adlint/ext-openssl/adlint_traits.yml +1 -1
  277. data/share/sample/ruby-1.9.3-p0/adlint/ext-pathname/GNUmakefile +1 -1
  278. data/share/sample/ruby-1.9.3-p0/adlint/ext-pathname/adlint_cinit.h +1 -1
  279. data/share/sample/ruby-1.9.3-p0/adlint/ext-pathname/adlint_pinit.h +1 -1
  280. data/share/sample/ruby-1.9.3-p0/adlint/ext-pathname/adlint_traits.yml +1 -1
  281. data/share/sample/ruby-1.9.3-p0/adlint/ext-psych/GNUmakefile +1 -1
  282. data/share/sample/ruby-1.9.3-p0/adlint/ext-psych/adlint_cinit.h +1 -1
  283. data/share/sample/ruby-1.9.3-p0/adlint/ext-psych/adlint_pinit.h +1 -1
  284. data/share/sample/ruby-1.9.3-p0/adlint/ext-psych/adlint_traits.yml +1 -1
  285. data/share/sample/ruby-1.9.3-p0/adlint/ext-pty/GNUmakefile +1 -1
  286. data/share/sample/ruby-1.9.3-p0/adlint/ext-pty/adlint_cinit.h +1 -1
  287. data/share/sample/ruby-1.9.3-p0/adlint/ext-pty/adlint_pinit.h +1 -1
  288. data/share/sample/ruby-1.9.3-p0/adlint/ext-pty/adlint_traits.yml +1 -1
  289. data/share/sample/ruby-1.9.3-p0/adlint/ext-racc-cparse/GNUmakefile +1 -1
  290. data/share/sample/ruby-1.9.3-p0/adlint/ext-racc-cparse/adlint_cinit.h +1 -1
  291. data/share/sample/ruby-1.9.3-p0/adlint/ext-racc-cparse/adlint_pinit.h +1 -1
  292. data/share/sample/ruby-1.9.3-p0/adlint/ext-racc-cparse/adlint_traits.yml +1 -1
  293. data/share/sample/ruby-1.9.3-p0/adlint/ext-readline/GNUmakefile +1 -1
  294. data/share/sample/ruby-1.9.3-p0/adlint/ext-readline/adlint_cinit.h +1 -1
  295. data/share/sample/ruby-1.9.3-p0/adlint/ext-readline/adlint_pinit.h +1 -1
  296. data/share/sample/ruby-1.9.3-p0/adlint/ext-readline/adlint_traits.yml +1 -1
  297. data/share/sample/ruby-1.9.3-p0/adlint/ext-ripper/GNUmakefile +1 -1
  298. data/share/sample/ruby-1.9.3-p0/adlint/ext-ripper/adlint_cinit.h +1 -1
  299. data/share/sample/ruby-1.9.3-p0/adlint/ext-ripper/adlint_pinit.h +1 -1
  300. data/share/sample/ruby-1.9.3-p0/adlint/ext-ripper/adlint_traits.yml +1 -1
  301. data/share/sample/ruby-1.9.3-p0/adlint/ext-sdbm/GNUmakefile +1 -1
  302. data/share/sample/ruby-1.9.3-p0/adlint/ext-sdbm/adlint_cinit.h +1 -1
  303. data/share/sample/ruby-1.9.3-p0/adlint/ext-sdbm/adlint_pinit.h +1 -1
  304. data/share/sample/ruby-1.9.3-p0/adlint/ext-sdbm/adlint_traits.yml +1 -1
  305. data/share/sample/ruby-1.9.3-p0/adlint/ext-socket/GNUmakefile +1 -1
  306. data/share/sample/ruby-1.9.3-p0/adlint/ext-socket/adlint_cinit.h +1 -1
  307. data/share/sample/ruby-1.9.3-p0/adlint/ext-socket/adlint_pinit.h +1 -1
  308. data/share/sample/ruby-1.9.3-p0/adlint/ext-socket/adlint_traits.yml +1 -1
  309. data/share/sample/ruby-1.9.3-p0/adlint/ext-stringio/GNUmakefile +1 -1
  310. data/share/sample/ruby-1.9.3-p0/adlint/ext-stringio/adlint_cinit.h +1 -1
  311. data/share/sample/ruby-1.9.3-p0/adlint/ext-stringio/adlint_pinit.h +1 -1
  312. data/share/sample/ruby-1.9.3-p0/adlint/ext-stringio/adlint_traits.yml +1 -1
  313. data/share/sample/ruby-1.9.3-p0/adlint/ext-strscan/GNUmakefile +1 -1
  314. data/share/sample/ruby-1.9.3-p0/adlint/ext-strscan/adlint_cinit.h +1 -1
  315. data/share/sample/ruby-1.9.3-p0/adlint/ext-strscan/adlint_pinit.h +1 -1
  316. data/share/sample/ruby-1.9.3-p0/adlint/ext-strscan/adlint_traits.yml +1 -1
  317. data/share/sample/ruby-1.9.3-p0/adlint/ext-syck/GNUmakefile +1 -1
  318. data/share/sample/ruby-1.9.3-p0/adlint/ext-syck/adlint_cinit.h +1 -1
  319. data/share/sample/ruby-1.9.3-p0/adlint/ext-syck/adlint_pinit.h +1 -1
  320. data/share/sample/ruby-1.9.3-p0/adlint/ext-syck/adlint_traits.yml +1 -1
  321. data/share/sample/ruby-1.9.3-p0/adlint/ext-syslog/GNUmakefile +1 -1
  322. data/share/sample/ruby-1.9.3-p0/adlint/ext-syslog/adlint_cinit.h +1 -1
  323. data/share/sample/ruby-1.9.3-p0/adlint/ext-syslog/adlint_pinit.h +1 -1
  324. data/share/sample/ruby-1.9.3-p0/adlint/ext-syslog/adlint_traits.yml +1 -1
  325. data/share/sample/ruby-1.9.3-p0/adlint/ext-zlib/GNUmakefile +1 -1
  326. data/share/sample/ruby-1.9.3-p0/adlint/ext-zlib/adlint_cinit.h +1 -1
  327. data/share/sample/ruby-1.9.3-p0/adlint/ext-zlib/adlint_pinit.h +1 -1
  328. data/share/sample/ruby-1.9.3-p0/adlint/ext-zlib/adlint_traits.yml +1 -1
  329. data/share/sample/screen-4.0.3/adlint/GNUmakefile +1 -1
  330. data/share/sample/screen-4.0.3/adlint/adlint_cinit.h +1 -1
  331. data/share/sample/screen-4.0.3/adlint/adlint_pinit.h +1 -1
  332. data/share/sample/screen-4.0.3/adlint/adlint_traits.yml +1 -1
  333. data/share/sample/vim-7.3/adlint/vim/GNUmakefile +1 -1
  334. data/share/sample/vim-7.3/adlint/vim/adlint_cinit.h +1 -1
  335. data/share/sample/vim-7.3/adlint/vim/adlint_pinit.h +1 -1
  336. data/share/sample/vim-7.3/adlint/vim/adlint_traits.yml +1 -1
  337. data/share/sample/vim-7.3/adlint/xxd/GNUmakefile +1 -1
  338. data/share/sample/vim-7.3/adlint/xxd/adlint_cinit.h +1 -1
  339. data/share/sample/vim-7.3/adlint/xxd/adlint_pinit.h +1 -1
  340. data/share/sample/vim-7.3/adlint/xxd/adlint_traits.yml +1 -1
  341. data/share/sample/zsh-4.3.15/adlint/GNUmakefile +1 -1
  342. data/share/sample/zsh-4.3.15/adlint/adlint_traits.yml +1 -1
  343. data/share/sample/zsh-4.3.15/adlint/builtins/GNUmakefile +1 -1
  344. data/share/sample/zsh-4.3.15/adlint/builtins/adlint_cinit.h +1 -1
  345. data/share/sample/zsh-4.3.15/adlint/builtins/adlint_pinit.h +1 -1
  346. data/share/sample/zsh-4.3.15/adlint/builtins/adlint_traits.yml +1 -1
  347. data/share/sample/zsh-4.3.15/adlint/core/GNUmakefile +1 -1
  348. data/share/sample/zsh-4.3.15/adlint/core/adlint_cinit.h +1 -1
  349. data/share/sample/zsh-4.3.15/adlint/core/adlint_pinit.h +1 -1
  350. data/share/sample/zsh-4.3.15/adlint/core/adlint_traits.yml +1 -1
  351. data/share/sample/zsh-4.3.15/adlint/modules/GNUmakefile +1 -1
  352. data/share/sample/zsh-4.3.15/adlint/modules/adlint_cinit.h +1 -1
  353. data/share/sample/zsh-4.3.15/adlint/modules/adlint_pinit.h +1 -1
  354. data/share/sample/zsh-4.3.15/adlint/modules/adlint_traits.yml +1 -1
  355. data/share/sample/zsh-4.3.15/adlint/zle/GNUmakefile +1 -1
  356. data/share/sample/zsh-4.3.15/adlint/zle/adlint_cinit.h +1 -1
  357. data/share/sample/zsh-4.3.15/adlint/zle/adlint_pinit.h +1 -1
  358. data/share/sample/zsh-4.3.15/adlint/zle/adlint_traits.yml +1 -1
  359. data/spec/adlint/cc1/ctrlexpr_spec.rb +3 -3
  360. data/spec/adlint/cc1/domain_spec.rb +2 -2
  361. data/spec/adlint/cc1/operator_spec.rb +2 -2
  362. data/spec/adlint/cc1/syntax_spec.rb +4 -4
  363. data/spec/adlint/cc1/type_spec.rb +2 -2
  364. data/spec/adlint/location_spec.rb +2 -2
  365. data/spec/conf.d/default_traits.yml +1 -1
  366. data/spec/conf.d/empty_cinit.h +1 -1
  367. data/spec/conf.d/empty_pinit.h +1 -1
  368. data/spec/spec_helper.rb +2 -2
  369. metadata +29 -28
  370. data/lib/adlint/exam/c_builtin/cc1_check_shima.rb +0 -963
  371. data/lib/adlint/exam/c_builtin/cpp_check_shima.rb +0 -204
@@ -1,7 +1,7 @@
1
1
  # Code structure extractions (cc1-phase) of adlint-exam-c_builtin package.
2
2
  #
3
3
  # Author:: Yutaka Yanoh <mailto:yanoh@users.sourceforge.net>
4
- # Copyright:: Copyright (C) 2010-2013, OGIS-RI Co.,Ltd.
4
+ # Copyright:: Copyright (C) 2010-2014, OGIS-RI Co.,Ltd.
5
5
  # License:: GPLv3+: GNU General Public License version 3 or later
6
6
  #
7
7
  # Owner:: Yutaka Yanoh <mailto:yanoh@users.sourceforge.net>
@@ -11,7 +11,7 @@
11
11
  # / | / _ |/ / / / | / /__ __/ Source Code Static Analyzer
12
12
  # / /| | / / / / / / / |/ / / / AdLint - Advanced Lint
13
13
  # / __ |/ /_/ / /___/ / /| / / /
14
- # /_/ |_|_____/_____/_/_/ |_/ /_/ Copyright (C) 2010-2013, OGIS-RI Co.,Ltd.
14
+ # /_/ |_|_____/_____/_/_/ |_/ /_/ Copyright (C) 2010-2014, OGIS-RI Co.,Ltd.
15
15
  #
16
16
  # This file is part of AdLint.
17
17
  #
@@ -38,44 +38,44 @@ module AdLint #:nodoc:
38
38
  module Exam #:nodoc:
39
39
  module CBuiltin #:nodoc:
40
40
 
41
- class TypeDeclExtraction < CodeExtraction
41
+ class TypeDclExtraction < CodeExtraction
42
42
  def_registrant_phase Cc1::Prepare2Phase
43
43
 
44
44
  def initialize(phase_ctxt)
45
45
  super
46
- traversal = phase_ctxt[:cc1_ast_traversal]
47
- traversal.enter_typedef_declaration += T(:extract_typedef)
48
- traversal.enter_struct_type_declaration += T(:extract_struct)
49
- traversal.enter_union_type_declaration += T(:extract_union)
50
- traversal.enter_enum_type_declaration += T(:extract_enum)
46
+ trav = phase_ctxt[:cc1_ast_traversal]
47
+ trav.enter_typedef_declaration += T(:extract_typedef_dcl)
48
+ trav.enter_struct_type_declaration += T(:extract_struct_dcl)
49
+ trav.enter_union_type_declaration += T(:extract_union_dcl)
50
+ trav.enter_enum_type_declaration += T(:extract_enum_dcl)
51
51
  end
52
52
 
53
53
  private
54
54
  def do_prepare(*) end
55
55
  def do_execute(*) end
56
56
 
57
- def extract_typedef(typedef_dcl)
57
+ def extract_typedef_dcl(typedef_dcl)
58
58
  TYPEDCL(typedef_dcl.identifier.location, "T",
59
59
  typedef_dcl.type.name, typedef_dcl.type.image)
60
60
  end
61
61
 
62
- def extract_struct(struct_type_dcl)
62
+ def extract_struct_dcl(struct_type_dcl)
63
63
  TYPEDCL(struct_type_dcl.identifier.location, "S",
64
64
  struct_type_dcl.type.name, struct_type_dcl.type.image)
65
65
  end
66
66
 
67
- def extract_union(union_type_dcl)
67
+ def extract_union_dcl(union_type_dcl)
68
68
  TYPEDCL(union_type_dcl.identifier.location, "U",
69
69
  union_type_dcl.type.name, union_type_dcl.type.image)
70
70
  end
71
71
 
72
- def extract_enum(enum_type_dcl)
72
+ def extract_enum_dcl(enum_type_dcl)
73
73
  TYPEDCL(enum_type_dcl.identifier.location, "E",
74
74
  enum_type_dcl.type.name, enum_type_dcl.type.image)
75
75
  end
76
76
  end
77
77
 
78
- class GVarDeclExtraction < CodeExtraction
78
+ class GVarDclExtraction < CodeExtraction
79
79
  def_registrant_phase Cc1::Prepare2Phase
80
80
 
81
81
  def initialize(phase_ctxt)
@@ -246,8 +246,8 @@ module CBuiltin #:nodoc:
246
246
 
247
247
  def initialize(phase_ctxt)
248
248
  super
249
- traversal = phase_ctxt[:cc1_ast_traversal]
250
- traversal.enter_generic_labeled_statement += T(:extract)
249
+ trav = phase_ctxt[:cc1_ast_traversal]
250
+ trav.enter_generic_labeled_statement += T(:extract)
251
251
  end
252
252
 
253
253
  private
@@ -264,8 +264,8 @@ module CBuiltin #:nodoc:
264
264
 
265
265
  def initialize(phase_ctxt)
266
266
  super
267
- traversal = phase_ctxt[:cc1_ast_traversal]
268
- traversal.enter_variable_definition += T(:extract)
267
+ trav = phase_ctxt[:cc1_ast_traversal]
268
+ trav.enter_variable_definition += T(:extract)
269
269
  end
270
270
 
271
271
  private
@@ -285,9 +285,9 @@ module CBuiltin #:nodoc:
285
285
 
286
286
  def initialize(phase_ctxt)
287
287
  super
288
- traversal = phase_ctxt[:cc1_ast_traversal]
289
- traversal.enter_simple_assignment_expression += T(:extract)
290
- traversal.enter_compound_assignment_expression += T(:extract)
288
+ trav = phase_ctxt[:cc1_ast_traversal]
289
+ trav.enter_simple_assignment_expression += T(:extract)
290
+ trav.enter_compound_assignment_expression += T(:extract)
291
291
  end
292
292
 
293
293
  private
@@ -407,8 +407,8 @@ module CBuiltin #:nodoc:
407
407
  else
408
408
  referrer = FunctionId.of_ctors_section
409
409
  end
410
- XREF_FUNC(expr.location, referrer, "R",
411
- FunctionId.new(fun.name, fun.signature.to_s))
410
+ XREF_FUN(expr.location, referrer, "R",
411
+ FunctionId.new(fun.name, fun.signature.to_s))
412
412
  end
413
413
  end
414
414
  end
@@ -418,9 +418,9 @@ module CBuiltin #:nodoc:
418
418
 
419
419
  def initialize(phase_ctxt)
420
420
  super
421
- traversal = phase_ctxt[:cc1_ast_traversal]
422
- traversal.enter_constant_specifier += T(:extract_constant)
423
- traversal.enter_string_literal_specifier += T(:extract_string_literal)
421
+ trav = phase_ctxt[:cc1_ast_traversal]
422
+ trav.enter_constant_specifier += T(:extract_constant)
423
+ trav.enter_string_literal_specifier += T(:extract_string_literal)
424
424
  end
425
425
 
426
426
  private
@@ -1,7 +1,7 @@
1
1
  # Metric measurements (cc1-phase) of adlint-exam-c_builtin package.
2
2
  #
3
3
  # Author:: Yutaka Yanoh <mailto:yanoh@users.sourceforge.net>
4
- # Copyright:: Copyright (C) 2010-2013, OGIS-RI Co.,Ltd.
4
+ # Copyright:: Copyright (C) 2010-2014, OGIS-RI Co.,Ltd.
5
5
  # License:: GPLv3+: GNU General Public License version 3 or later
6
6
  #
7
7
  # Owner:: Yutaka Yanoh <mailto:yanoh@users.sourceforge.net>
@@ -11,7 +11,7 @@
11
11
  # / | / _ |/ / / / | / /__ __/ Source Code Static Analyzer
12
12
  # / /| | / / / / / / / |/ / / / AdLint - Advanced Lint
13
13
  # / __ |/ /_/ / /___/ / /| / / /
14
- # /_/ |_|_____/_____/_/_/ |_/ /_/ Copyright (C) 2010-2013, OGIS-RI Co.,Ltd.
14
+ # /_/ |_|_____/_____/_/_/ |_/ /_/ Copyright (C) 2010-2014, OGIS-RI Co.,Ltd.
15
15
  #
16
16
  # This file is part of AdLint.
17
17
  #
@@ -44,24 +44,24 @@ module CBuiltin #:nodoc:
44
44
  def initialize(phase_ctxt)
45
45
  super
46
46
  @fpath = phase_ctxt[:sources].first.fpath
47
- traversal = phase_ctxt[:cc1_ast_traversal]
48
- traversal.enter_error_statement += T(:count_statement)
49
- traversal.enter_generic_labeled_statement += T(:count_statement)
50
- traversal.enter_case_labeled_statement += T(:count_statement)
51
- traversal.enter_default_labeled_statement += T(:count_statement)
52
- traversal.enter_expression_statement += T(:count_statement)
53
- traversal.enter_if_statement += T(:count_statement)
54
- traversal.enter_if_else_statement += T(:count_statement)
55
- traversal.enter_switch_statement += T(:count_statement)
56
- traversal.enter_while_statement += T(:count_statement)
57
- traversal.enter_do_statement += T(:count_statement)
58
- traversal.enter_for_statement += T(:count_statement)
59
- traversal.enter_c99_for_statement += T(:count_statement)
60
- traversal.enter_goto_statement += T(:count_statement)
61
- traversal.enter_continue_statement += T(:count_statement)
62
- traversal.enter_break_statement += T(:count_statement)
63
- traversal.enter_return_statement += T(:count_statement)
64
- traversal.leave_translation_unit += M(:measure)
47
+ trav = phase_ctxt[:cc1_ast_traversal]
48
+ trav.enter_error_statement += T(:count_statement)
49
+ trav.enter_generic_labeled_statement += T(:count_statement)
50
+ trav.enter_case_labeled_statement += T(:count_statement)
51
+ trav.enter_default_labeled_statement += T(:count_statement)
52
+ trav.enter_expression_statement += T(:count_statement)
53
+ trav.enter_if_statement += T(:count_statement)
54
+ trav.enter_if_else_statement += T(:count_statement)
55
+ trav.enter_switch_statement += T(:count_statement)
56
+ trav.enter_while_statement += T(:count_statement)
57
+ trav.enter_do_statement += T(:count_statement)
58
+ trav.enter_for_statement += T(:count_statement)
59
+ trav.enter_c99_for_statement += T(:count_statement)
60
+ trav.enter_goto_statement += T(:count_statement)
61
+ trav.enter_continue_statement += T(:count_statement)
62
+ trav.enter_break_statement += T(:count_statement)
63
+ trav.enter_return_statement += T(:count_statement)
64
+ trav.leave_translation_unit += M(:measure)
65
65
  @stmt_cnt = 0
66
66
  end
67
67
 
@@ -86,10 +86,10 @@ module CBuiltin #:nodoc:
86
86
  def initialize(phase_ctxt)
87
87
  super
88
88
  @fpath = phase_ctxt[:sources].first.fpath
89
- traversal = phase_ctxt[:cc1_ast_traversal]
90
- traversal.enter_ansi_function_definition += T(:count_function)
91
- traversal.enter_kandr_function_definition += T(:count_function)
92
- traversal.leave_translation_unit += M(:measure)
89
+ trav = phase_ctxt[:cc1_ast_traversal]
90
+ trav.enter_ansi_function_definition += T(:count_function)
91
+ trav.enter_kandr_function_definition += T(:count_function)
92
+ trav.leave_translation_unit += M(:measure)
93
93
  @fun_cnt = 0
94
94
  end
95
95
 
@@ -114,27 +114,27 @@ module CBuiltin #:nodoc:
114
114
  def initialize(phase_ctxt)
115
115
  super
116
116
  @fpath = phase_ctxt[:sources].first.fpath
117
- traversal = phase_ctxt[:cc1_ast_traversal]
118
- traversal.enter_ansi_function_definition += T(:enter_function)
119
- traversal.leave_ansi_function_definition += T(:leave_function)
120
- traversal.enter_kandr_function_definition += T(:enter_function)
121
- traversal.leave_kandr_function_definition += T(:leave_function)
122
- traversal.enter_error_statement += T(:count_statement)
123
- traversal.enter_generic_labeled_statement += T(:count_statement)
124
- traversal.enter_case_labeled_statement += T(:count_statement)
125
- traversal.enter_default_labeled_statement += T(:count_statement)
126
- traversal.enter_expression_statement += T(:count_statement)
127
- traversal.enter_if_statement += T(:count_statement)
128
- traversal.enter_if_else_statement += T(:count_statement)
129
- traversal.enter_switch_statement += T(:count_statement)
130
- traversal.enter_while_statement += T(:count_statement)
131
- traversal.enter_do_statement += T(:count_statement)
132
- traversal.enter_for_statement += T(:count_statement)
133
- traversal.enter_c99_for_statement += T(:count_statement)
134
- traversal.enter_goto_statement += T(:count_statement)
135
- traversal.enter_continue_statement += T(:count_statement)
136
- traversal.enter_break_statement += T(:count_statement)
137
- traversal.enter_return_statement += T(:count_statement)
117
+ trav = phase_ctxt[:cc1_ast_traversal]
118
+ trav.enter_ansi_function_definition += T(:enter_function)
119
+ trav.leave_ansi_function_definition += T(:leave_function)
120
+ trav.enter_kandr_function_definition += T(:enter_function)
121
+ trav.leave_kandr_function_definition += T(:leave_function)
122
+ trav.enter_error_statement += T(:count_statement)
123
+ trav.enter_generic_labeled_statement += T(:count_statement)
124
+ trav.enter_case_labeled_statement += T(:count_statement)
125
+ trav.enter_default_labeled_statement += T(:count_statement)
126
+ trav.enter_expression_statement += T(:count_statement)
127
+ trav.enter_if_statement += T(:count_statement)
128
+ trav.enter_if_else_statement += T(:count_statement)
129
+ trav.enter_switch_statement += T(:count_statement)
130
+ trav.enter_while_statement += T(:count_statement)
131
+ trav.enter_do_statement += T(:count_statement)
132
+ trav.enter_for_statement += T(:count_statement)
133
+ trav.enter_c99_for_statement += T(:count_statement)
134
+ trav.enter_goto_statement += T(:count_statement)
135
+ trav.enter_continue_statement += T(:count_statement)
136
+ trav.enter_break_statement += T(:count_statement)
137
+ trav.enter_return_statement += T(:count_statement)
138
138
  @cur_fun = nil
139
139
  @stmt_cnt = 0
140
140
  end
@@ -144,10 +144,8 @@ module CBuiltin #:nodoc:
144
144
  def do_execute(*) end
145
145
 
146
146
  def enter_function(fun_def)
147
- if @fpath == fun_def.location.fpath
148
- @cur_fun = fun_def
149
- @stmt_cnt = 0
150
- end
147
+ @cur_fun = fun_def
148
+ @stmt_cnt = 0
151
149
  end
152
150
 
153
151
  def leave_function(*)
@@ -172,27 +170,27 @@ module CBuiltin #:nodoc:
172
170
  def initialize(phase_ctxt)
173
171
  super
174
172
  @fpath = phase_ctxt[:sources].first.fpath
175
- traversal = phase_ctxt[:cc1_ast_traversal]
176
- traversal.enter_ansi_function_definition += T(:enter_function)
177
- traversal.leave_ansi_function_definition += T(:leave_function)
178
- traversal.enter_kandr_function_definition += T(:enter_function)
179
- traversal.leave_kandr_function_definition += T(:leave_function)
180
- traversal.enter_error_statement += T(:count_statement)
181
- traversal.enter_generic_labeled_statement += T(:count_statement)
182
- traversal.enter_case_labeled_statement += T(:count_statement)
183
- traversal.enter_default_labeled_statement += T(:count_statement)
184
- traversal.enter_expression_statement += T(:count_statement)
185
- traversal.enter_if_statement += T(:count_statement)
186
- traversal.enter_if_else_statement += T(:count_statement)
187
- traversal.enter_switch_statement += T(:count_statement)
188
- traversal.enter_while_statement += T(:count_statement)
189
- traversal.enter_do_statement += T(:count_statement)
190
- traversal.enter_for_statement += T(:count_statement)
191
- traversal.enter_c99_for_statement += T(:count_statement)
192
- traversal.enter_goto_statement += T(:count_statement)
193
- traversal.enter_continue_statement += T(:count_statement)
194
- traversal.enter_break_statement += T(:count_statement)
195
- traversal.enter_return_statement += T(:count_statement)
173
+ trav = phase_ctxt[:cc1_ast_traversal]
174
+ trav.enter_ansi_function_definition += T(:enter_function)
175
+ trav.leave_ansi_function_definition += T(:leave_function)
176
+ trav.enter_kandr_function_definition += T(:enter_function)
177
+ trav.leave_kandr_function_definition += T(:leave_function)
178
+ trav.enter_error_statement += T(:count_statement)
179
+ trav.enter_generic_labeled_statement += T(:count_statement)
180
+ trav.enter_case_labeled_statement += T(:count_statement)
181
+ trav.enter_default_labeled_statement += T(:count_statement)
182
+ trav.enter_expression_statement += T(:count_statement)
183
+ trav.enter_if_statement += T(:count_statement)
184
+ trav.enter_if_else_statement += T(:count_statement)
185
+ trav.enter_switch_statement += T(:count_statement)
186
+ trav.enter_while_statement += T(:count_statement)
187
+ trav.enter_do_statement += T(:count_statement)
188
+ trav.enter_for_statement += T(:count_statement)
189
+ trav.enter_c99_for_statement += T(:count_statement)
190
+ trav.enter_goto_statement += T(:count_statement)
191
+ trav.enter_continue_statement += T(:count_statement)
192
+ trav.enter_break_statement += T(:count_statement)
193
+ trav.enter_return_statement += T(:count_statement)
196
194
  @cur_fun = nil
197
195
  @unreached_stmt_cnt = 0
198
196
  end
@@ -202,10 +200,8 @@ module CBuiltin #:nodoc:
202
200
  def do_execute(*) end
203
201
 
204
202
  def enter_function(fun_def)
205
- if @fpath == fun_def.location.fpath
206
- @cur_fun = fun_def
207
- @unreached_stmt_cnt = 0
208
- end
203
+ @cur_fun = fun_def
204
+ @unreached_stmt_cnt = 0
209
205
  end
210
206
 
211
207
  def leave_function(*)
@@ -231,9 +227,9 @@ module CBuiltin #:nodoc:
231
227
  def initialize(phase_ctxt)
232
228
  super
233
229
  @fpath = phase_ctxt[:sources].first.fpath
234
- traversal = phase_ctxt[:cc1_ast_traversal]
235
- traversal.enter_ansi_function_definition += T(:measure)
236
- traversal.enter_kandr_function_definition += T(:measure)
230
+ trav = phase_ctxt[:cc1_ast_traversal]
231
+ trav.enter_ansi_function_definition += T(:measure)
232
+ trav.enter_kandr_function_definition += T(:measure)
237
233
  end
238
234
 
239
235
  private
@@ -241,11 +237,8 @@ module CBuiltin #:nodoc:
241
237
  def do_execute(*) end
242
238
 
243
239
  def measure(fun_def)
244
- if @fpath == fun_def.location.fpath
245
- FN_LINE(FunctionId.new(fun_def.identifier.value,
246
- fun_def.signature.to_s),
247
- fun_def.location, fun_def.lines)
248
- end
240
+ FN_LINE(FunctionId.new(fun_def.identifier.value, fun_def.signature.to_s),
241
+ fun_def.location, fun_def.lines)
249
242
  end
250
243
  end
251
244
 
@@ -255,9 +248,9 @@ module CBuiltin #:nodoc:
255
248
  def initialize(phase_ctxt)
256
249
  super
257
250
  @fpath = phase_ctxt[:sources].first.fpath
258
- traversal = phase_ctxt[:cc1_ast_traversal]
259
- traversal.enter_ansi_function_definition += T(:measure_ansi_function)
260
- traversal.enter_kandr_function_definition += T(:measure_kandr_function)
251
+ trav = phase_ctxt[:cc1_ast_traversal]
252
+ trav.enter_ansi_function_definition += T(:measure_ansi_function)
253
+ trav.enter_kandr_function_definition += T(:measure_kandr_function)
261
254
  end
262
255
 
263
256
  private
@@ -265,28 +258,23 @@ module CBuiltin #:nodoc:
265
258
  def do_execute(*) end
266
259
 
267
260
  def measure_ansi_function(fun_def)
268
- if @fpath == fun_def.location.fpath
269
- # TODO: Determine how many parameters if function has va_list.
270
- if fun_def.parameter_type_list
271
- params = fun_def.parameter_definitions
272
- FN_PARA(FunctionId.new(fun_def.identifier.value,
273
- fun_def.signature.to_s),
274
- fun_def.location, params.count { |param| !param.type.void? })
275
- else
276
- # TODO: Determine how many parameters if signature is abbreviated.
277
- FN_PARA(FunctionId.new(fun_def.identifier.value,
278
- fun_def.signature.to_s),
279
- fun_def.location, 0)
280
- end
261
+ # TODO: Determine how many parameters if function has va_list.
262
+ if fun_def.parameter_type_list
263
+ params = fun_def.parameter_definitions
264
+ FN_PARA(FunctionId.new(fun_def.identifier.value,
265
+ fun_def.signature.to_s),
266
+ fun_def.location, params.count { |param| !param.type.void? })
267
+ else
268
+ # TODO: Determine how many parameters if signature is abbreviated.
269
+ FN_PARA(FunctionId.new(fun_def.identifier.value,
270
+ fun_def.signature.to_s),
271
+ fun_def.location, 0)
281
272
  end
282
273
  end
283
274
 
284
275
  def measure_kandr_function(fun_def)
285
- if @fpath == fun_def.location.fpath
286
- FN_PARA(FunctionId.new(fun_def.identifier.value,
287
- fun_def.signature.to_s),
288
- fun_def.location, fun_def.identifier_list.size)
289
- end
276
+ FN_PARA(FunctionId.new(fun_def.identifier.value, fun_def.signature.to_s),
277
+ fun_def.location, fun_def.identifier_list.size)
290
278
  end
291
279
  end
292
280
 
@@ -313,10 +301,8 @@ module CBuiltin #:nodoc:
313
301
  def do_execute(*) end
314
302
 
315
303
  def enter_function(fun_def, *)
316
- if @fpath == fun_def.location.fpath
317
- @cur_fun = fun_def
318
- @vars = {}
319
- end
304
+ @cur_fun = fun_def
305
+ @vars = {}
320
306
  end
321
307
 
322
308
  def leave_function(*)
@@ -364,12 +350,12 @@ module CBuiltin #:nodoc:
364
350
  def initialize(phase_ctxt)
365
351
  super
366
352
  @fpath = phase_ctxt[:sources].first.fpath
367
- traversal = phase_ctxt[:cc1_ast_traversal]
368
- traversal.enter_ansi_function_definition += T(:enter_function)
369
- traversal.leave_ansi_function_definition += T(:leave_function)
370
- traversal.enter_kandr_function_definition += T(:enter_function)
371
- traversal.leave_kandr_function_definition += T(:leave_function)
372
- traversal.enter_function_call_expression += T(:count_function_call)
353
+ trav = phase_ctxt[:cc1_ast_traversal]
354
+ trav.enter_ansi_function_definition += T(:enter_function)
355
+ trav.leave_ansi_function_definition += T(:leave_function)
356
+ trav.enter_kandr_function_definition += T(:enter_function)
357
+ trav.leave_kandr_function_definition += T(:leave_function)
358
+ trav.enter_function_call_expression += T(:count_function_call)
373
359
  @cur_fun = nil
374
360
  @funcall_cnt = 0
375
361
  end
@@ -379,10 +365,8 @@ module CBuiltin #:nodoc:
379
365
  def do_execute(*) end
380
366
 
381
367
  def enter_function(fun_def)
382
- if @fpath == fun_def.location.fpath
383
- @cur_fun = fun_def
384
- @funcall_cnt = 0
385
- end
368
+ @cur_fun = fun_def
369
+ @funcall_cnt = 0
386
370
  end
387
371
 
388
372
  def leave_function(*)
@@ -408,12 +392,12 @@ module CBuiltin #:nodoc:
408
392
  def initialize(phase_ctxt)
409
393
  super
410
394
  @fpath = phase_ctxt[:sources].first.fpath
411
- traversal = phase_ctxt[:cc1_ast_traversal]
412
- traversal.enter_ansi_function_definition += T(:enter_function)
413
- traversal.leave_ansi_function_definition += T(:leave_function)
414
- traversal.enter_kandr_function_definition += T(:enter_function)
415
- traversal.leave_kandr_function_definition += T(:leave_function)
416
- traversal.enter_goto_statement += T(:count_goto)
395
+ trav = phase_ctxt[:cc1_ast_traversal]
396
+ trav.enter_ansi_function_definition += T(:enter_function)
397
+ trav.leave_ansi_function_definition += T(:leave_function)
398
+ trav.enter_kandr_function_definition += T(:enter_function)
399
+ trav.leave_kandr_function_definition += T(:leave_function)
400
+ trav.enter_goto_statement += T(:count_goto)
417
401
  @cur_fun = nil
418
402
  @goto_cnt = 0
419
403
  end
@@ -423,10 +407,8 @@ module CBuiltin #:nodoc:
423
407
  def do_execute(*) end
424
408
 
425
409
  def enter_function(fun_def)
426
- if @fpath == fun_def.location.fpath
427
- @cur_fun = fun_def
428
- @goto_cnt = 0
429
- end
410
+ @cur_fun = fun_def
411
+ @goto_cnt = 0
430
412
  end
431
413
 
432
414
  def leave_function(*)
@@ -452,27 +434,27 @@ module CBuiltin #:nodoc:
452
434
  def initialize(phase_ctxt)
453
435
  super
454
436
  @fpath = phase_ctxt[:sources].first.fpath
455
- traversal = phase_ctxt[:cc1_ast_traversal]
456
- traversal.enter_ansi_function_definition += T(:enter_function)
457
- traversal.leave_ansi_function_definition += T(:leave_function)
458
- traversal.enter_kandr_function_definition += T(:enter_function)
459
- traversal.leave_kandr_function_definition += T(:leave_function)
460
- traversal.enter_error_statement += T(:enter_statement)
461
- traversal.enter_generic_labeled_statement += T(:enter_statement)
462
- traversal.enter_case_labeled_statement += T(:enter_statement)
463
- traversal.enter_default_labeled_statement += T(:enter_statement)
464
- traversal.enter_expression_statement += T(:enter_statement)
465
- traversal.enter_if_statement += T(:enter_statement)
466
- traversal.enter_if_else_statement += T(:enter_statement)
467
- traversal.enter_switch_statement += T(:enter_statement)
468
- traversal.enter_while_statement += T(:enter_statement)
469
- traversal.enter_do_statement += T(:enter_statement)
470
- traversal.enter_for_statement += T(:enter_statement)
471
- traversal.enter_c99_for_statement += T(:enter_statement)
472
- traversal.enter_goto_statement += T(:enter_statement)
473
- traversal.enter_continue_statement += T(:enter_statement)
474
- traversal.enter_break_statement += T(:enter_statement)
475
- traversal.enter_return_statement += T(:count_return)
437
+ trav = phase_ctxt[:cc1_ast_traversal]
438
+ trav.enter_ansi_function_definition += T(:enter_function)
439
+ trav.leave_ansi_function_definition += T(:leave_function)
440
+ trav.enter_kandr_function_definition += T(:enter_function)
441
+ trav.leave_kandr_function_definition += T(:leave_function)
442
+ trav.enter_error_statement += T(:enter_statement)
443
+ trav.enter_generic_labeled_statement += T(:enter_statement)
444
+ trav.enter_case_labeled_statement += T(:enter_statement)
445
+ trav.enter_default_labeled_statement += T(:enter_statement)
446
+ trav.enter_expression_statement += T(:enter_statement)
447
+ trav.enter_if_statement += T(:enter_statement)
448
+ trav.enter_if_else_statement += T(:enter_statement)
449
+ trav.enter_switch_statement += T(:enter_statement)
450
+ trav.enter_while_statement += T(:enter_statement)
451
+ trav.enter_do_statement += T(:enter_statement)
452
+ trav.enter_for_statement += T(:enter_statement)
453
+ trav.enter_c99_for_statement += T(:enter_statement)
454
+ trav.enter_goto_statement += T(:enter_statement)
455
+ trav.enter_continue_statement += T(:enter_statement)
456
+ trav.enter_break_statement += T(:enter_statement)
457
+ trav.enter_return_statement += T(:count_return)
476
458
  @cur_fun = nil
477
459
  @ret_cnt = 0
478
460
  @lst_stmt = nil
@@ -483,11 +465,9 @@ module CBuiltin #:nodoc:
483
465
  def do_execute(*) end
484
466
 
485
467
  def enter_function(fun_def)
486
- if @fpath == fun_def.location.fpath
487
- @cur_fun = fun_def
488
- @ret_cnt = 0
489
- @lst_stmt = nil
490
- end
468
+ @cur_fun = fun_def
469
+ @ret_cnt = 0
470
+ @lst_stmt = nil
491
471
  end
492
472
 
493
473
  def leave_function(*)
@@ -528,13 +508,13 @@ module CBuiltin #:nodoc:
528
508
  def initialize(phase_ctxt)
529
509
  super
530
510
  @fpath = phase_ctxt[:sources].first.fpath
531
- traversal = phase_ctxt[:cc1_ast_traversal]
532
- traversal.enter_ansi_function_definition += T(:enter_function)
533
- traversal.leave_ansi_function_definition += T(:leave_function)
534
- traversal.enter_kandr_function_definition += T(:enter_function)
535
- traversal.leave_kandr_function_definition += T(:leave_function)
536
- traversal.enter_if_else_statement += T(:enter_if_else_statement)
537
- traversal.leave_if_else_statement += T(:leave_if_else_statement)
511
+ trav = phase_ctxt[:cc1_ast_traversal]
512
+ trav.enter_ansi_function_definition += T(:enter_function)
513
+ trav.leave_ansi_function_definition += T(:leave_function)
514
+ trav.enter_kandr_function_definition += T(:enter_function)
515
+ trav.leave_kandr_function_definition += T(:leave_function)
516
+ trav.enter_if_else_statement += T(:enter_if_else_statement)
517
+ trav.leave_if_else_statement += T(:leave_if_else_statement)
538
518
  @cur_fun = nil
539
519
  @if_else_stmt_chain = 0
540
520
  @incomplete_if_else_stmt_cnt = 0
@@ -545,11 +525,9 @@ module CBuiltin #:nodoc:
545
525
  def do_execute(*) end
546
526
 
547
527
  def enter_function(fun_def)
548
- if @fpath == fun_def.location.fpath
549
- @cur_fun = fun_def
550
- @if_else_stmt_chain = 0
551
- @incomplete_if_else_stmt_cnt = 0
552
- end
528
+ @cur_fun = fun_def
529
+ @if_else_stmt_chain = 0
530
+ @incomplete_if_else_stmt_cnt = 0
553
531
  end
554
532
 
555
533
  def leave_function(*)
@@ -584,19 +562,19 @@ module CBuiltin #:nodoc:
584
562
  def initialize(phase_ctxt)
585
563
  super
586
564
  @fpath = phase_ctxt[:sources].first.fpath
587
- traversal = phase_ctxt[:cc1_ast_traversal]
588
- traversal.enter_ansi_function_definition += T(:enter_function)
589
- traversal.leave_ansi_function_definition += T(:leave_function)
590
- traversal.enter_kandr_function_definition += T(:enter_function)
591
- traversal.leave_kandr_function_definition += T(:leave_function)
592
- traversal.enter_compound_statement += T(:enter_block)
593
- traversal.leave_compound_statement += T(:leave_block)
594
- traversal.enter_if_statement += T(:check_statement)
595
- traversal.enter_if_else_statement += T(:check_statement)
596
- traversal.enter_while_statement += T(:check_statement)
597
- traversal.enter_do_statement += T(:check_statement)
598
- traversal.enter_for_statement += T(:check_statement)
599
- traversal.enter_c99_for_statement += T(:check_statement)
565
+ trav = phase_ctxt[:cc1_ast_traversal]
566
+ trav.enter_ansi_function_definition += T(:enter_function)
567
+ trav.leave_ansi_function_definition += T(:leave_function)
568
+ trav.enter_kandr_function_definition += T(:enter_function)
569
+ trav.leave_kandr_function_definition += T(:leave_function)
570
+ trav.enter_compound_statement += T(:enter_block)
571
+ trav.leave_compound_statement += T(:leave_block)
572
+ trav.enter_if_statement += T(:check_statement)
573
+ trav.enter_if_else_statement += T(:check_statement)
574
+ trav.enter_while_statement += T(:check_statement)
575
+ trav.enter_do_statement += T(:check_statement)
576
+ trav.enter_for_statement += T(:check_statement)
577
+ trav.enter_c99_for_statement += T(:check_statement)
600
578
  @cur_fun = nil
601
579
  end
602
580
 
@@ -605,13 +583,11 @@ module CBuiltin #:nodoc:
605
583
  def do_execute(*) end
606
584
 
607
585
  def enter_function(fun_def)
608
- if @fpath == fun_def.location.fpath
609
- @cur_fun = fun_def
610
- # NOTE: Nest level of the top of the function is 0.
611
- # Function definition must have a compound-statement as the
612
- # function body.
613
- @max_nest_level = @cur_nest_level = -1
614
- end
586
+ @cur_fun = fun_def
587
+ # NOTE: Nest level of the top of the function is 0.
588
+ # Function definition must have a compound-statement as the
589
+ # function body.
590
+ @max_nest_level = @cur_nest_level = -1
615
591
  end
616
592
 
617
593
  def leave_function(fun_def)
@@ -682,18 +658,15 @@ module CBuiltin #:nodoc:
682
658
  def do_execute(*) end
683
659
 
684
660
  def enter_function(fun_def, *)
685
- if @fpath == fun_def.location.fpath
686
- @cur_fun = fun_def
687
-
688
- # NOTE: Number of paths in the current function.
689
- @paths_in_fun = 1
690
- # NOTE: Stack of the number of paths to enter the current branch group.
691
- @paths_to_enter_branch_group = [@paths_in_fun]
692
- # NOTE: Stack of the number of paths in the current branch.
693
- @paths_in_branch = [@paths_in_fun]
694
- # NOTE: Stack of the number of paths in the current branch group.
695
- @paths_in_branch_group = [@paths_in_fun]
696
- end
661
+ @cur_fun = fun_def
662
+ # NOTE: Number of paths in the current function.
663
+ @paths_in_fun = 1
664
+ # NOTE: Stack of the number of paths to enter the current branch group.
665
+ @paths_to_enter_branch_group = [@paths_in_fun]
666
+ # NOTE: Stack of the number of paths in the current branch.
667
+ @paths_in_branch = [@paths_in_fun]
668
+ # NOTE: Stack of the number of paths in the current branch group.
669
+ @paths_in_branch_group = [@paths_in_fun]
697
670
  end
698
671
 
699
672
  def leave_function(*)
@@ -752,14 +725,14 @@ module CBuiltin #:nodoc:
752
725
  def initialize(phase_ctxt)
753
726
  super
754
727
  @fpath = phase_ctxt[:sources].first.fpath
755
- traversal = phase_ctxt[:cc1_ast_traversal]
756
- traversal.enter_ansi_function_definition += T(:enter_function)
757
- traversal.leave_ansi_function_definition += T(:leave_function)
758
- traversal.enter_kandr_function_definition += T(:enter_function)
759
- traversal.leave_kandr_function_definition += T(:leave_function)
760
- traversal.enter_if_statement += T(:enter_selection)
761
- traversal.enter_if_else_statement += T(:enter_selection)
762
- traversal.enter_case_labeled_statement += T(:enter_selection)
728
+ trav = phase_ctxt[:cc1_ast_traversal]
729
+ trav.enter_ansi_function_definition += T(:enter_function)
730
+ trav.leave_ansi_function_definition += T(:leave_function)
731
+ trav.enter_kandr_function_definition += T(:enter_function)
732
+ trav.leave_kandr_function_definition += T(:leave_function)
733
+ trav.enter_if_statement += T(:enter_selection)
734
+ trav.enter_if_else_statement += T(:enter_selection)
735
+ trav.enter_case_labeled_statement += T(:enter_selection)
763
736
  @cur_fun = nil
764
737
  @cycl_compl = 0
765
738
  end
@@ -769,10 +742,8 @@ module CBuiltin #:nodoc:
769
742
  def do_execute(*) end
770
743
 
771
744
  def enter_function(fun_def)
772
- if @fpath == fun_def.location.fpath
773
- @cur_fun = fun_def
774
- @cycl_compl = 0
775
- end
745
+ @cur_fun = fun_def
746
+ @cycl_compl = 0
776
747
  end
777
748
 
778
749
  def leave_function(*)