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
@@ -2,10 +2,10 @@
2
2
  @setfilename users_guide_en.info
3
3
  @documentlanguage en
4
4
  @documentencoding utf-8
5
- @settitle AdLint 2.6.14 User's Guide
5
+ @settitle AdLint 3.0.0 User's Guide
6
6
 
7
7
  @copying
8
- Copyright (C) 2010-2012, OGIS-RI Co.,Ltd.
8
+ Copyright (C) 2010-2013, OGIS-RI Co.,Ltd.
9
9
  @end copying
10
10
 
11
11
  @titlepage
@@ -36,7 +36,7 @@ available for Windows, Mac OS X, GNU/Linux, FreeBSD and any other platforms
36
36
  supported by Ruby.
37
37
 
38
38
  @unnumberedsec License
39
- Copyright (C) 2010-2012, OGIS-RI Co.,Ltd.
39
+ Copyright (C) 2010-2013, OGIS-RI Co.,Ltd.
40
40
 
41
41
  AdLint is free software: you can redistribute it and/or modify
42
42
  it under the terms of the GNU General Public License as published by
@@ -625,10 +625,10 @@ by not specifying the @option{-v,--verbose} option.
625
625
  % adlint -t adlint_traits.yml -o . -p 1 -l adlint_files.txt
626
626
  ../intro_demo.c:6:9:warning:c_builtin:W0492:UNC:X99:The same identifier name `i' is also used in the member of structure/union, label, tag or normal identifier.
627
627
  ../intro_demo.c:12:13:warning:c_builtin:W0027:UNC:X99:Comparison operation is being made by pointer variable.
628
- ../intro_demo.c:16:14:warning:c_builtin:W0422:UNC:X99:Indirect reference is being made to the pointer which its value might be NULL.
629
- ../intro_demo.c:31:13:warning:c_builtin:W0613:UNC:X99:The value of this control expression is always false.
628
+ ../intro_demo.c:16:14:warning:c_builtin:W0422:UNC:X99:Value of the dereferencing pointer may be NULL.
629
+ ../intro_demo.c:31:13:warning:c_builtin:W0613:UNC:X99:This controlling expression always makes false.
630
630
  ...snip...
631
- ../intro_demo.c:55:9:warning:c_builtin:W9001:UNC:X99:This statement doesn't reach the control.
631
+ ../intro_demo.c:55:9:warning:c_builtin:W9001:UNC:X99:Control never reaches to this statement.
632
632
  ../intro_demo.c:2:1:warning:c_builtin:W0071:UNC:X99:Included "../useless_header.h" is not referenced in the translation unit. It can be removed.
633
633
  ../intro_demo.c:61:19:warning:c_builtin:W0628:UNC:X99:A function `int bar(void)' is defined, but this is not used in this project.
634
634
  @end verbatim
@@ -683,10 +683,10 @@ the message can output to stderr without display the progress by not specifying
683
683
  % adlint_sma -t adlint_traits.yml -o . -p 1 ../intro_demo.c
684
684
  ../intro_demo.c:6:9:warning:c_builtin:W0492:UNC:X99:The same identifier name `i' is also used in the member of structure/union, label, tag or normal identifier.
685
685
  ../intro_demo.c:12:13:warning:c_builtin:W0027:UNC:X99:Comparison operation is being made by pointer variable.
686
- ../intro_demo.c:16:14:warning:c_builtin:W0422:UNC:X99:Indirect reference is being made to the pointer which its value might be NULL.
687
- ../intro_demo.c:31:13:warning:c_builtin:W0613:UNC:X99:The value of this control expression is always false.
686
+ ../intro_demo.c:16:14:warning:c_builtin:W0422:UNC:X99:Value of the dereferencing pointer may be NULL.
687
+ ../intro_demo.c:31:13:warning:c_builtin:W0613:UNC:X99:This controlling expression always makes false.
688
688
  ...snip...
689
- ../intro_demo.c:55:9:warning:c_builtin:W9001:UNC:X99:This statement doesn't reach the control.
689
+ ../intro_demo.c:55:9:warning:c_builtin:W9001:UNC:X99:Control never reaches to this statement.
690
690
  ../intro_demo.c:2:1:warning:c_builtin:W0071:UNC:X99:Included "../useless_header.h" is not referenced in the translation unit. It can be removed.
691
691
  ../intro_demo.c:61:19:warning:c_builtin:W0628:UNC:X99:A function `int bar(void)' is defined, but this is not used in this project.
692
692
  @end verbatim
@@ -817,6 +817,7 @@ Options:
817
817
  * Input file:Input Files.
818
818
  * Traits file:Traits.
819
819
  * Message definition file:Message Definition.
820
+ * Source code annotation:Source Code Annotation.
820
821
  @end menu
821
822
 
822
823
 
@@ -858,7 +859,6 @@ Describe @ref{Project Traits, Project Traits} , @ref{Compiler Traits, Compiler T
858
859
  When it run a @command{adlintize} command at the root directory of analyzed project,
859
860
  generate the template of traits file for the project, @file{GNUmakefile} and shell script.
860
861
 
861
-
862
862
  @verbatim
863
863
  % cd project
864
864
  % adlintize -o adlint
@@ -976,16 +976,31 @@ string
976
976
  @tab
977
977
  Set pathname of the project root directory.
978
978
  @item 3
979
- @cindex project_traits:include_path
980
- @anchor{project_traits:include_path}
979
+ @cindex project_traits:target_files:inclusion_paths
980
+ @anchor{project_traits:target_files:inclusion_paths}
981
981
  @tab
982
- @code{include_path}
982
+ @code{target_files:inclusion_paths}
983
983
  @tab
984
984
  array of string
985
985
  @tab
986
- Set project specific include path.
987
- An entry can have multiple pathnames with @code{`:'} separators.
986
+ Specify directory paths which contain analysis target source files.
987
+ An entry can have multiple pathnames with @code{`:'} (or @code{`;'} on windows)
988
+ separators.
988
989
  @item 4
990
+ @cindex project_traits:target_files:exclusion_paths
991
+ @anchor{project_traits:target_files:exclusion_paths}
992
+ @tab
993
+ @code{target_files:exclusion_paths}
994
+ @tab
995
+ array of string
996
+ @tab
997
+ Specify directory paths to eliminate analysis target source files under the
998
+ directory.
999
+ If omitted, AdLint will check all the files included by the target source files
1000
+ such as 3rd-party library headers under @ref{project_traits:target_files:inclusion_paths, @code{target_files:inclusion_paths}}.
1001
+ An entry can have multiple pathnames with @code{`:'} (or @code{`;'} on windows)
1002
+ separators.
1003
+ @item 5
989
1004
  @cindex project_traits:initial_header
990
1005
  @anchor{project_traits:initial_header}
991
1006
  @tab
@@ -995,8 +1010,18 @@ string
995
1010
  @tab
996
1011
  Set the header files which is included at the top of specified source files.
997
1012
  For example, project specific macro definition will be described in this file.
998
-
999
- @item 5
1013
+ @item 6
1014
+ @cindex project_traits:file_search_paths
1015
+ @anchor{project_traits:file_search_paths}
1016
+ @tab
1017
+ @code{file_search_paths}
1018
+ @tab
1019
+ array of string
1020
+ @tab
1021
+ Set project specific include-file search paths.
1022
+ An entry can have multiple pathnames with @code{`:'} (or @code{`;'} on windows)
1023
+ separators.
1024
+ @item 7
1000
1025
  @cindex project_traits:coding_style:indent_style
1001
1026
  @anchor{project_traits:coding_style:indent_style}
1002
1027
  @tab
@@ -1043,7 +1068,7 @@ foo(int i)
1043
1068
  @}
1044
1069
  @end example
1045
1070
 
1046
- @item 6
1071
+ @item 8
1047
1072
  @cindex project_traits:coding_style:tab_width
1048
1073
  @anchor{project_traits:coding_style:tab_width}
1049
1074
  @tab
@@ -1052,7 +1077,7 @@ foo(int i)
1052
1077
  integer value
1053
1078
  @tab
1054
1079
  Set the appearance number of digits of tab character
1055
- @item 7
1080
+ @item 9
1056
1081
  @cindex project_traits:coding_style:indent_width
1057
1082
  @anchor{project_traits:coding_style:indent_width}
1058
1083
  @tab
@@ -1061,7 +1086,7 @@ Set the appearance number of digits of tab character
1061
1086
  integer value
1062
1087
  @tab
1063
1088
  Set the appearance number of digits of indent
1064
- @item 8
1089
+ @item 10
1065
1090
  @cindex project_traits:file_encoding
1066
1091
  @anchor{project_traits:file_encoding}
1067
1092
  @tab
@@ -1093,204 +1118,205 @@ string
1093
1118
  Set the header files which is included at the top of specified source files and automatically included before project specific @code{initial_header}.
1094
1119
  This file describes compiler specific macro, type definition and others.
1095
1120
  @item 2
1096
- @cindex compiler_traits:standard_type:char_size
1097
- @anchor{compiler_traits:standard_type:char_size}
1121
+ @cindex compiler_traits:file_search_paths
1122
+ @anchor{compiler_traits:file_search_paths}
1098
1123
  @tab
1099
- @code{standard_type:char_size}
1124
+ @code{file_search_paths}
1100
1125
  @tab
1101
- integer value
1126
+ array of string
1102
1127
  @tab
1103
- Set the size of @code{char} type family by bit quantities.
1128
+ Set the compiler specific include-file search paths.
1129
+ An entry can have multiple pathnames with @code{`:'} (or @code{`;'} on windows)
1130
+ separators.
1104
1131
  @item 3
1105
- @cindex compiler_traits:standard_type:char_alignment
1106
- @anchor{compiler_traits:standard_type:char_alignment}
1132
+ @cindex compiler_traits:standard_types:char_size
1133
+ @anchor{compiler_traits:standard_types:char_size}
1107
1134
  @tab
1108
- @code{standard_type:char_alignment}
1135
+ @code{standard_types:char_size}
1109
1136
  @tab
1110
1137
  integer value
1111
1138
  @tab
1112
- Set the memory alignment of @code{char} type family by bit quantities.
1139
+ Set the size of @code{char} type family by bit quantities.
1113
1140
  @item 4
1114
- @cindex compiler_traits:standard_type:short_size
1115
- @anchor{compiler_traits:standard_type:short_size}
1141
+ @cindex compiler_traits:standard_types:char_alignment
1142
+ @anchor{compiler_traits:standard_types:char_alignment}
1116
1143
  @tab
1117
- @code{standard_type:short_size}
1144
+ @code{standard_types:char_alignment}
1118
1145
  @tab
1119
1146
  integer value
1120
1147
  @tab
1121
- Set the size of @code{short} type family by bit quantities.
1148
+ Set the memory alignment of @code{char} type family by bit quantities.
1122
1149
  @item 5
1123
- @cindex compiler_traits:standard_type:short_alignment
1124
- @anchor{compiler_traits:standard_type:short_alignment}
1150
+ @cindex compiler_traits:standard_types:short_size
1151
+ @anchor{compiler_traits:standard_types:short_size}
1125
1152
  @tab
1126
- @code{standard_type:short_alignment}
1153
+ @code{standard_types:short_size}
1127
1154
  @tab
1128
1155
  integer value
1129
1156
  @tab
1130
- Set the memory alignment of @code{short} family by bit quantities.
1157
+ Set the size of @code{short} type family by bit quantities.
1131
1158
  @item 6
1132
- @cindex compiler_traits:standard_type:int_size
1133
- @anchor{compiler_traits:standard_type:int_size}
1159
+ @cindex compiler_traits:standard_types:short_alignment
1160
+ @anchor{compiler_traits:standard_types:short_alignment}
1134
1161
  @tab
1135
- @code{standard_type:int_size}
1162
+ @code{standard_types:short_alignment}
1136
1163
  @tab
1137
1164
  integer value
1138
1165
  @tab
1139
- Set the size of @code{int} type family by bit quantities.
1166
+ Set the memory alignment of @code{short} family by bit quantities.
1140
1167
  @item 7
1141
- @cindex compiler_traits:standard_type:int_alignment
1142
- @anchor{compiler_traits:standard_type:int_alignment}
1168
+ @cindex compiler_traits:standard_types:int_size
1169
+ @anchor{compiler_traits:standard_types:int_size}
1143
1170
  @tab
1144
- @code{standard_type:int_alignment}
1171
+ @code{standard_types:int_size}
1145
1172
  @tab
1146
1173
  integer value
1147
1174
  @tab
1148
- Set the memory alignment of @code{int} type family by bit quantities.
1175
+ Set the size of @code{int} type family by bit quantities.
1149
1176
  @item 8
1150
- @cindex compiler_traits:standard_type:long_size
1151
- @anchor{compiler_traits:standard_type:long_size}
1177
+ @cindex compiler_traits:standard_types:int_alignment
1178
+ @anchor{compiler_traits:standard_types:int_alignment}
1152
1179
  @tab
1153
- @code{standard_type:long_size}
1180
+ @code{standard_types:int_alignment}
1154
1181
  @tab
1155
1182
  integer value
1156
1183
  @tab
1157
- Set the size of @code{long int} type family by bit quantities.
1184
+ Set the memory alignment of @code{int} type family by bit quantities.
1158
1185
  @item 9
1159
- @cindex compiler_traits:standard_type:long_alignment
1160
- @anchor{compiler_traits:standard_type:long_alignment}
1186
+ @cindex compiler_traits:standard_types:long_size
1187
+ @anchor{compiler_traits:standard_types:long_size}
1161
1188
  @tab
1162
- @code{standard_type:long_alignment}
1189
+ @code{standard_types:long_size}
1163
1190
  @tab
1164
1191
  integer value
1165
1192
  @tab
1166
- Set the memory alignment of @code{long int} type family by bit quantities.
1193
+ Set the size of @code{long int} type family by bit quantities.
1167
1194
  @item 10
1168
- @cindex compiler_traits:standard_type:long_long_size
1169
- @anchor{compiler_traits:standard_type:long_long_size}
1195
+ @cindex compiler_traits:standard_types:long_alignment
1196
+ @anchor{compiler_traits:standard_types:long_alignment}
1170
1197
  @tab
1171
- @code{standard_type:long_long_size}
1198
+ @code{standard_types:long_alignment}
1172
1199
  @tab
1173
1200
  integer value
1174
1201
  @tab
1175
- Set the size of @code{long long int} type family by bit quantities.
1202
+ Set the memory alignment of @code{long int} type family by bit quantities.
1176
1203
  @item 11
1177
- @cindex compiler_traits:standard_type:long_long_alignment
1178
- @anchor{compiler_traits:standard_type:long_long_alignment}
1204
+ @cindex compiler_traits:standard_types:long_long_size
1205
+ @anchor{compiler_traits:standard_types:long_long_size}
1179
1206
  @tab
1180
- @code{standard_type:long_long_alignment}
1207
+ @code{standard_types:long_long_size}
1181
1208
  @tab
1182
1209
  integer value
1183
1210
  @tab
1184
- Set the memory alignment of @code{long long int} type family by bit quantities.
1211
+ Set the size of @code{long long int} type family by bit quantities.
1185
1212
  @item 12
1186
- @cindex compiler_traits:standard_type:float_size
1187
- @anchor{compiler_traits:standard_type:float_size}
1213
+ @cindex compiler_traits:standard_types:long_long_alignment
1214
+ @anchor{compiler_traits:standard_types:long_long_alignment}
1188
1215
  @tab
1189
- @code{standard_type:float_size}
1216
+ @code{standard_types:long_long_alignment}
1190
1217
  @tab
1191
1218
  integer value
1192
1219
  @tab
1193
- Set the size of @code{float} type family by bit quantities.
1220
+ Set the memory alignment of @code{long long int} type family by bit quantities.
1194
1221
  @item 13
1195
- @cindex compiler_traits:standard_type:float_alignment
1196
- @anchor{compiler_traits:standard_type:float_alignment}
1222
+ @cindex compiler_traits:standard_types:float_size
1223
+ @anchor{compiler_traits:standard_types:float_size}
1197
1224
  @tab
1198
- @code{standard_type:float_alignment}
1225
+ @code{standard_types:float_size}
1199
1226
  @tab
1200
1227
  integer value
1201
1228
  @tab
1202
- Set the memory alignment of @code{float} type family by bit quantities.
1229
+ Set the size of @code{float} type family by bit quantities.
1203
1230
  @item 14
1204
- @cindex compiler_traits:standard_type:double_size
1205
- @anchor{compiler_traits:standard_type:double_size}
1231
+ @cindex compiler_traits:standard_types:float_alignment
1232
+ @anchor{compiler_traits:standard_types:float_alignment}
1206
1233
  @tab
1207
- @code{standard_type:double_size}
1234
+ @code{standard_types:float_alignment}
1208
1235
  @tab
1209
1236
  integer value
1210
1237
  @tab
1211
- Set the size of @code{double} type family by bit quantities.
1238
+ Set the memory alignment of @code{float} type family by bit quantities.
1212
1239
  @item 15
1213
- @cindex compiler_traits:standard_type:double_alignment
1214
- @anchor{compiler_traits:standard_type:double_alignment}
1240
+ @cindex compiler_traits:standard_types:double_size
1241
+ @anchor{compiler_traits:standard_types:double_size}
1215
1242
  @tab
1216
- @code{standard_type:double_alignment}
1243
+ @code{standard_types:double_size}
1217
1244
  @tab
1218
1245
  integer value
1219
1246
  @tab
1220
- Set the memory alignment of @code{double} type family by bit quantities.
1247
+ Set the size of @code{double} type family by bit quantities.
1221
1248
  @item 16
1222
- @cindex compiler_traits:standard_type:long_double_size
1223
- @anchor{compiler_traits:standard_type:long_double_size}
1249
+ @cindex compiler_traits:standard_types:double_alignment
1250
+ @anchor{compiler_traits:standard_types:double_alignment}
1224
1251
  @tab
1225
- @code{standard_type:long_double_size}
1252
+ @code{standard_types:double_alignment}
1226
1253
  @tab
1227
1254
  integer value
1228
1255
  @tab
1229
- Set the size of @code{long double} type family by bit quantities.
1256
+ Set the memory alignment of @code{double} type family by bit quantities.
1230
1257
  @item 17
1231
- @cindex compiler_traits:standard_type:long_double_alignment
1232
- @anchor{compiler_traits:standard_type:long_double_alignment}
1258
+ @cindex compiler_traits:standard_types:long_double_size
1259
+ @anchor{compiler_traits:standard_types:long_double_size}
1233
1260
  @tab
1234
- @code{standard_type:long_double_alignment}
1261
+ @code{standard_types:long_double_size}
1235
1262
  @tab
1236
1263
  integer value
1237
1264
  @tab
1238
- Set the memory alignment of @code{long double} type family by bit quantities.
1265
+ Set the size of @code{long double} type family by bit quantities.
1239
1266
  @item 18
1240
- @cindex compiler_traits:standard_type:code_ptr_size
1241
- @anchor{compiler_traits:standard_type:code_ptr_size}
1267
+ @cindex compiler_traits:standard_types:long_double_alignment
1268
+ @anchor{compiler_traits:standard_types:long_double_alignment}
1242
1269
  @tab
1243
- @code{standard_type:code_ptr_size}
1270
+ @code{standard_types:long_double_alignment}
1244
1271
  @tab
1245
1272
  integer value
1246
1273
  @tab
1247
- Set the size of function pointer by bit quantities.
1274
+ Set the memory alignment of @code{long double} type family by bit quantities.
1248
1275
  @item 19
1249
- @cindex compiler_traits:standard_type:code_ptr_alignment
1250
- @anchor{compiler_traits:standard_type:code_ptr_alignment}
1276
+ @cindex compiler_traits:standard_types:code_ptr_size
1277
+ @anchor{compiler_traits:standard_types:code_ptr_size}
1251
1278
  @tab
1252
- @code{standard_type:code_ptr_alignment}
1279
+ @code{standard_types:code_ptr_size}
1253
1280
  @tab
1254
1281
  integer value
1255
1282
  @tab
1256
- Set the memory alignment of function pointer by bit quantities.
1283
+ Set the size of function pointer by bit quantities.
1257
1284
  @item 20
1258
- @cindex compiler_traits:standard_type:data_ptr_size
1259
- @anchor{compiler_traits:standard_type:data_ptr_size}
1285
+ @cindex compiler_traits:standard_types:code_ptr_alignment
1286
+ @anchor{compiler_traits:standard_types:code_ptr_alignment}
1260
1287
  @tab
1261
- @code{standard_type:data_ptr_size}
1288
+ @code{standard_types:code_ptr_alignment}
1262
1289
  @tab
1263
1290
  integer value
1264
1291
  @tab
1265
- Set the size of data pointer by bit quantities.
1292
+ Set the memory alignment of function pointer by bit quantities.
1266
1293
  @item 21
1267
- @cindex compiler_traits:standard_type:data_ptr_alignment
1268
- @anchor{compiler_traits:standard_type:data_ptr_alignment}
1294
+ @cindex compiler_traits:standard_types:data_ptr_size
1295
+ @anchor{compiler_traits:standard_types:data_ptr_size}
1269
1296
  @tab
1270
- @code{standard_type:data_ptr_alignment}
1297
+ @code{standard_types:data_ptr_size}
1271
1298
  @tab
1272
1299
  integer value
1273
1300
  @tab
1274
- Set the memory alignment of data pointer by bit quantities.
1301
+ Set the size of data pointer by bit quantities.
1275
1302
  @item 22
1276
- @cindex compiler_traits:standard_type:char_as_unsigned_char
1277
- @anchor{compiler_traits:standard_type:char_as_unsigned_char}
1303
+ @cindex compiler_traits:standard_types:data_ptr_alignment
1304
+ @anchor{compiler_traits:standard_types:data_ptr_alignment}
1278
1305
  @tab
1279
- @code{standard_type:char_as_unsigned_char}
1306
+ @code{standard_types:data_ptr_alignment}
1280
1307
  @tab
1281
- boolean value
1308
+ integer value
1282
1309
  @tab
1283
- If @code{`char'} type treat as @code{`unsigned char'}, set true.
1310
+ Set the memory alignment of data pointer by bit quantities.
1284
1311
  @item 23
1285
- @cindex compiler_traits:include_path
1286
- @anchor{compiler_traits:include_path}
1312
+ @cindex compiler_traits:standard_types:char_as_unsigned_char
1313
+ @anchor{compiler_traits:standard_types:char_as_unsigned_char}
1287
1314
  @tab
1288
- @code{include_path}
1315
+ @code{standard_types:char_as_unsigned_char}
1289
1316
  @tab
1290
- array of string
1317
+ boolean value
1291
1318
  @tab
1292
- Set the compiler specific include path.
1293
- An entry can have multiple pathnames with @code{`:'} separators.
1319
+ If @code{`char'} type treat as @code{`unsigned char'}, set true.
1294
1320
  @item 24
1295
1321
  @cindex compiler_traits:arithmetic:logical_right_shift
1296
1322
  @anchor{compiler_traits:arithmetic:logical_right_shift}
@@ -1302,10 +1328,19 @@ boolean value
1302
1328
  If right shift expression @code{`>>'} treat as logical shift instead of arithmetic shift,
1303
1329
  set true.
1304
1330
  @item 25
1305
- @cindex compiler_traits:extension_substitution
1306
- @anchor{compiler_traits:extension_substitution}
1331
+ @cindex compiler_traits:identifier_max
1332
+ @anchor{compiler_traits:identifier_max}
1333
+ @tab
1334
+ @code{identifier_max}
1335
+ @tab
1336
+ integer value
1337
+ @tab
1338
+ Set the maximum number of length which compiler can identifier.
1339
+ @item 26
1340
+ @cindex compiler_traits:extension_substitutions
1341
+ @anchor{compiler_traits:extension_substitutions}
1307
1342
  @tab
1308
- @code{extension_substitution}
1343
+ @code{extension_substitutions}
1309
1344
  @tab
1310
1345
  map of string
1311
1346
  @tab
@@ -1313,34 +1348,27 @@ Set the token replacement pattern to adjust compiler specific extension.
1313
1348
  AdLint puts the warning message @ref{W0061} all uses of this extension.
1314
1349
  If @code{`__attribute__ ( arbitrary token row )'} delete after pre-process and puts the warning @ref{W0061}, set as follows.
1315
1350
  @example
1316
- extension_substitution:
1351
+ extension_substitutions:
1317
1352
  "__attribute__(__adlint__any)": ""
1318
1353
  @end example
1319
1354
 
1320
1355
  And if the token @code{`__restrict'} replaces @code{`restrict'} and put the warning @ref{W0061}, set as follows.
1321
1356
  @example
1322
- extension_substitution:
1357
+ extension_substitutions:
1323
1358
  "__restrict": "restrict"
1324
1359
  @end example
1325
- @item 26
1326
- @cindex compiler_traits:arbitrary_substitution
1327
- @anchor{compiler_traits:arbitrary_substitution}
1328
- @tab
1329
- @code{arbitrary_substitution}
1330
- @tab
1331
- map of string
1332
- @tab
1333
- Same as @ref{compiler_traits:extension_substitution, @code{extension_substitution}},
1334
- replace the token after pre-process, the difference is doesn't put the warning @ref{W0061}.
1335
1360
  @item 27
1336
- @cindex compiler_traits:identifier_max
1337
- @anchor{compiler_traits:identifier_max}
1361
+ @cindex compiler_traits:arbitrary_substitutions
1362
+ @anchor{compiler_traits:arbitrary_substitutions}
1338
1363
  @tab
1339
- @code{identifier_max}
1364
+ @code{arbitrary_substitutions}
1340
1365
  @tab
1341
- integer value
1366
+ map of string
1342
1367
  @tab
1343
- Set the maximum number of length which compiler can identifier.
1368
+ Same as
1369
+ @ref{compiler_traits:extension_substitutions, @code{extension_substitutions}},
1370
+ replace the token after pre-process, the difference is doesn't put the warning
1371
+ @ref{W0061}.
1344
1372
  @end multitable
1345
1373
 
1346
1374
 
@@ -1389,57 +1417,17 @@ string
1389
1417
  @tab
1390
1418
  Set the language of message body.(Currently) it available @code{"en_US"} or @code{"ja_JP"}.
1391
1419
  @item 2
1392
- @cindex message_traits:message_with_class
1393
- @anchor{message_traits:message_with_class}
1394
- @tab
1395
- @code{message_with_class}
1396
- @tab
1397
- boolean
1398
- @tab
1399
- In case of @code{true}, AdLint will output messages with name of the
1400
- examination package, message category and message severity to the @ref{Message
1401
- File, message file}.
1402
- @item 3
1403
- @cindex message_traits:warn_files_in
1404
- @anchor{message_traits:warn_files_in}
1405
- @tab
1406
- @code{warn_files_in}
1407
- @tab
1408
- array of string
1409
- @tab
1410
- @b{This item has no effect on AdLint 2.6.14, yet.}
1411
-
1412
- If a directory path is specified, AdLint will output warning messages about
1413
- source files located under the specified directory.
1414
- If omitted, AdLint will output warning messages about all the files included by
1415
- the target source files such as system headers or 3rd-party library headers.
1416
- @item 4
1417
- @cindex message_traits:warn_files_not_in
1418
- @anchor{message_traits:warn_files_not_in}
1419
- @tab
1420
- @code{warn_files_not_in}
1421
- @tab
1422
- array of string
1420
+ @cindex message_traits:individual_suppression
1421
+ @anchor{message_traits:individual_suppression}
1423
1422
  @tab
1424
- @b{This item has no effect on AdLint 2.6.14, yet.}
1425
-
1426
- If a directory path is specified, AdLint will suppress warning messages about
1427
- source files located under the specified directory.
1428
- @item 5
1429
- @cindex message_traits:individual_selection
1430
- @anchor{message_traits:individual_selection}
1431
- @tab
1432
- @code{individual_selection}
1423
+ @code{individual_suppression}
1433
1424
  @tab
1434
1425
  boolean
1435
1426
  @tab
1436
- @b{This item has no effect on AdLint 2.6.14, yet.}
1437
-
1438
- This item enables code check selection by annotations in the target source
1439
- files.
1427
+ This item enables message suppression by @ref{Source Code Annotation, source code annotations}.
1440
1428
 
1441
- In case of @code{true}, code check selection by annotations will be enabled.
1442
- @item 6
1429
+ In case of @code{true}, message suppression by annotations will be enabled.
1430
+ @item 3
1443
1431
  @cindex message_traits:exclusion:categories
1444
1432
  @anchor{message_traits:exclusion:categories}
1445
1433
  @tab
@@ -1447,10 +1435,8 @@ In case of @code{true}, code check selection by annotations will be enabled.
1447
1435
  @tab
1448
1436
  array of string
1449
1437
  @tab
1450
- @b{This item has no effect on AdLint 2.6.14, yet.}
1451
-
1452
1438
  This item represents excluding code checks by its message categories.
1453
- @item 7
1439
+ @item 4
1454
1440
  @cindex message_traits:exclusion:severities
1455
1441
  @anchor{message_traits:exclusion:severities}
1456
1442
  @tab
@@ -1458,10 +1444,8 @@ This item represents excluding code checks by its message categories.
1458
1444
  @tab
1459
1445
  regexp string
1460
1446
  @tab
1461
- @b{This item has no effect on AdLint 2.6.14, yet.}
1462
-
1463
1447
  This item represents excluding code checks by its message severities.
1464
- @item 8
1448
+ @item 5
1465
1449
  @cindex message_traits:exclusion:messages
1466
1450
  @anchor{message_traits:exclusion:messages}
1467
1451
  @tab
@@ -1469,13 +1453,11 @@ This item represents excluding code checks by its message severities.
1469
1453
  @tab
1470
1454
  map of Message ID and string
1471
1455
  @tab
1472
- @b{This item has no effect on AdLint 2.6.14, yet.}
1473
-
1474
1456
  This item represents excluding code checks by its message ID.
1475
1457
 
1476
1458
  Because a message ID is not unique in multiple examination packages, you should
1477
1459
  also specify the name of the examination package including the message.
1478
- @item 9
1460
+ @item 6
1479
1461
  @cindex message_traits:inclusion:messages
1480
1462
  @anchor{message_traits:inclusion:messages}
1481
1463
  @tab
@@ -1483,14 +1465,12 @@ also specify the name of the examination package including the message.
1483
1465
  @tab
1484
1466
  map of Message ID and string
1485
1467
  @tab
1486
- @b{This item has no effect on AdLint 2.6.14, yet.}
1487
-
1488
1468
  This item represents messages which is excluded by settings of @code{exclusion}
1489
1469
  section but will be used by AdLint.
1490
1470
 
1491
1471
  For example, you can bring back the specified code checks which is excluded by
1492
1472
  @ref{message_traits:exclusion:categories, exclusion:categories}.
1493
- @item 10
1473
+ @item 7
1494
1474
  @cindex message_traits:change_list
1495
1475
  @anchor{message_traits:change_list}
1496
1476
  @tab
@@ -1519,10 +1499,91 @@ change_list:
1519
1499
 
1520
1500
  @node Message Definition
1521
1501
  @section Message Definition file.
1502
+
1522
1503
  Describe all error and warning message to setting file by @uref{http://yaml.org/, format}.
1523
1504
  Normally this file doesn't edit directly.
1524
1505
  If it need to change the message body, set the changes to @ref{message_traits:change_list,
1525
1506
  @code{change_list}} in traits file.
1507
+
1508
+
1509
+ @node Source Code Annotation
1510
+ @section Source Code Annotation
1511
+
1512
+ You can write an annotation which controls AdLint's analysis behavior as an
1513
+ ordinary comment of the programming language.
1514
+
1515
+ @subsection Warning message suppression annotation
1516
+
1517
+ An annotation starts with @code{ADLINT:SF} in an ordinary comment specifies
1518
+ that messages listed in the annotation of the annotated file will be
1519
+ suppressed.
1520
+
1521
+ An annotation starts with @code{ADLINT:SL} in an ordinary comment specifies
1522
+ that messages listed in the annotation of the annotated line will be
1523
+ suppressed.
1524
+
1525
+ The following describes format and usage of the annotation.
1526
+
1527
+ @subheading @bullet{ Common definitions}
1528
+ @example
1529
+ @anchor{message_specifier_list}
1530
+ message_specifier_list : @ref{qualified_message_specifier}
1531
+ | @ref{unqualified_message_specifier}
1532
+ | @ref{message_specifier_list} @ref{qualified_message_specifier}
1533
+ | @ref{message_specifier_list} @ref{unqualified_message_specifier}
1534
+
1535
+ @anchor{qualified_message_specifier}
1536
+ qualified_message_specifier : ':' @ref{package_name} @ref{unqualified_message_specifier}
1537
+
1538
+ @anchor{unqualified_message_specifier}
1539
+ unqualified_message_specifier : ':' '[' @ref{message_name_list} ']'
1540
+
1541
+ @anchor{message_name_list}
1542
+ message_name_list : @ref{message_name}
1543
+ | @ref{message_name_list} ',' @ref{message_name}
1544
+
1545
+ @anchor{message_name}
1546
+ message_name : 'W' [0-9]@{4@}
1547
+
1548
+ @anchor{package_name}
1549
+ package_name : any string specified in @ref{global_traits:exam_packages, @code{exam_packages}} of the traits file.
1550
+ @end example
1551
+
1552
+ @subheading @bullet{ File-wise message suppressor}
1553
+ @example
1554
+ @anchor{file_wise_suppressor_annotation}
1555
+ file_wise_suppressor_annotation : "/*" @ref{file_wise_suppressor_head} @ref{message_specifier_list} "*/"
1556
+ | "//" @ref{file_wise_suppressor_head} @ref{message_specifier_list}
1557
+
1558
+ @anchor{file_wise_suppressor_head}
1559
+ file_wise_suppressor_head : "ADLINT:SF"
1560
+ @end example
1561
+
1562
+ @subheading @bullet{ Line-wise message suppressor}
1563
+ @example
1564
+ @anchor{line_wise_suppressor_annotation}
1565
+ line_wise_suppressor_annotation : "/*" @ref{line_wise_suppressor_head} @ref{message_specifier_list} "*/"
1566
+ | "//" @ref{line_wise_suppressor_head} @ref{message_specifier_list}
1567
+
1568
+ @anchor{line_wise_suppressor_head}
1569
+ line_wise_suppressor_head : "ADLINT:SL"
1570
+ @end example
1571
+
1572
+ @subheading @bullet{ Sample code}
1573
+ @verbatim
1574
+ /* ADLINT:SF:[W0001,W0002] (to suppress W0001 and W0002 of all exam-packages in this file.) */
1575
+ #include <stdio.h>
1576
+
1577
+ extern int i; /* ADLINT:SL:[W0003] (to suppress W0003 of all exam-packages only at this line.) */
1578
+ extern int j; /* ADLINT:SL:c_staging:[W2001] (to suppress W2001 of `c_staging' exam-package only at this line.) */
1579
+
1580
+ void foo(void)
1581
+ {
1582
+ printf("%d\n", i + j);
1583
+ }
1584
+ @end verbatim
1585
+
1586
+
1526
1587
  @node Output
1527
1588
  @chapter Output specification
1528
1589
 
@@ -1660,6 +1721,11 @@ function_scope_type
1660
1721
  : 'F' <- File
1661
1722
  | 'B' <- Block
1662
1723
 
1724
+ @anchor{function_declaration_type}
1725
+ function_declaration_type
1726
+ : 'E' <- Explicit
1727
+ | 'I' <- Implicit
1728
+
1663
1729
  @anchor{type_name}
1664
1730
  type_name : c_identifier
1665
1731
 
@@ -1734,7 +1800,7 @@ metrics_version_head : "VER"
1734
1800
  @end example
1735
1801
 
1736
1802
  @anchor{Output_Metrics_Ver_Sample}
1737
- @subheading @bullet{} Output example
1803
+ @subheading @bullet{ Output example}
1738
1804
  @example
1739
1805
  VER,0.6.4,2012-02-16 14:10:59 +0900,/home/yanoh/intro_demo
1740
1806
  @end example
@@ -1753,7 +1819,7 @@ declaration_record
1753
1819
  declaration_head : "DCL"
1754
1820
  @end example
1755
1821
 
1756
- @subheading @bullet{} Type definition records
1822
+ @subheading @bullet{ Type definition records}
1757
1823
  @example
1758
1824
  @anchor{typedcl_record_body}
1759
1825
  typedcl_record_body
@@ -1767,22 +1833,22 @@ typedcl_type
1767
1833
  | 'E' <- enum
1768
1834
  @end example
1769
1835
 
1770
- @subheading @bullet{} Global variable declaration Record
1836
+ @subheading @bullet{ Global variable declaration Record}
1771
1837
  @example
1772
1838
  @anchor{gvardcl_record_body}
1773
1839
  gvardcl_record_body
1774
1840
  : 'V' ',' @ref{variable_name} ',' @ref{type_rep}
1775
1841
  @end example
1776
1842
 
1777
- @subheading @bullet{} Function declaration record
1843
+ @subheading @bullet{ Function declaration record}
1778
1844
  @example
1779
1845
  @anchor{funcdcl_record_body}
1780
1846
  funcdcl_record_body
1781
- : 'F' ',' @ref{function_linkage_type} ',' @ref{function_scope_type} ',' @ref{function_identifier}
1847
+ : 'F' ',' @ref{function_linkage_type} ',' @ref{function_scope_type} ',' @ref{function_declaration_type} ',' @ref{function_identifier}
1782
1848
  @end example
1783
1849
 
1784
1850
  @anchor{Output_Metrics_Dcl_Sample}
1785
- @subheading @bullet{} Output example
1851
+ @subheading @bullet{ Output example}
1786
1852
  @verbatim
1787
1853
  1: typedef int *int_ptr;
1788
1854
  2:
@@ -1813,7 +1879,7 @@ DCL,test.c,3,8,T,S,Foo,struct Foo @{ int i; long l; @}
1813
1879
  DCL,test.c,8,7,T,U,Bar,union Bar @{ int i; char c; @}
1814
1880
  DCL,test.c,13,6,T,E,Color,"enum Color @{ RED = 1, GREEN, BLUE @}"
1815
1881
  DCL,test.c,19,12,V,global_1,int
1816
- DCL,test.c,21,12,F,X,F,foo,int foo(long)
1882
+ DCL,test.c,21,12,F,X,F,E,foo,int foo(long)
1817
1883
  @end example
1818
1884
 
1819
1885
  @anchor{Output_Metrics_Def}
@@ -1831,20 +1897,20 @@ definition_record
1831
1897
  definition_head : "DEF"
1832
1898
  @end example
1833
1899
 
1834
- @subheading @bullet{} Variable declaration records
1900
+ @subheading @bullet{ Variable declaration records}
1835
1901
  @example
1836
1902
  @anchor{vardef_record_body}
1837
1903
  vardef_record_body
1838
- : 'V' ',' @ref{var_linkage_type} ',' @ref{var_scope_type} ',' @ref{storage_class_type} ',' @ref{variable_name} ',' @ref{type_rep}
1904
+ : 'V' ',' @ref{variable_linkage_type} ',' @ref{variable_scope_type} ',' @ref{storage_class_type} ',' @ref{variable_name} ',' @ref{type_rep}
1839
1905
 
1840
- @anchor{var_linkage_type}
1841
- var_linkage_type
1906
+ @anchor{variable_linkage_type}
1907
+ variable_linkage_type
1842
1908
  : 'I' <- Internal
1843
1909
  | 'X' <- eXternal
1844
1910
  | 'N' <- None
1845
1911
 
1846
- @anchor{var_scope_type}
1847
- var_scope_type
1912
+ @anchor{variable_scope_type}
1913
+ variable_scope_type
1848
1914
  : 'F' <- File
1849
1915
  | 'B' <- Block
1850
1916
  | 'P' <- Parameter
@@ -1857,14 +1923,14 @@ storage_class_type
1857
1923
  | 'N' <- None
1858
1924
  @end example
1859
1925
 
1860
- @subheading @bullet{} Function definition records
1926
+ @subheading @bullet{ Function definition records}
1861
1927
  @example
1862
1928
  @anchor{fundef_record_body}
1863
1929
  fundef_record_body
1864
1930
  : 'F' ',' @ref{function_linkage_type} ',' @ref{function_scope_type} ',' @ref{function_identifier} ',' @ref{lines}
1865
1931
  @end example
1866
1932
 
1867
- @subheading @bullet{} Macro definition records
1933
+ @subheading @bullet{ Macro definition records}
1868
1934
  @example
1869
1935
  @anchor{macrodef_record_body}
1870
1936
  macrodef_record_body
@@ -1876,7 +1942,7 @@ macro_form_type
1876
1942
  | 'F' <- Function
1877
1943
  @end example
1878
1944
 
1879
- @subheading @bullet{} Label definition record
1945
+ @subheading @bullet{ Label definition record}
1880
1946
  @example
1881
1947
  @anchor{labeldef_record_body}
1882
1948
  labeldef_record_body
@@ -1887,7 +1953,7 @@ label_name : c_identifier
1887
1953
  @end example
1888
1954
 
1889
1955
  @anchor{Output_Metrics_Def_Sample}
1890
- @subheading @bullet{} Output example
1956
+ @subheading @bullet{ Output example}
1891
1957
  @verbatim
1892
1958
  1: int global_1;
1893
1959
  2: struct { int i; long l; } global_2;
@@ -1943,7 +2009,7 @@ initialization_head : "INI"
1943
2009
  @end example
1944
2010
 
1945
2011
  @anchor{Output_Metrics_Ini_Sample}
1946
- @subheading @bullet{} Output example
2012
+ @subheading @bullet{ Output example}
1947
2013
  @verbatim
1948
2014
  1: int global_1 = 1;
1949
2015
  2:
@@ -1975,7 +2041,7 @@ assignment_head : "ASN"
1975
2041
  @end example
1976
2042
 
1977
2043
  @anchor{Output_Metrics_Asn_Sample}
1978
- @subheading @bullet{} Output example
2044
+ @subheading @bullet{ Output example}
1979
2045
  @verbatim
1980
2046
  1: int main(void)
1981
2047
  2: {
@@ -2010,7 +2076,7 @@ dependency_record
2010
2076
  dependency_head : "DEP"
2011
2077
  @end example
2012
2078
 
2013
- @subheading @bullet{} Include records
2079
+ @subheading @bullet{ Include records}
2014
2080
  @example
2015
2081
  @anchor{include_record_body}
2016
2082
  include_record_body
@@ -2020,7 +2086,7 @@ include_record_body
2020
2086
  included_fpath : '<' @ref{file_path} '>' | '"' @ref{file_path} '"'
2021
2087
  @end example
2022
2088
 
2023
- @subheading @bullet{} Caller function records
2089
+ @subheading @bullet{ Caller function records}
2024
2090
  @example
2025
2091
  @anchor{call_record_body}
2026
2092
  call_record_body
@@ -2033,7 +2099,7 @@ caller_function : @ref{function_identifier}
2033
2099
  callee_function : @ref{function_identifier}
2034
2100
  @end example
2035
2101
 
2036
- @subheading @bullet{} external reference records
2102
+ @subheading @bullet{ external reference records}
2037
2103
  @example
2038
2104
  @anchor{xref_record_body}
2039
2105
  xref_record_body
@@ -2062,7 +2128,7 @@ accessee_function : @ref{function_identifier}
2062
2128
  @end example
2063
2129
 
2064
2130
  @anchor{Output_Metrics_Dep_Sample}
2065
- @subheading @bullet{} Output example
2131
+ @subheading @bullet{ Output example}
2066
2132
  @verbatim
2067
2133
  1: #include <stdio.h>
2068
2134
  2: #include "test.h"
@@ -2121,20 +2187,20 @@ literal_type
2121
2187
  @anchor{literal_prefix}
2122
2188
  literal_prefix
2123
2189
  :
2124
- | 'l'
2125
- | 'L'
2190
+ | 'l' | 'L'
2191
+ | '0'
2192
+ | '0x' | '0X'
2193
+ | '0b' | '0B'
2126
2194
 
2127
2195
  @anchor{literal_suffix}
2128
2196
  literal_suffix
2129
2197
  :
2130
- | 'u'
2131
- | 'U'
2132
- | 'l'
2133
- | 'L'
2134
- | 'll'
2135
- | 'LL'
2136
- | 'f'
2137
- | 'F'
2198
+ | 'u' | 'U'
2199
+ | 'l' | 'L'
2200
+ | 'ul' | 'Ul' | 'uL' | 'UL'
2201
+ | 'ull' | 'Ull' | 'uLL' | 'ULL'
2202
+ | 'll' | 'LL'
2203
+ | 'f' | 'F'
2138
2204
 
2139
2205
  @anchor{literal_value}
2140
2206
  literal_value
@@ -2143,7 +2209,7 @@ literal_value
2143
2209
  @end example
2144
2210
 
2145
2211
  @anchor{Output_Metrics_Lit_Sample}
2146
- @subheading @bullet{} Output example
2212
+ @subheading @bullet{ Output example}
2147
2213
  @verbatim
2148
2214
  1: unsigned int i = 0xFFU;
2149
2215
  2:
@@ -2189,7 +2255,7 @@ pp_directive
2189
2255
  @end example
2190
2256
 
2191
2257
  @anchor{Output_Metrics_Pre_Sample}
2192
- @subheading @bullet{} Output example
2258
+ @subheading @bullet{ Output example}
2193
2259
  @verbatim
2194
2260
  1: #pragma once
2195
2261
  2:
@@ -2265,7 +2331,7 @@ metric_value : integer value
2265
2331
  @anchor{message_file}
2266
2332
  message_file
2267
2333
  : @ref{message_version_record}
2268
- | @ref{message_version_record} @ref{message_list}
2334
+ | @ref{message_version_record} @ref{new_line} @ref{message_list}
2269
2335
 
2270
2336
  @anchor{message_version_record}
2271
2337
  message_version_record
@@ -2283,34 +2349,25 @@ error_record
2283
2349
  : @ref{error_line} @ref{new_line} @ref{context_line_list}
2284
2350
 
2285
2351
  @anchor{error_line}
2286
- error_line (in case of @ref{message_traits:message_with_class, message_with_class} == true)
2352
+ error_line
2287
2353
  : 'E' ',' @ref{file_path} ',' @ref{line_no} ',' @ref{column_no} ',' @ref{exam_package_name} ',' @ref{message_id} ',' @ref{message_category} ',' @ref{message_severity} ',' @ref{message_text}
2288
2354
 
2289
- error_line (in case of @ref{message_traits:message_with_class, message_with_class} != true)
2290
- : 'E' ',' @ref{file_path} ',' @ref{line_no} ',' @ref{column_no} ',' @ref{message_id} ',' @ref{message_text}
2291
-
2292
2355
  @anchor{warning_record}
2293
2356
  warning_record
2294
2357
  : @ref{warning_line} @ref{new_line} @ref{context_line_list}
2295
2358
 
2296
2359
  @anchor{warning_line}
2297
- warning_line (in case of @ref{message_traits:message_with_class, message_with_class} == true)
2360
+ warning_line
2298
2361
  : 'W' ',' @ref{file_path} ',' @ref{line_no} ',' @ref{column_no} ',' @ref{exam_package_name} ',' @ref{message_id} ',' @ref{message_category} ',' @ref{message_severity} ',' @ref{message_text}
2299
2362
 
2300
- warning_line (in case of @ref{message_traits:message_with_class, message_with_class} != true)
2301
- : 'W' ',' @ref{file_path} ',' @ref{line_no} ',' @ref{column_no} ',' @ref{message_id} ',' @ref{message_text}
2302
-
2303
2363
  @anchor{context_line_list}
2304
2364
  context_line_list
2305
2365
  :
2306
2366
  | @ref{context_line} @ref{new_line} @ref{context_line_list}
2307
2367
 
2308
2368
  @anchor{context_line}
2309
- context_line (in case of @ref{message_traits:message_with_class, message_with_class} == true)
2369
+ context_line
2310
2370
  : 'C' ',' @ref{file_path} ',' @ref{line_no} ',' @ref{column_no} ',' @ref{exam_package_name} ',' @ref{message_id} ',' @ref{message_category} ',' @ref{message_severity} ',' @ref{message_text}
2311
-
2312
- context_line (in case of @ref{message_traits:message_with_class, message_with_class} != true)
2313
- : 'C' ',' @ref{file_path} ',' @ref{line_no} ',' @ref{column_no} ',' @ref{message_id} ',' @ref{message_text}
2314
2371
  @end example
2315
2372
 
2316
2373
 
@@ -2347,7 +2404,7 @@ context_line (in case of @ref{message_traits:message_with_class, message_with_cl
2347
2404
  * W0025::`%s' is already included by this file directly.
2348
2405
  * W0026::`%s' is already included by this file indirectly.
2349
2406
  * W0027::Comparison operation is being made by pointer variable.
2350
- * W0028::Indirect referencing is being made by NULL pointer.
2407
+ * W0028::Dereferencing a pointer constant of NULL.
2351
2408
  * W0030::Arithmetic operation is being made by NULL pointer.
2352
2409
  * W0031::A formal argument `%s' is not used in this function.
2353
2410
  * W0033::A label of `%s:' is not used in this function. It might be removed.
@@ -2385,7 +2442,7 @@ context_line (in case of @ref{message_traits:message_with_class, message_with_cl
2385
2442
  * W0071::Included "%s" is not referenced in the translation unit. It can be removed.
2386
2443
  * W0072::A character except for basic source character is used in header file name.
2387
2444
  * W0073::No include guard in this include file.
2388
- * W0076::This hexadecimal literal doesn't contained within suffix `U' or `u'.
2445
+ * W0076::Hexadecimal constant without `U' or `u' suffix.
2389
2446
  * W0077::Lower case `l' is added to integer or floating-point number.
2390
2447
  * W0078::A function is declared without list of formal argument.
2391
2448
  * W0079::This array cannot keep final character `\0' which initial value of string literal.
@@ -2397,9 +2454,9 @@ context_line (in case of @ref{message_traits:message_with_class, message_with_cl
2397
2454
  * W0086::Second or third operand is verbose statement which doesn't have side-effects in ternary operator (conditional operator).
2398
2455
  * W0087::The right side statement of comma operator is verbose statement which doesn't have side-effects.
2399
2456
  * W0088::The right side statement of logical operator is verbose statement which doesn't have side-effects.
2400
- * W0093::It divided by a value which possibly zero.
2457
+ * W0093::This expression may cause division-by-zero.
2401
2458
  * W0096::It divided by a constant expression which definitely zero.
2402
- * W0097::It divided by zero.
2459
+ * W0097::This expression must cause division-by-zero.
2403
2460
  * W0100::The value of variable `%s' is not change. It can be declarable with 'const'.
2404
2461
  * W0101::An address of auto variable is substituted for a pointer which has a longer life. This program is danger.
2405
2462
  * W0102::An address of auto variable is returned via formal argument to functions. This program is danger.
@@ -2407,15 +2464,15 @@ context_line (in case of @ref{message_traits:message_with_class, message_with_cl
2407
2464
  * W0104::The value of formal argument `%s' is not change. It can be declarable with 'const'.
2408
2465
  * W0105::The object which points the formal argument `%s' is not change. It can be declaring as pointer type which points const object.
2409
2466
  * W0107::An address of auto variable is substituted for local pointer with 'static' option. This program is danger.
2410
- * W0108::Assignment operator is used in logical operation expression.
2467
+ * W0108::An assignment-expression appears in the logical expression.
2411
2468
  * W0109::The definition of this function doesn't found. It consider it was omitted, and insert `extern int %s()'.
2412
2469
  * W0110::A variable number with floating-point type is used by loop counter in for statement.
2413
2470
  * W0112::The statement of floating-point compares by equivalent operator.
2414
2471
  * W0114::This control expression is not explicit logical operation.
2415
2472
  * W0115::Unsigned left shift operator `<<' drop the high-order bit.
2416
2473
  * W0116::Unsigned left shift operator `<<' can be drop high-order bit.
2417
- * W0117::The definition of `%s' has an external coupling, but the declaration doesn't find before its definition.
2418
- * W0118::The definition of `%s' which has external coupling doesn't find in header file.
2474
+ * W0117::`%s' has external-linkage without any prototype declarations.
2475
+ * W0118::`%s' has external-linkage, but no prototype declaration is in header files.
2419
2476
  * W0119::An implicit type conversion from char to signed char.
2420
2477
  * W0120::An implicit type conversion from char to unsigned char.
2421
2478
  * W0121::An implicit type conversion from char to signed short.
@@ -2462,9 +2519,9 @@ context_line (in case of @ref{message_traits:message_with_class, message_with_cl
2462
2519
  * W0162::An implicit type conversion from signed short to unsigned short.
2463
2520
  * W0163::An implicit type conversion from signed short to unsigned int.
2464
2521
  * W0164::An implicit type conversion from signed short to unsigned long.
2465
- * W0165::An implicit type conversion from signed int to unsigned char.
2522
+ * W0165::Implicit conversion from `signed int' to `unsigned char'.
2466
2523
  * W0166::An implicit type conversion from signed int to unsigned short.
2467
- * W0167::An implicit type conversion from signed int to unsigned int.
2524
+ * W0167::Implicit conversion from `signed int' to `unsigned int'.
2468
2525
  * W0168::An implicit type conversion from signed int to unsigned long.
2469
2526
  * W0169::An implicit type conversion from signed long to unsigned char.
2470
2527
  * W0170::An implicit type conversion from signed long to unsigned short.
@@ -2543,7 +2600,7 @@ context_line (in case of @ref{message_traits:message_with_class, message_with_cl
2543
2600
  * W0243::An implicit type conversion from long double to signed long long.
2544
2601
  * W0244::An implicit type conversion from long double to unsigned long long.
2545
2602
  * W0245::An implicit type conversion from unsigned char to signed short.
2546
- * W0246::An implicit type conversion from unsigned char to signed int.
2603
+ * W0246::Implicit conversion from `unsigned char' to `signed int'.
2547
2604
  * W0247::An implicit type conversion from unsigned char to signed long.
2548
2605
  * W0248::An implicit type conversion from unsigned short to signed int.
2549
2606
  * W0249::An implicit type conversion from unsigned short to signed long.
@@ -2710,9 +2767,9 @@ context_line (in case of @ref{message_traits:message_with_class, message_with_cl
2710
2767
  * W0410::A value of unsigned long type is returned from `signed long long %s()' function.
2711
2768
  * W0411::The initialization of enumeration should be only the starting, whole or not at all.
2712
2769
  * W0413::The body of control statement is unenclosed by curly brace `@{@}' block.
2713
- * W0414::The body of control statement is in a line. It unenclosed by curly brace `@{@}' block.
2714
- * W0421::Indirect reference is being made to the pointer which its value will be NULL.
2715
- * W0422::Indirect reference is being made to the pointer which its value might be NULL.
2770
+ * W0414::Body of the controlling statement in a line is not enclosed by `@{@}'.
2771
+ * W0421::Value of the dereferencing pointer must be NULL.
2772
+ * W0422::Value of the dereferencing pointer may be NULL.
2716
2773
  * W0423::Arithmetic operation is being made to the pointer which its value will be NULL.
2717
2774
  * W0424::Arithmetic operation is being made to the pointer which its value might be NULL.
2718
2775
  * W0425::There are several definitions or statements in a line.
@@ -2753,7 +2810,7 @@ context_line (in case of @ref{message_traits:message_with_class, message_with_cl
2753
2810
  * W0499::The different operator of same priority in the binary operator except '+','-', '*','/' is used. It had better clear the coupling by using `()'.
2754
2811
  * W0500::The operator of different priority in the binary operator '+','-','*','/' is used. It had better clear the coupling by using `()'.
2755
2812
  * W0501::A ternary operator is used with binary operator. It had better clear the coupling by using `()'.
2756
- * W0502::A binary operator except '+', '-', '*', '/', '%%' is used with the different priority of binary operator. It had better clear the coupling by using `()'.
2813
+ * W0502::A binary operator other than `+', `-', `*', `/' and `%%' appears with binary operator which has different precedence without expression grouping.
2757
2814
  * W0508::There's a side effect at the right operand of `&&' or `||'operator.
2758
2815
  * W0511::C++ style comment of `//' is used.
2759
2816
  * W0512::The result of `++' or `--' operator is used in the statement.
@@ -2789,9 +2846,9 @@ context_line (in case of @ref{message_traits:message_with_class, message_with_cl
2789
2846
  * W0567::A volatile integer type cast to pointer to object and vice versa.
2790
2847
  * W0568::The result of left shift operation against the signed constant expression value is undefined.
2791
2848
  * W0569::The result of left shift operation against the signed expression value is undefined.
2792
- * W0570::The result of left shift operation against the signed expression value might be undefined.
2849
+ * W0570::This signed left shift operation may make undefined value.
2793
2850
  * W0571::The result of right shift operation against the signed data is a possibility the both logical shift and arithmetic shift by implementation.
2794
- * W0572::The result of bit operation against the signed data is defined by implementation.
2851
+ * W0572::Bitwise operation of signed value causes implementation-defined behavior.
2795
2852
  * W0573::A `-' character in scanset in `[]' is implementation defined.
2796
2853
  * W0574::The character except for basic source character is used in the character constant.
2797
2854
  * W0575::The character except for basic source character is used in the string literal.
@@ -2813,15 +2870,15 @@ context_line (in case of @ref{message_traits:message_with_class, message_with_cl
2813
2870
  * W0598::`%s' might be modified more than once between the side-effects completion point. The evaluation order is undefined.
2814
2871
  * W0599::`%s' is modified and referenced between the side-effects completion point. The evaluation order is undefined.
2815
2872
  * W0600::`%s' is modified and might be referenced between the side-effects completion point. The evaluation order is undefined.
2816
- * W0605::A 'break' statement is used more than once to finish the repetition statement.
2873
+ * W0605::Multiple break-statements appear to break the same iteration.
2817
2874
  * W0606::An union has a member which type is floating-point.
2818
2875
  * W0607::An integer expression which the value which the value is minus converted to unsigned type.
2819
2876
  * W0608::An integer expression which the value might be minus converted to unsigned type.
2820
- * W0609::The result of this logical operation is always true.
2821
- * W0610::The result of this logical operation is always false.
2877
+ * W0609::This logical expression always makes true.
2878
+ * W0610::This logical expression always makes false.
2822
2879
  * W0611::The value of this 'for' control expression is always true.
2823
2880
  * W0612::The value of this 'if' conditional expression is always true.
2824
- * W0613::The value of this control expression is always false.
2881
+ * W0613::This controlling expression always makes false.
2825
2882
  * W0614::The value of this "do-while" control expression is always false. The body of repetition statement executed only once.
2826
2883
  * W0622::A function is declared in the block scope.
2827
2884
  * W0623::An external coupling object is declared in the block scope.
@@ -2830,7 +2887,7 @@ context_line (in case of @ref{message_traits:message_with_class, message_with_cl
2830
2887
  * W0626::A wide character or wide string literal is used.
2831
2888
  * W0627::There is a dead letter (only `;') in the following other code.
2832
2889
  * W0628::A function `%s' is defined, but this is not used in this project.
2833
- * W0629::A static function `%s()' is not used in this translation unit.
2890
+ * W0629::`%s()' has internal-linkage, but it is never called in this translation-unit.
2834
2891
  * W0632::Using ' or " characters in `#include <%s>' directive makes undefined behavior.
2835
2892
  * W0633::Using ' character in `#include "%s"' directive makes undefined behavior.
2836
2893
  * W0634::`\' is used in `#include' line. `/' is recommended for the path delimiter.
@@ -2898,8 +2955,8 @@ context_line (in case of @ref{message_traits:message_with_class, message_with_cl
2898
2955
  * W0700::The return value of function `%s()' is unspecified. The return value is implicitly int. There is no 'return' statement to return value.
2899
2956
  * W0703::The tag `%s' hides the declaration of same identifier which has wider scope.
2900
2957
  * W0704::This `%s' declaration hides the declaration of same identifier which has wider scope.
2901
- * W0705::An array's index might be out of range.
2902
- * W0707::An array's index is out of range.
2958
+ * W0705::This non-constant array subscript may cause out-of-range access.
2959
+ * W0707::This constant array subscript must cause out-of-range access.
2903
2960
  * W0708::A value of control variable `%s' in 'for' statement is changed in the body of repetition.
2904
2961
  * W0711::Right operand of relational operator is a substantive 'boolean' expression.
2905
2962
  * W0712::Left operand of relational operator is a substantive 'boolean' expression.
@@ -2934,7 +2991,7 @@ context_line (in case of @ref{message_traits:message_with_class, message_with_cl
2934
2991
  * W0742::A negative integer constant expression converted to unsigned type.
2935
2992
  * W0743::The value of integer constant expression beyond the range of might be expressed with converted signed type.
2936
2993
  * W0744::The value of this control expression is constant value to be false. This control statement is not run.
2937
- * W0745::The array's index points out of domain.
2994
+ * W0745::This non-constant array subscript may cause out-of-range access.
2938
2995
  * W0747::An implicit type conversion from signed short to signed char.
2939
2996
  * W0748::An implicit type conversion from unsigned short to unsigned char.
2940
2997
  * W0749::An implicit type conversion from signed int to signed char.
@@ -2979,7 +3036,7 @@ context_line (in case of @ref{message_traits:message_with_class, message_with_cl
2979
3036
  * W0791::An global object or a function `%s' is declared in more than one file.
2980
3037
  * W0792::A floating point type object cast to function pointer and vice versa.
2981
3038
  * W0793::A function pointer cast to pointer to point an object and vice versa.
2982
- * W0794::Left shift operation to signed operand.
3039
+ * W0794::Left shift operation of signed value causes implementation-defined behavior.
2983
3040
  * W0795::The number of an actual argument in function call is smaller than the number of a formal argument in the function prototype declaration.
2984
3041
  * W0796::The number of an actual argument in function call is bigger than the number of a formal argument in the function prototype declaration.
2985
3042
  * W0797::The number of an actual argument in function call is different from the number of a formal argument in the function declaration.
@@ -3005,10 +3062,10 @@ context_line (in case of @ref{message_traits:message_with_class, message_with_cl
3005
3062
  * W0833::A suffix 'LL' is using.
3006
3063
  * W0834::A long long type is using.
3007
3064
  * W0835::A macro which receives variable argument is defined.
3008
- * W0947::A string literal is used directly.
3009
- * W0948::A character constant `%s' is used directly.
3065
+ * W0947::String literal is specified directly.
3066
+ * W0948::Character constant %s is specified directly.
3010
3067
  * W0949::A value `%s' is used directly for size definition of bit field.
3011
- * W0950::A value `%s' is used directly for size definition of the array.
3068
+ * W0950::Integer constant `%s' is specified directly as an array size.
3012
3069
  * W1026::%sth actual argument is not object type.
3013
3070
  * W1027::A base type of array is function type. This is meaningless.
3014
3071
  * W1028::A base type of array is an array with unknown size. Incomplete type of array will not build.
@@ -3054,12 +3111,12 @@ context_line (in case of @ref{message_traits:message_with_class, message_with_cl
3054
3111
  * W1070::This `switch' statement can be translated into `if-else' statement because there are only 2 execution paths.
3055
3112
  * W1071::Function `%s' has multiple termination points.
3056
3113
  * W1072::`A `goto' statement is found.
3057
- * W1073::A return value of function `%s' is not used.。
3114
+ * W1073::Return value of the function `%s' is discarded.
3058
3115
  * W1074::Side-effects in `sizeof' operand will not be recorded because the operand will not be executed actually.
3059
3116
  * W1075::This declaration has no `static' storage-class-specifier while the declaring object has internal-linkage.
3060
- * W1076::`%s' is defined as internal-linkage, but it has no forward declaration.
3117
+ * W1076::`%s' has internal-linkage without any prototype declarations.
3061
3118
  * W1077::Declaring array object without a size.
3062
- * W9001::This statement doesn't reach the control.
3119
+ * W9001::Control never reaches to this statement.
3063
3120
  * W9002::There is no line feed character at the end of file.
3064
3121
  * W9003::An object typed `%s' is implicitly converted into an object of type `%s'.
3065
3122
  * C0001::A warning is detected as a pair of this identifier `%s'.
@@ -3916,7 +3973,7 @@ None.
3916
3973
 
3917
3974
  @subsection Message body
3918
3975
 
3919
- Indirect referencing is being made by NULL pointer.
3976
+ Dereferencing a pointer constant of NULL.
3920
3977
 
3921
3978
  @subsection Content
3922
3979
 
@@ -4484,6 +4541,8 @@ void func(void)
4484
4541
  }
4485
4542
  @end verbatim
4486
4543
 
4544
+ @subsection Related message
4545
+
4487
4546
  @itemize
4488
4547
  @item @ref{C0001} A warning is detected as a pair of this identifier `%s'.
4489
4548
  @end itemize
@@ -5046,6 +5105,8 @@ Under construction.
5046
5105
 
5047
5106
  None.
5048
5107
 
5108
+ @subsection Related message
5109
+
5049
5110
  @itemize
5050
5111
  @item @ref{W0071} Included "%s" is not referenced in the translation unit. It can be removed.
5051
5112
  @end itemize
@@ -5070,6 +5131,8 @@ Under construction.
5070
5131
 
5071
5132
  None.
5072
5133
 
5134
+ @subsection Related message
5135
+
5073
5136
  @itemize
5074
5137
  @item @ref{W0070} Included <%s> is not referenced in the translation unit. It can be removed.
5075
5138
  @end itemize
@@ -5134,7 +5197,7 @@ None.
5134
5197
 
5135
5198
  @subsection Message body
5136
5199
 
5137
- This hexadecimal literal doesn't contained within suffix `U' or `u'.
5200
+ Hexadecimal constant without `U' or `u' suffix.
5138
5201
 
5139
5202
  @subsection Content
5140
5203
 
@@ -5486,7 +5549,7 @@ Under construction.
5486
5549
 
5487
5550
  @subsection Message body
5488
5551
 
5489
- It divided by a value which possibly zero.
5552
+ This expression may cause division-by-zero.
5490
5553
 
5491
5554
  @subsection Content
5492
5555
 
@@ -5546,7 +5609,7 @@ None.
5546
5609
 
5547
5610
  @subsection Message body
5548
5611
 
5549
- It divided by zero.
5612
+ This expression may cause division-by-zero.
5550
5613
 
5551
5614
  @subsection Content
5552
5615
 
@@ -5724,6 +5787,8 @@ void func(int val) /* W0104 */
5724
5787
  }
5725
5788
  @end verbatim
5726
5789
 
5790
+ @subsection Related message
5791
+
5727
5792
  @itemize
5728
5793
  @item @ref{W0105} The object which points the formal argument `%s' is not change. It can be declaring as pointer type which points const object.
5729
5794
  @end itemize
@@ -5801,7 +5866,7 @@ None.
5801
5866
 
5802
5867
  @subsection Message body
5803
5868
 
5804
- Assignment operator is used in logical operation expression.
5869
+ An assignment-expression appears in the logical expression.
5805
5870
 
5806
5871
  @subsection Content
5807
5872
 
@@ -6017,7 +6082,7 @@ unsigned int func(unsigned int a)
6017
6082
 
6018
6083
  @subsection Message body
6019
6084
 
6020
- The definition of `%s' has an external coupling, but the declaration doesn't find before its definition.
6085
+ `%s' has external-linkage without any prototype declarations.
6021
6086
 
6022
6087
  @subsection Content
6023
6088
 
@@ -6035,7 +6100,7 @@ void func(void) /* W0117 */
6035
6100
  @subsection Related message
6036
6101
 
6037
6102
  @itemize
6038
- @item @ref{W0118} The definition of `%s' which has external coupling doesn't find in header file.
6103
+ @item @ref{W0118} `%s' has external-linkage, but no prototype declaration is in header files.
6039
6104
  @end itemize
6040
6105
 
6041
6106
  @subsection Since
@@ -6048,7 +6113,7 @@ void func(void) /* W0117 */
6048
6113
 
6049
6114
  @subsection Message body
6050
6115
 
6051
- The definition of `%s' which has external coupling doesn't find in header file.
6116
+ `%s' has external-linkage, but no prototype declaration is in header files.
6052
6117
 
6053
6118
  @subsection Content
6054
6119
 
@@ -6064,7 +6129,7 @@ extern int val; /* W0118 */
6064
6129
  @subsection Related message
6065
6130
 
6066
6131
  @itemize
6067
- @item @ref{W0117} The definition of `%s' has an external coupling, but the declaration doesn't find before its definition.
6132
+ @item @ref{W0117} `%s' has external-linkage without any prototype declarations.
6068
6133
  @end itemize
6069
6134
 
6070
6135
  @subsection Since
@@ -6186,6 +6251,8 @@ void bar(char a)
6186
6251
  }
6187
6252
  @end verbatim
6188
6253
 
6254
+ @subsection Related message
6255
+
6189
6256
  @itemize
6190
6257
  @item @ref{W0119} An implicit type conversion from char to signed char.
6191
6258
  @item @ref{W0120} An implicit type conversion from char to unsigned char.
@@ -6455,7 +6522,7 @@ void bar(char a)
6455
6522
  }
6456
6523
  @end verbatim
6457
6524
 
6458
- @subsection Related Message
6525
+ @subsection Related message
6459
6526
 
6460
6527
  @itemize
6461
6528
  @item @ref{W0119} An implicit type conversion from char to signed char.
@@ -7820,9 +7887,9 @@ void bar(signed char a)
7820
7887
  @item @ref{W0162} An implicit type conversion from signed short to unsigned short.
7821
7888
  @item @ref{W0163} An implicit type conversion from signed short to unsigned int.
7822
7889
  @item @ref{W0164} An implicit type conversion from signed short to unsigned long.
7823
- @item @ref{W0165} An implicit type conversion from signed int to unsigned char.
7890
+ @item @ref{W0165} Implicit conversion from `signed int' to `unsigned char'.
7824
7891
  @item @ref{W0166} An implicit type conversion from signed int to unsigned short.
7825
- @item @ref{W0167} An implicit type conversion from signed int to unsigned int.
7892
+ @item @ref{W0167} Implicit conversion from `signed int' to `unsigned int'.
7826
7893
  @item @ref{W0168} An implicit type conversion from signed int to unsigned long.
7827
7894
  @item @ref{W0169} An implicit type conversion from signed long to unsigned char.
7828
7895
  @item @ref{W0170} An implicit type conversion from signed long to unsigned short.
@@ -7877,9 +7944,9 @@ void bar(signed char a)
7877
7944
  @item @ref{W0162} An implicit type conversion from signed short to unsigned short.
7878
7945
  @item @ref{W0163} An implicit type conversion from signed short to unsigned int.
7879
7946
  @item @ref{W0164} An implicit type conversion from signed short to unsigned long.
7880
- @item @ref{W0165} An implicit type conversion from signed int to unsigned char.
7947
+ @item @ref{W0165} Implicit conversion from `signed int' to `unsigned char'.
7881
7948
  @item @ref{W0166} An implicit type conversion from signed int to unsigned short.
7882
- @item @ref{W0167} An implicit type conversion from signed int to unsigned int.
7949
+ @item @ref{W0167} Implicit conversion from `signed int' to `unsigned int'.
7883
7950
  @item @ref{W0168} An implicit type conversion from signed int to unsigned long.
7884
7951
  @item @ref{W0169} An implicit type conversion from signed long to unsigned char.
7885
7952
  @item @ref{W0170} An implicit type conversion from signed long to unsigned short.
@@ -7936,9 +8003,9 @@ void bar(signed char a)
7936
8003
  @item @ref{W0162} An implicit type conversion from signed short to unsigned short.
7937
8004
  @item @ref{W0163} An implicit type conversion from signed short to unsigned int.
7938
8005
  @item @ref{W0164} An implicit type conversion from signed short to unsigned long.
7939
- @item @ref{W0165} An implicit type conversion from signed int to unsigned char.
8006
+ @item @ref{W0165} Implicit conversion from `signed int' to `unsigned char'.
7940
8007
  @item @ref{W0166} An implicit type conversion from signed int to unsigned short.
7941
- @item @ref{W0167} An implicit type conversion from signed int to unsigned int.
8008
+ @item @ref{W0167} Implicit conversion from `signed int' to `unsigned int'.
7942
8009
  @item @ref{W0168} An implicit type conversion from signed int to unsigned long.
7943
8010
  @item @ref{W0169} An implicit type conversion from signed long to unsigned char.
7944
8011
  @item @ref{W0170} An implicit type conversion from signed long to unsigned short.
@@ -7993,9 +8060,9 @@ void bar(signed char a)
7993
8060
  @item @ref{W0162} An implicit type conversion from signed short to unsigned short.
7994
8061
  @item @ref{W0163} An implicit type conversion from signed short to unsigned int.
7995
8062
  @item @ref{W0164} An implicit type conversion from signed short to unsigned long.
7996
- @item @ref{W0165} An implicit type conversion from signed int to unsigned char.
8063
+ @item @ref{W0165} Implicit conversion from `signed int' to `unsigned char'.
7997
8064
  @item @ref{W0166} An implicit type conversion from signed int to unsigned short.
7998
- @item @ref{W0167} An implicit type conversion from signed int to unsigned int.
8065
+ @item @ref{W0167} Implicit conversion from `signed int' to `unsigned int'.
7999
8066
  @item @ref{W0168} An implicit type conversion from signed int to unsigned long.
8000
8067
  @item @ref{W0169} An implicit type conversion from signed long to unsigned char.
8001
8068
  @item @ref{W0170} An implicit type conversion from signed long to unsigned short.
@@ -8051,9 +8118,9 @@ void bar(short a)
8051
8118
  @item @ref{W0162} An implicit type conversion from signed short to unsigned short.
8052
8119
  @item @ref{W0163} An implicit type conversion from signed short to unsigned int.
8053
8120
  @item @ref{W0164} An implicit type conversion from signed short to unsigned long.
8054
- @item @ref{W0165} An implicit type conversion from signed int to unsigned char.
8121
+ @item @ref{W0165} Implicit conversion from `signed int' to `unsigned char'.
8055
8122
  @item @ref{W0166} An implicit type conversion from signed int to unsigned short.
8056
- @item @ref{W0167} An implicit type conversion from signed int to unsigned int.
8123
+ @item @ref{W0167} Implicit conversion from `signed int' to `unsigned int'.
8057
8124
  @item @ref{W0168} An implicit type conversion from signed int to unsigned long.
8058
8125
  @item @ref{W0169} An implicit type conversion from signed long to unsigned char.
8059
8126
  @item @ref{W0170} An implicit type conversion from signed long to unsigned short.
@@ -8108,9 +8175,9 @@ void bar(short a)
8108
8175
  @item @ref{W0161} An implicit type conversion from signed short to unsigned char.
8109
8176
  @item @ref{W0163} An implicit type conversion from signed short to unsigned int.
8110
8177
  @item @ref{W0164} An implicit type conversion from signed short to unsigned long.
8111
- @item @ref{W0165} An implicit type conversion from signed int to unsigned char.
8178
+ @item @ref{W0165} Implicit conversion from `signed int' to `unsigned char'.
8112
8179
  @item @ref{W0166} An implicit type conversion from signed int to unsigned short.
8113
- @item @ref{W0167} An implicit type conversion from signed int to unsigned int.
8180
+ @item @ref{W0167} Implicit conversion from `signed int' to `unsigned int'.
8114
8181
  @item @ref{W0168} An implicit type conversion from signed int to unsigned long.
8115
8182
  @item @ref{W0169} An implicit type conversion from signed long to unsigned char.
8116
8183
  @item @ref{W0170} An implicit type conversion from signed long to unsigned short.
@@ -8165,9 +8232,9 @@ void bar(short a)
8165
8232
  @item @ref{W0161} An implicit type conversion from signed short to unsigned char.
8166
8233
  @item @ref{W0162} An implicit type conversion from signed short to unsigned short.
8167
8234
  @item @ref{W0164} An implicit type conversion from signed short to unsigned long.
8168
- @item @ref{W0165} An implicit type conversion from signed int to unsigned char.
8235
+ @item @ref{W0165} Implicit conversion from `signed int' to `unsigned char'.
8169
8236
  @item @ref{W0166} An implicit type conversion from signed int to unsigned short.
8170
- @item @ref{W0167} An implicit type conversion from signed int to unsigned int.
8237
+ @item @ref{W0167} Implicit conversion from `signed int' to `unsigned int'.
8171
8238
  @item @ref{W0168} An implicit type conversion from signed int to unsigned long.
8172
8239
  @item @ref{W0169} An implicit type conversion from signed long to unsigned char.
8173
8240
  @item @ref{W0170} An implicit type conversion from signed long to unsigned short.
@@ -8222,9 +8289,9 @@ void bar(short a)
8222
8289
  @item @ref{W0161} An implicit type conversion from signed short to unsigned char.
8223
8290
  @item @ref{W0162} An implicit type conversion from signed short to unsigned short.
8224
8291
  @item @ref{W0163} An implicit type conversion from signed short to unsigned int.
8225
- @item @ref{W0165} An implicit type conversion from signed int to unsigned char.
8292
+ @item @ref{W0165} Implicit conversion from `signed int' to `unsigned char'.
8226
8293
  @item @ref{W0166} An implicit type conversion from signed int to unsigned short.
8227
- @item @ref{W0167} An implicit type conversion from signed int to unsigned int.
8294
+ @item @ref{W0167} Implicit conversion from `signed int' to `unsigned int'.
8228
8295
  @item @ref{W0168} An implicit type conversion from signed int to unsigned long.
8229
8296
  @item @ref{W0169} An implicit type conversion from signed long to unsigned char.
8230
8297
  @item @ref{W0170} An implicit type conversion from signed long to unsigned short.
@@ -8251,7 +8318,7 @@ void bar(short a)
8251
8318
 
8252
8319
  @subsection Message body
8253
8320
 
8254
- An implicit type conversion from signed int to unsigned char.
8321
+ Implicit conversion from `signed int' to `unsigned char'.
8255
8322
 
8256
8323
  @subsection Content
8257
8324
 
@@ -8280,7 +8347,7 @@ void bar(int a)
8280
8347
  @item @ref{W0163} An implicit type conversion from signed short to unsigned int.
8281
8348
  @item @ref{W0164} An implicit type conversion from signed short to unsigned long.
8282
8349
  @item @ref{W0166} An implicit type conversion from signed int to unsigned short.
8283
- @item @ref{W0167} An implicit type conversion from signed int to unsigned int.
8350
+ @item @ref{W0167} Implicit conversion from `signed int' to `unsigned int'.
8284
8351
  @item @ref{W0168} An implicit type conversion from signed int to unsigned long.
8285
8352
  @item @ref{W0169} An implicit type conversion from signed long to unsigned char.
8286
8353
  @item @ref{W0170} An implicit type conversion from signed long to unsigned short.
@@ -8337,8 +8404,8 @@ void bar(int a)
8337
8404
  @item @ref{W0162} An implicit type conversion from signed short to unsigned short.
8338
8405
  @item @ref{W0163} An implicit type conversion from signed short to unsigned int.
8339
8406
  @item @ref{W0164} An implicit type conversion from signed short to unsigned long.
8340
- @item @ref{W0165} An implicit type conversion from signed int to unsigned char.
8341
- @item @ref{W0167} An implicit type conversion from signed int to unsigned int.
8407
+ @item @ref{W0165} Implicit conversion from `signed int' to `unsigned char'.
8408
+ @item @ref{W0167} Implicit conversion from `signed int' to `unsigned int'.
8342
8409
  @item @ref{W0168} An implicit type conversion from signed int to unsigned long.
8343
8410
  @item @ref{W0169} An implicit type conversion from signed long to unsigned char.
8344
8411
  @item @ref{W0170} An implicit type conversion from signed long to unsigned short.
@@ -8365,7 +8432,7 @@ void bar(int a)
8365
8432
 
8366
8433
  @subsection Message body
8367
8434
 
8368
- An implicit type conversion from signed int to unsigned int.
8435
+ Implicit conversion from `signed int' to `unsigned int'.
8369
8436
 
8370
8437
  @subsection Content
8371
8438
 
@@ -8394,7 +8461,7 @@ void bar(int a)
8394
8461
  @item @ref{W0162} An implicit type conversion from signed short to unsigned short.
8395
8462
  @item @ref{W0163} An implicit type conversion from signed short to unsigned int.
8396
8463
  @item @ref{W0164} An implicit type conversion from signed short to unsigned long.
8397
- @item @ref{W0165} An implicit type conversion from signed int to unsigned char.
8464
+ @item @ref{W0165} Implicit conversion from `signed int' to `unsigned char'.
8398
8465
  @item @ref{W0166} An implicit type conversion from signed int to unsigned short.
8399
8466
  @item @ref{W0168} An implicit type conversion from signed int to unsigned long.
8400
8467
  @item @ref{W0169} An implicit type conversion from signed long to unsigned char.
@@ -8451,9 +8518,9 @@ void bar(int a)
8451
8518
  @item @ref{W0162} An implicit type conversion from signed short to unsigned short.
8452
8519
  @item @ref{W0163} An implicit type conversion from signed short to unsigned int.
8453
8520
  @item @ref{W0164} An implicit type conversion from signed short to unsigned long.
8454
- @item @ref{W0165} An implicit type conversion from signed int to unsigned char.
8521
+ @item @ref{W0165} Implicit conversion from `signed int' to `unsigned char'.
8455
8522
  @item @ref{W0166} An implicit type conversion from signed int to unsigned short.
8456
- @item @ref{W0167} An implicit type conversion from signed int to unsigned int.
8523
+ @item @ref{W0167} Implicit conversion from `signed int' to `unsigned int'.
8457
8524
  @item @ref{W0169} An implicit type conversion from signed long to unsigned char.
8458
8525
  @item @ref{W0170} An implicit type conversion from signed long to unsigned short.
8459
8526
  @item @ref{W0171} An implicit type conversion from signed long to unsigned int.
@@ -8508,9 +8575,9 @@ void bar(long a)
8508
8575
  @item @ref{W0162} An implicit type conversion from signed short to unsigned short.
8509
8576
  @item @ref{W0163} An implicit type conversion from signed short to unsigned int.
8510
8577
  @item @ref{W0164} An implicit type conversion from signed short to unsigned long.
8511
- @item @ref{W0165} An implicit type conversion from signed int to unsigned char.
8578
+ @item @ref{W0165} Implicit conversion from `signed int' to `unsigned char'.
8512
8579
  @item @ref{W0166} An implicit type conversion from signed int to unsigned short.
8513
- @item @ref{W0167} An implicit type conversion from signed int to unsigned int.
8580
+ @item @ref{W0167} Implicit conversion from `signed int' to `unsigned int'.
8514
8581
  @item @ref{W0168} An implicit type conversion from signed int to unsigned long.
8515
8582
  @item @ref{W0170} An implicit type conversion from signed long to unsigned short.
8516
8583
  @item @ref{W0171} An implicit type conversion from signed long to unsigned int.
@@ -8566,9 +8633,9 @@ void bar(long a)
8566
8633
  @item @ref{W0162} An implicit type conversion from signed short to unsigned short.
8567
8634
  @item @ref{W0163} An implicit type conversion from signed short to unsigned int.
8568
8635
  @item @ref{W0164} An implicit type conversion from signed short to unsigned long.
8569
- @item @ref{W0165} An implicit type conversion from signed int to unsigned char.
8636
+ @item @ref{W0165} Implicit conversion from `signed int' to `unsigned char'.
8570
8637
  @item @ref{W0166} An implicit type conversion from signed int to unsigned short.
8571
- @item @ref{W0167} An implicit type conversion from signed int to unsigned int.
8638
+ @item @ref{W0167} Implicit conversion from `signed int' to `unsigned int'.
8572
8639
  @item @ref{W0168} An implicit type conversion from signed int to unsigned long.
8573
8640
  @item @ref{W0169} An implicit type conversion from signed long to unsigned char.
8574
8641
  @item @ref{W0171} An implicit type conversion from signed long to unsigned int.
@@ -8624,9 +8691,9 @@ void bar(long a)
8624
8691
  @item @ref{W0162} An implicit type conversion from signed short to unsigned short.
8625
8692
  @item @ref{W0163} An implicit type conversion from signed short to unsigned int.
8626
8693
  @item @ref{W0164} An implicit type conversion from signed short to unsigned long.
8627
- @item @ref{W0165} An implicit type conversion from signed int to unsigned char.
8694
+ @item @ref{W0165} Implicit conversion from `signed int' to `unsigned char'.
8628
8695
  @item @ref{W0166} An implicit type conversion from signed int to unsigned short.
8629
- @item @ref{W0167} An implicit type conversion from signed int to unsigned int.
8696
+ @item @ref{W0167} Implicit conversion from `signed int' to `unsigned int'.
8630
8697
  @item @ref{W0168} An implicit type conversion from signed int to unsigned long.
8631
8698
  @item @ref{W0169} An implicit type conversion from signed long to unsigned char.
8632
8699
  @item @ref{W0170} An implicit type conversion from signed long to unsigned short.
@@ -8681,9 +8748,9 @@ void bar(long a)
8681
8748
  @item @ref{W0162} An implicit type conversion from signed short to unsigned short.
8682
8749
  @item @ref{W0163} An implicit type conversion from signed short to unsigned int.
8683
8750
  @item @ref{W0164} An implicit type conversion from signed short to unsigned long.
8684
- @item @ref{W0165} An implicit type conversion from signed int to unsigned char.
8751
+ @item @ref{W0165} Implicit conversion from `signed int' to `unsigned char'.
8685
8752
  @item @ref{W0166} An implicit type conversion from signed int to unsigned short.
8686
- @item @ref{W0167} An implicit type conversion from signed int to unsigned int.
8753
+ @item @ref{W0167} Implicit conversion from `signed int' to `unsigned int'.
8687
8754
  @item @ref{W0168} An implicit type conversion from signed int to unsigned long.
8688
8755
  @item @ref{W0169} An implicit type conversion from signed long to unsigned char.
8689
8756
  @item @ref{W0170} An implicit type conversion from signed long to unsigned short.
@@ -8737,9 +8804,9 @@ void bar(signed char a)
8737
8804
  @item @ref{W0162} An implicit type conversion from signed short to unsigned short.
8738
8805
  @item @ref{W0163} An implicit type conversion from signed short to unsigned int.
8739
8806
  @item @ref{W0164} An implicit type conversion from signed short to unsigned long.
8740
- @item @ref{W0165} An implicit type conversion from signed int to unsigned char.
8807
+ @item @ref{W0165} Implicit conversion from `signed int' to `unsigned char'.
8741
8808
  @item @ref{W0166} An implicit type conversion from signed int to unsigned short.
8742
- @item @ref{W0167} An implicit type conversion from signed int to unsigned int.
8809
+ @item @ref{W0167} Implicit conversion from `signed int' to `unsigned int'.
8743
8810
  @item @ref{W0168} An implicit type conversion from signed int to unsigned long.
8744
8811
  @item @ref{W0169} An implicit type conversion from signed long to unsigned char.
8745
8812
  @item @ref{W0170} An implicit type conversion from signed long to unsigned short.
@@ -8794,9 +8861,9 @@ void bar(short a)
8794
8861
  @item @ref{W0162} An implicit type conversion from signed short to unsigned short.
8795
8862
  @item @ref{W0163} An implicit type conversion from signed short to unsigned int.
8796
8863
  @item @ref{W0164} An implicit type conversion from signed short to unsigned long.
8797
- @item @ref{W0165} An implicit type conversion from signed int to unsigned char.
8864
+ @item @ref{W0165} Implicit conversion from `signed int' to `unsigned char'.
8798
8865
  @item @ref{W0166} An implicit type conversion from signed int to unsigned short.
8799
- @item @ref{W0167} An implicit type conversion from signed int to unsigned int.
8866
+ @item @ref{W0167} Implicit conversion from `signed int' to `unsigned int'.
8800
8867
  @item @ref{W0168} An implicit type conversion from signed int to unsigned long.
8801
8868
  @item @ref{W0169} An implicit type conversion from signed long to unsigned char.
8802
8869
  @item @ref{W0170} An implicit type conversion from signed long to unsigned short.
@@ -8851,9 +8918,9 @@ void bar(int a)
8851
8918
  @item @ref{W0162} An implicit type conversion from signed short to unsigned short.
8852
8919
  @item @ref{W0163} An implicit type conversion from signed short to unsigned int.
8853
8920
  @item @ref{W0164} An implicit type conversion from signed short to unsigned long.
8854
- @item @ref{W0165} An implicit type conversion from signed int to unsigned char.
8921
+ @item @ref{W0165} Implicit conversion from `signed int' to `unsigned char'.
8855
8922
  @item @ref{W0166} An implicit type conversion from signed int to unsigned short.
8856
- @item @ref{W0167} An implicit type conversion from signed int to unsigned int.
8923
+ @item @ref{W0167} Implicit conversion from `signed int' to `unsigned int'.
8857
8924
  @item @ref{W0168} An implicit type conversion from signed int to unsigned long.
8858
8925
  @item @ref{W0169} An implicit type conversion from signed long to unsigned char.
8859
8926
  @item @ref{W0170} An implicit type conversion from signed long to unsigned short.
@@ -8908,9 +8975,9 @@ void bar(long a)
8908
8975
  @item @ref{W0162} An implicit type conversion from signed short to unsigned short.
8909
8976
  @item @ref{W0163} An implicit type conversion from signed short to unsigned int.
8910
8977
  @item @ref{W0164} An implicit type conversion from signed short to unsigned long.
8911
- @item @ref{W0165} An implicit type conversion from signed int to unsigned char.
8978
+ @item @ref{W0165} Implicit conversion from `signed int' to `unsigned char'.
8912
8979
  @item @ref{W0166} An implicit type conversion from signed int to unsigned short.
8913
- @item @ref{W0167} An implicit type conversion from signed int to unsigned int.
8980
+ @item @ref{W0167} Implicit conversion from `signed int' to `unsigned int'.
8914
8981
  @item @ref{W0168} An implicit type conversion from signed int to unsigned long.
8915
8982
  @item @ref{W0169} An implicit type conversion from signed long to unsigned char.
8916
8983
  @item @ref{W0170} An implicit type conversion from signed long to unsigned short.
@@ -8965,9 +9032,9 @@ void bar(long long a)
8965
9032
  @item @ref{W0162} An implicit type conversion from signed short to unsigned short.
8966
9033
  @item @ref{W0163} An implicit type conversion from signed short to unsigned int.
8967
9034
  @item @ref{W0164} An implicit type conversion from signed short to unsigned long.
8968
- @item @ref{W0165} An implicit type conversion from signed int to unsigned char.
9035
+ @item @ref{W0165} Implicit conversion from `signed int' to `unsigned char'.
8969
9036
  @item @ref{W0166} An implicit type conversion from signed int to unsigned short.
8970
- @item @ref{W0167} An implicit type conversion from signed int to unsigned int.
9037
+ @item @ref{W0167} Implicit conversion from `signed int' to `unsigned int'.
8971
9038
  @item @ref{W0168} An implicit type conversion from signed int to unsigned long.
8972
9039
  @item @ref{W0169} An implicit type conversion from signed long to unsigned char.
8973
9040
  @item @ref{W0170} An implicit type conversion from signed long to unsigned short.
@@ -9022,9 +9089,9 @@ void bar(long long a)
9022
9089
  @item @ref{W0162} An implicit type conversion from signed short to unsigned short.
9023
9090
  @item @ref{W0163} An implicit type conversion from signed short to unsigned int.
9024
9091
  @item @ref{W0164} An implicit type conversion from signed short to unsigned long.
9025
- @item @ref{W0165} An implicit type conversion from signed int to unsigned char.
9092
+ @item @ref{W0165} Implicit conversion from `signed int' to `unsigned char'.
9026
9093
  @item @ref{W0166} An implicit type conversion from signed int to unsigned short.
9027
- @item @ref{W0167} An implicit type conversion from signed int to unsigned int.
9094
+ @item @ref{W0167} Implicit conversion from `signed int' to `unsigned int'.
9028
9095
  @item @ref{W0168} An implicit type conversion from signed int to unsigned long.
9029
9096
  @item @ref{W0169} An implicit type conversion from signed long to unsigned char.
9030
9097
  @item @ref{W0170} An implicit type conversion from signed long to unsigned short.
@@ -9079,9 +9146,9 @@ void bar(long long a)
9079
9146
  @item @ref{W0162} An implicit type conversion from signed short to unsigned short.
9080
9147
  @item @ref{W0163} An implicit type conversion from signed short to unsigned int.
9081
9148
  @item @ref{W0164} An implicit type conversion from signed short to unsigned long.
9082
- @item @ref{W0165} An implicit type conversion from signed int to unsigned char.
9149
+ @item @ref{W0165} Implicit conversion from `signed int' to `unsigned char'.
9083
9150
  @item @ref{W0166} An implicit type conversion from signed int to unsigned short.
9084
- @item @ref{W0167} An implicit type conversion from signed int to unsigned int.
9151
+ @item @ref{W0167} Implicit conversion from `signed int' to `unsigned int'.
9085
9152
  @item @ref{W0168} An implicit type conversion from signed int to unsigned long.
9086
9153
  @item @ref{W0169} An implicit type conversion from signed long to unsigned char.
9087
9154
  @item @ref{W0170} An implicit type conversion from signed long to unsigned short.
@@ -9136,9 +9203,9 @@ void bar(long long a)
9136
9203
  @item @ref{W0162} An implicit type conversion from signed short to unsigned short.
9137
9204
  @item @ref{W0163} An implicit type conversion from signed short to unsigned int.
9138
9205
  @item @ref{W0164} An implicit type conversion from signed short to unsigned long.
9139
- @item @ref{W0165} An implicit type conversion from signed int to unsigned char.
9206
+ @item @ref{W0165} Implicit conversion from `signed int' to `unsigned char'.
9140
9207
  @item @ref{W0166} An implicit type conversion from signed int to unsigned short.
9141
- @item @ref{W0167} An implicit type conversion from signed int to unsigned int.
9208
+ @item @ref{W0167} Implicit conversion from `signed int' to `unsigned int'.
9142
9209
  @item @ref{W0168} An implicit type conversion from signed int to unsigned long.
9143
9210
  @item @ref{W0169} An implicit type conversion from signed long to unsigned char.
9144
9211
  @item @ref{W0170} An implicit type conversion from signed long to unsigned short.
@@ -9193,9 +9260,9 @@ void bar(long long a)
9193
9260
  @item @ref{W0162} An implicit type conversion from signed short to unsigned short.
9194
9261
  @item @ref{W0163} An implicit type conversion from signed short to unsigned int.
9195
9262
  @item @ref{W0164} An implicit type conversion from signed short to unsigned long.
9196
- @item @ref{W0165} An implicit type conversion from signed int to unsigned char.
9263
+ @item @ref{W0165} Implicit conversion from `signed int' to `unsigned char'.
9197
9264
  @item @ref{W0166} An implicit type conversion from signed int to unsigned short.
9198
- @item @ref{W0167} An implicit type conversion from signed int to unsigned int.
9265
+ @item @ref{W0167} Implicit conversion from `signed int' to `unsigned int'.
9199
9266
  @item @ref{W0168} An implicit type conversion from signed int to unsigned long.
9200
9267
  @item @ref{W0169} An implicit type conversion from signed long to unsigned char.
9201
9268
  @item @ref{W0170} An implicit type conversion from signed long to unsigned short.
@@ -13243,7 +13310,7 @@ void bar(unsigned char a)
13243
13310
  @subsection Related message
13244
13311
 
13245
13312
  @itemize
13246
- @item @ref{W0246} An implicit type conversion from unsigned char to signed int.
13313
+ @item @ref{W0246} Implicit conversion from `unsigned char' to `signed int'.
13247
13314
  @item @ref{W0247} An implicit type conversion from unsigned char to signed long.
13248
13315
  @item @ref{W0248} An implicit type conversion from unsigned short to signed int.
13249
13316
  @item @ref{W0249} An implicit type conversion from unsigned short to signed long.
@@ -13264,7 +13331,7 @@ void bar(unsigned char a)
13264
13331
 
13265
13332
  @subsection Message body
13266
13333
 
13267
- An implicit type conversion from unsigned char to int.
13334
+ Implicit conversion from `unsigned char' to `signed int'.
13268
13335
 
13269
13336
  @subsection Content
13270
13337
 
@@ -13328,7 +13395,7 @@ void bar(unsigned char a)
13328
13395
 
13329
13396
  @itemize
13330
13397
  @item @ref{W0245} An implicit type conversion from unsigned char to signed short.
13331
- @item @ref{W0246} An implicit type conversion from unsigned char to signed int.
13398
+ @item @ref{W0246} Implicit conversion from `unsigned char' to `signed int'.
13332
13399
  @item @ref{W0248} An implicit type conversion from unsigned short to signed int.
13333
13400
  @item @ref{W0249} An implicit type conversion from unsigned short to signed long.
13334
13401
  @item @ref{W0250} An implicit type conversion from unsigned int to signed long.
@@ -13370,7 +13437,7 @@ void bar(unsigned short a)
13370
13437
 
13371
13438
  @itemize
13372
13439
  @item @ref{W0245} An implicit type conversion from unsigned char to signed short.
13373
- @item @ref{W0246} An implicit type conversion from unsigned char to signed int.
13440
+ @item @ref{W0246} Implicit conversion from `unsigned char' to `signed int'.
13374
13441
  @item @ref{W0247} An implicit type conversion from unsigned char to signed long.
13375
13442
  @item @ref{W0249} An implicit type conversion from unsigned short to signed long.
13376
13443
  @item @ref{W0250} An implicit type conversion from unsigned int to signed long.
@@ -13412,7 +13479,7 @@ void bar(unsigned short a)
13412
13479
 
13413
13480
  @itemize
13414
13481
  @item @ref{W0245} An implicit type conversion from unsigned char to signed short.
13415
- @item @ref{W0246} An implicit type conversion from unsigned char to signed int.
13482
+ @item @ref{W0246} Implicit conversion from `unsigned char' to `signed int'.
13416
13483
  @item @ref{W0247} An implicit type conversion from unsigned char to signed long.
13417
13484
  @item @ref{W0248} An implicit type conversion from unsigned short to signed int.
13418
13485
  @item @ref{W0249} An implicit type conversion from unsigned short to signed long.
@@ -13454,7 +13521,7 @@ void bar(unsigned int a)
13454
13521
 
13455
13522
  @itemize
13456
13523
  @item @ref{W0245} An implicit type conversion from unsigned char to signed short.
13457
- @item @ref{W0246} An implicit type conversion from unsigned char to signed int.
13524
+ @item @ref{W0246} Implicit conversion from `unsigned char' to `signed int'.
13458
13525
  @item @ref{W0247} An implicit type conversion from unsigned char to signed long.
13459
13526
  @item @ref{W0248} An implicit type conversion from unsigned short to signed int.
13460
13527
  @item @ref{W0249} An implicit type conversion from unsigned short to signed long.
@@ -13496,7 +13563,7 @@ void bar(unsigned char a)
13496
13563
 
13497
13564
  @itemize
13498
13565
  @item @ref{W0245} An implicit type conversion from unsigned char to signed short.
13499
- @item @ref{W0246} An implicit type conversion from unsigned char to signed int.
13566
+ @item @ref{W0246} Implicit conversion from `unsigned char' to `signed int'.
13500
13567
  @item @ref{W0247} An implicit type conversion from unsigned char to signed long.
13501
13568
  @item @ref{W0248} An implicit type conversion from unsigned short to signed int.
13502
13569
  @item @ref{W0249} An implicit type conversion from unsigned short to signed long.
@@ -13538,7 +13605,7 @@ void bar(unsigned short a)
13538
13605
 
13539
13606
  @itemize
13540
13607
  @item @ref{W0245} An implicit type conversion from unsigned char to signed short.
13541
- @item @ref{W0246} An implicit type conversion from unsigned char to signed int.
13608
+ @item @ref{W0246} Implicit conversion from `unsigned char' to `signed int'.
13542
13609
  @item @ref{W0247} An implicit type conversion from unsigned char to signed long.
13543
13610
  @item @ref{W0248} An implicit type conversion from unsigned short to signed int.
13544
13611
  @item @ref{W0249} An implicit type conversion from unsigned short to signed long.
@@ -13581,7 +13648,7 @@ void bar(unsigned int a)
13581
13648
 
13582
13649
  @itemize
13583
13650
  @item @ref{W0245} An implicit type conversion from unsigned char to signed short.
13584
- @item @ref{W0246} An implicit type conversion from unsigned char to signed int.
13651
+ @item @ref{W0246} Implicit conversion from `unsigned char' to `signed int'.
13585
13652
  @item @ref{W0247} An implicit type conversion from unsigned char to signed long.
13586
13653
  @item @ref{W0248} An implicit type conversion from unsigned short to signed int.
13587
13654
  @item @ref{W0249} An implicit type conversion from unsigned short to signed long.
@@ -13623,7 +13690,7 @@ void bar(unsigned long a)
13623
13690
 
13624
13691
  @itemize
13625
13692
  @item @ref{W0245} An implicit type conversion from unsigned char to signed short.
13626
- @item @ref{W0246} An implicit type conversion from unsigned char to signed int.
13693
+ @item @ref{W0246} Implicit conversion from `unsigned char' to `signed int'.
13627
13694
  @item @ref{W0247} An implicit type conversion from unsigned char to signed long.
13628
13695
  @item @ref{W0248} An implicit type conversion from unsigned short to signed int.
13629
13696
  @item @ref{W0249} An implicit type conversion from unsigned short to signed long.
@@ -22002,7 +22069,7 @@ if (x > 0)
22002
22069
  @subsection Related message
22003
22070
 
22004
22071
  @itemize
22005
- @item @ref{W0414} The body of control statement is in a line. It unenclosed by curly brace `@{@}' block.
22072
+ @item @ref{W0414} Body of the controlling statement in a line is not enclosed by `@{@}'.
22006
22073
  @end itemize
22007
22074
 
22008
22075
  @subsection Since
@@ -22015,7 +22082,7 @@ if (x > 0)
22015
22082
 
22016
22083
  @subsection Message body
22017
22084
 
22018
- The body of control statement is in a line. It unenclosed by curly brace `@{@}' block.
22085
+ Body of the controlling statement in a line is not enclosed by `@{@}'.
22019
22086
 
22020
22087
  @subsection Content
22021
22088
 
@@ -22039,10 +22106,11 @@ if (x > 0) x++; /* W0414 */
22039
22106
 
22040
22107
  @node W0421
22041
22108
  @section W0421
22109
+ @cindex W0421
22042
22110
 
22043
22111
  @subsection Message body
22044
22112
 
22045
- Indirect reference is being made to the pointer which its value will be NULL.
22113
+ Value of the dereferencing pointer must be NULL.
22046
22114
 
22047
22115
  @subsection Content
22048
22116
 
@@ -22078,7 +22146,7 @@ None.
22078
22146
 
22079
22147
  @subsection Message body
22080
22148
 
22081
- Indirect reference is being made to the pointer which its value might be NULL.
22149
+ Value of the dereferencing pointer may be NULL.
22082
22150
 
22083
22151
  @subsection Content
22084
22152
 
@@ -23238,7 +23306,7 @@ void func(int a, int b, int c)
23238
23306
  @item @ref{W0499} The different operator of same priority in the binary operator except '+','-', '*','/' is used. It had better clear the coupling by using `()'.
23239
23307
  @item @ref{W0500} The operator of different priority in the binary operator '+','-','*','/' is used. It had better clear the coupling by using `()'.
23240
23308
  @item @ref{W0501} A ternary operator is used with binary operator. It had better clear the coupling by using `()'.
23241
- @item @ref{W0502} A binary operator except '+', '-', '*', '/', '%%' is used with the different priority of binary operator. It had better clear the coupling by using `()'.
23309
+ @item @ref{W0502} A binary operator other than `+', `-', `*', `/' and `%%' appears with binary operator which has different precedence without expression grouping.
23242
23310
  @end itemize
23243
23311
 
23244
23312
  @subsection Since
@@ -23275,7 +23343,7 @@ void func(int a, int b, int c, int d, int e)
23275
23343
  @item @ref{W0499} The different operator of same priority in the binary operator except '+','-', '*','/' is used. It had better clear the coupling by using `()'.
23276
23344
  @item @ref{W0500} The operator of different priority in the binary operator '+','-','*','/' is used. It had better clear the coupling by using `()'.
23277
23345
  @item @ref{W0501} A ternary operator is used with binary operator. It had better clear the coupling by using `()'.
23278
- @item @ref{W0502} A binary operator except '+', '-', '*', '/', '%%' is used with the different priority of binary operator. It had better clear the coupling by using `()'.
23346
+ @item @ref{W0502} A binary operator other than `+', `-', `*', `/' and `%%' appears with binary operator which has different precedence without expression grouping.
23279
23347
  @end itemize
23280
23348
 
23281
23349
  @subsection Since
@@ -23312,7 +23380,7 @@ void func(int a, int b, int c)
23312
23380
  @item @ref{W0499} The different operator of same priority in the binary operator except '+','-', '*','/' is used. It had better clear the coupling by using `()'.
23313
23381
  @item @ref{W0500} The operator of different priority in the binary operator '+','-','*','/' is used. It had better clear the coupling by using `()'.
23314
23382
  @item @ref{W0501} A ternary operator is used with binary operator. It had better clear the coupling by using `()'.
23315
- @item @ref{W0502} A binary operator except '+', '-', '*', '/', '%%' is used with the different priority of binary operator. It had better clear the coupling by using `()'.
23383
+ @item @ref{W0502} A binary operator other than `+', `-', `*', `/' and `%%' appears with binary operator which has different precedence without expression grouping.
23316
23384
  @end itemize
23317
23385
 
23318
23386
  @subsection Since
@@ -23349,7 +23417,7 @@ void func(int a, int b, int c)
23349
23417
  @item @ref{W0499} The different operator of same priority in the binary operator except '+','-', '*','/' is used. It had better clear the coupling by using `()'.
23350
23418
  @item @ref{W0500} The operator of different priority in the binary operator '+','-','*','/' is used. It had better clear the coupling by using `()'.
23351
23419
  @item @ref{W0501} A ternary operator is used with binary operator. It had better clear the coupling by using `()'.
23352
- @item @ref{W0502} A binary operator except '+', '-', '*', '/', '%%' is used with the different priority of binary operator. It had better clear the coupling by using `()'.
23420
+ @item @ref{W0502} A binary operator other than `+', `-', `*', `/' and `%%' appears with binary operator which has different precedence without expression grouping.
23353
23421
  @end itemize
23354
23422
 
23355
23423
  @subsection Since
@@ -23386,7 +23454,7 @@ void func(int a, int b, int c)
23386
23454
  @item @ref{W0498} The different operator of same priority in the binary operator '+','-', '*','/' is used. It had better clear the coupling by using `()'.
23387
23455
  @item @ref{W0500} The operator of different priority in the binary operator '+','-','*','/' is used. It had better clear the coupling by using `()'.
23388
23456
  @item @ref{W0501} A ternary operator is used with binary operator. It had better clear the coupling by using `()'.
23389
- @item @ref{W0502} A binary operator except '+', '-', '*', '/', '%%' is used with the different priority of binary operator. It had better clear the coupling by using `()'.
23457
+ @item @ref{W0502} A binary operator other than `+', `-', `*', `/' and `%%' appears with binary operator which has different precedence without expression grouping.
23390
23458
  @end itemize
23391
23459
 
23392
23460
  @subsection Since
@@ -23423,7 +23491,7 @@ void func(int a, int b, int c)
23423
23491
  @item @ref{W0498} The different operator of same priority in the binary operator '+','-', '*','/' is used. It had better clear the coupling by using `()'.
23424
23492
  @item @ref{W0499} The different operator of same priority in the binary operator except '+','-', '*','/' is used. It had better clear the coupling by using `()'.
23425
23493
  @item @ref{W0501} A ternary operator is used with binary operator. It had better clear the coupling by using `()'.
23426
- @item @ref{W0502} A binary operator except '+', '-', '*', '/', '%%' is used with the different priority of binary operator. It had better clear the coupling by using `()'.
23494
+ @item @ref{W0502} A binary operator other than `+', `-', `*', `/' and `%%' appears with binary operator which has different precedence without expression grouping.
23427
23495
  @end itemize
23428
23496
 
23429
23497
  @subsection Since
@@ -23460,7 +23528,7 @@ void func(int a, int b, int c)
23460
23528
  @item @ref{W0498} The different operator of same priority in the binary operator '+','-', '*','/' is used. It had better clear the coupling by using `()'.
23461
23529
  @item @ref{W0499} The different operator of same priority in the binary operator except '+','-', '*','/' is used. It had better clear the coupling by using `()'.
23462
23530
  @item @ref{W0500} The operator of different priority in the binary operator '+','-','*','/' is used. It had better clear the coupling by using `()'.
23463
- @item @ref{W0502} A binary operator except '+', '-', '*', '/', '%%' is used with the different priority of binary operator. It had better clear the coupling by using `()'.
23531
+ @item @ref{W0502} A binary operator other than `+', `-', `*', `/' and `%%' appears with binary operator which has different precedence without expression grouping.
23464
23532
  @end itemize
23465
23533
 
23466
23534
  @subsection Since
@@ -23473,7 +23541,7 @@ void func(int a, int b, int c)
23473
23541
 
23474
23542
  @subsection Message body
23475
23543
 
23476
- A binary operator except '+', '-', '*', '/', '%%' is used with the different priority of binary operator. It had better clear the coupling by using `()'.
23544
+ A binary operator other than `+', `-', `*', `/' and `%%' appears with binary operator which has different precedence without expression grouping.
23477
23545
 
23478
23546
  @subsection Content
23479
23547
 
@@ -24421,6 +24489,8 @@ void func(int a, int b)
24421
24489
  }
24422
24490
  @end verbatim
24423
24491
 
24492
+ @subsection Related message
24493
+
24424
24494
  @itemize
24425
24495
  @item @ref{W0564} If this 'goto' statement jumps to `%s' label,local variable will not be initialized.
24426
24496
  @end itemize
@@ -24583,7 +24653,7 @@ int b = -5 << 1; /* W0568 */
24583
24653
 
24584
24654
  @itemize
24585
24655
  @item @ref{W0569} The result of left shift operation against the signed expression value is undefined.
24586
- @item @ref{W0570} The result of left shift operation against the signed expression value might be undefined.
24656
+ @item @ref{W0570} This signed left shift operation may make undefined value.
24587
24657
  @end itemize
24588
24658
 
24589
24659
  @subsection Since
@@ -24623,7 +24693,7 @@ int func(int a)
24623
24693
 
24624
24694
  @itemize
24625
24695
  @item @ref{W0568} The result of left shift operation against the signed constant expression value is undefined.
24626
- @item @ref{W0570} The result of left shift operation against the signed expression value might be undefined.
24696
+ @item @ref{W0570} This signed left shift operation may make undefined value.
24627
24697
  @end itemize
24628
24698
 
24629
24699
  @subsection Since
@@ -24636,7 +24706,7 @@ int func(int a)
24636
24706
 
24637
24707
  @subsection Message body
24638
24708
 
24639
- The result of left shift operation against the signed expression value might be undefined.
24709
+ This signed left shift operation may make undefined value.
24640
24710
 
24641
24711
  @subsection Content
24642
24712
 
@@ -24694,7 +24764,7 @@ int func(int a)
24694
24764
  @subsection Related message
24695
24765
 
24696
24766
  @itemize
24697
- @item @ref{W0572} The result of bit operation against the signed data is defined by implementation.
24767
+ @item @ref{W0572} Bitwise operation of signed value causes implementation-defined behavior.
24698
24768
  @end itemize
24699
24769
 
24700
24770
  @subsection Since
@@ -24707,7 +24777,7 @@ int func(int a)
24707
24777
 
24708
24778
  @subsection Message body
24709
24779
 
24710
- The result of bit operation against the signed data is defined by implementation.
24780
+ Bitwise operation of signed value causes implementation-defined behavior.
24711
24781
 
24712
24782
  @subsection Content
24713
24783
 
@@ -25520,7 +25590,7 @@ void foo(int a, int b)
25520
25590
 
25521
25591
  @subsection Message body
25522
25592
 
25523
- A 'break' statement is used more than once to finish the repetition statement.
25593
+ Multiple break-statements appear to break the same iteration.
25524
25594
 
25525
25595
  @subsection Content
25526
25596
 
@@ -25651,7 +25721,7 @@ void fuu(int a)
25651
25721
 
25652
25722
  @subsection Message body
25653
25723
 
25654
- The result of this logical operation is always true.
25724
+ This logical expression always makes true.
25655
25725
 
25656
25726
  @subsection Content
25657
25727
 
@@ -25673,10 +25743,10 @@ void func(int a)
25673
25743
  @subsection Related message
25674
25744
 
25675
25745
  @itemize
25676
- @item @ref{W0610} The result of this logical operation is always false.
25746
+ @item @ref{W0610} This logical expression always makes false.
25677
25747
  @item @ref{W0611} The value of this 'for' control expression is always true.
25678
25748
  @item @ref{W0612} The value of this 'if' conditional expression is always true.
25679
- @item @ref{W0613} The value of this control expression is always false.
25749
+ @item @ref{W0613} This controlling expression always makes false.
25680
25750
  @item @ref{W0614} The value of this "do-while" control expression is always false. The body of repetition statement executed only once.
25681
25751
  @end itemize
25682
25752
 
@@ -25690,7 +25760,7 @@ void func(int a)
25690
25760
 
25691
25761
  @subsection Message body
25692
25762
 
25693
- The result of this logical operation is always false.
25763
+ This logical expression always makes false.
25694
25764
 
25695
25765
  @subsection Content
25696
25766
 
@@ -25711,10 +25781,10 @@ void func(int a)
25711
25781
  @subsection Related message
25712
25782
 
25713
25783
  @itemize
25714
- @item @ref{W0609} The result of this logical operation is always true.
25784
+ @item @ref{W0609} This logical expression always makes true.
25715
25785
  @item @ref{W0611} The value of this 'for' control expression is always true.
25716
25786
  @item @ref{W0612} The value of this 'if' conditional expression is always true.
25717
- @item @ref{W0613} The value of this control expression is always false.
25787
+ @item @ref{W0613} This controlling expression always makes false.
25718
25788
  @item @ref{W0614} The value of this "do-while" control expression is always false. The body of repetition statement executed only once.
25719
25789
  @end itemize
25720
25790
 
@@ -25747,11 +25817,13 @@ void func(int a)
25747
25817
  }
25748
25818
  @end verbatim
25749
25819
 
25820
+ @subsection Related message
25821
+
25750
25822
  @itemize
25751
- @item @ref{W0609} The result of this logical operation is always true.
25752
- @item @ref{W0610} The result of this logical operation is always false.
25823
+ @item @ref{W0609} This logical expression always makes true.
25824
+ @item @ref{W0610} This logical expression always makes false.
25753
25825
  @item @ref{W0612} The value of this 'if' conditional expression is always true.
25754
- @item @ref{W0613} The value of this control expression is always false.
25826
+ @item @ref{W0613} This controlling expression always makes false.
25755
25827
  @item @ref{W0614} The value of this "do-while" control expression is always false. The body of repetition statement executed only once.
25756
25828
  @end itemize
25757
25829
 
@@ -25786,10 +25858,10 @@ for (i = 0; i < 10; i++) {
25786
25858
  @subsection Related message
25787
25859
 
25788
25860
  @itemize
25789
- @item @ref{W0609} The result of this logical operation is always true.
25790
- @item @ref{W0610} The result of this logical operation is always false.
25861
+ @item @ref{W0609} This logical expression always makes true.
25862
+ @item @ref{W0610} This logical expression always makes false.
25791
25863
  @item @ref{W0611} The value of this 'for' control expression is always true.
25792
- @item @ref{W0613} The value of this control expression is always false.
25864
+ @item @ref{W0613} This controlling expression always makes false.
25793
25865
  @item @ref{W0614} The value of this "do-while" control expression is always false. The body of repetition statement executed only once.
25794
25866
  @end itemize
25795
25867
 
@@ -25803,7 +25875,7 @@ for (i = 0; i < 10; i++) {
25803
25875
 
25804
25876
  @subsection Message body
25805
25877
 
25806
- The value of this control expression is always false.
25878
+ This controlling expression always makes false.
25807
25879
 
25808
25880
  @subsection Content
25809
25881
 
@@ -25824,8 +25896,8 @@ for (i = 0; i < 10; i++) {
25824
25896
  @subsection Related message
25825
25897
 
25826
25898
  @itemize
25827
- @item @ref{W0609} The result of this logical operation is always true.
25828
- @item @ref{W0610} The result of this logical operation is always false.
25899
+ @item @ref{W0609} This logical expression always makes true.
25900
+ @item @ref{W0610} This logical expression always makes false.
25829
25901
  @item @ref{W0611} The value of this 'for' control expression is always true.
25830
25902
  @item @ref{W0612} The value of this 'if' conditional expression is always true.
25831
25903
  @item @ref{W0614} The value of this "do-while" control expression is always false. The body of repetition statement executed only once.
@@ -25862,11 +25934,11 @@ void func(int a)
25862
25934
  @subsection Related message
25863
25935
 
25864
25936
  @itemize
25865
- @item @ref{W0609} The result of this logical operation is always true.
25866
- @item @ref{W0610} The result of this logical operation is always false.
25937
+ @item @ref{W0609} This logical expression always makes true.
25938
+ @item @ref{W0610} This logical expression always makes false.
25867
25939
  @item @ref{W0611} The value of this 'for' control expression is always true.
25868
25940
  @item @ref{W0612} The value of this 'if' conditional expression is always true.
25869
- @item @ref{W0613} The value of this control expression is always false.
25941
+ @item @ref{W0613} This controlling expression always makes false.
25870
25942
  @end itemize
25871
25943
 
25872
25944
  @subsection Since
@@ -26095,7 +26167,7 @@ int main(void)
26095
26167
  @subsection Related message
26096
26168
 
26097
26169
  @itemize
26098
- @item @ref{W0629} A static function `%s()' is not used in this translation unit.
26170
+ @item @ref{W0629} `%s()' has internal-linkage, but it is never called in this translation-unit.
26099
26171
  @end itemize
26100
26172
 
26101
26173
  @subsection Since
@@ -26108,7 +26180,7 @@ int main(void)
26108
26180
 
26109
26181
  @subsection Message body
26110
26182
 
26111
- A static function `%s()' is not used in this translation unit.
26183
+ `%s()' has internal-linkage, but it is never called in this translation-unit.
26112
26184
 
26113
26185
  @subsection Content
26114
26186
 
@@ -26247,8 +26319,6 @@ void func(int a)
26247
26319
  }
26248
26320
  @end verbatim
26249
26321
 
26250
- Under construction.
26251
-
26252
26322
  @subsection Related message
26253
26323
 
26254
26324
  @itemize
@@ -29273,7 +29343,7 @@ void func(void)
29273
29343
 
29274
29344
  @subsection Message body
29275
29345
 
29276
- An array's index might be out of range.
29346
+ This non-constant array subscript may cause out-of-range access.
29277
29347
 
29278
29348
  @subsection Content
29279
29349
 
@@ -29310,7 +29380,7 @@ None.
29310
29380
 
29311
29381
  @subsection Message body
29312
29382
 
29313
- An array's index is out of range.
29383
+ This constant array subscript must cause out-of-range access.
29314
29384
 
29315
29385
  @subsection Content
29316
29386
 
@@ -30492,7 +30562,7 @@ None.
30492
30562
 
30493
30563
  @subsection Message body
30494
30564
 
30495
- The array's index points out of domain.
30565
+ This non-constant array subscript may cause out-of-range access.
30496
30566
 
30497
30567
  @subsection Content
30498
30568
 
@@ -31867,8 +31937,6 @@ Under construction.
31867
31937
 
31868
31938
  @subsection Sample code
31869
31939
 
31870
- Under construction.
31871
-
31872
31940
  @verbatim
31873
31941
  void func(float a, float b)
31874
31942
  {
@@ -31908,9 +31976,8 @@ void func(float a, float b)
31908
31976
  }
31909
31977
  @end verbatim
31910
31978
 
31911
- Under construction.
31912
-
31913
31979
  @subsection Related message
31980
+
31914
31981
  @itemize
31915
31982
  @item @ref{W0777} An implicit type conversion from compound expression of float to double.
31916
31983
  @item @ref{W0779} An implicit type conversion from compound expression of to long double.
@@ -31934,8 +32001,6 @@ Under construction.
31934
32001
 
31935
32002
  @subsection Sample code
31936
32003
 
31937
- Under construction.
31938
-
31939
32004
  @verbatim
31940
32005
  void func(double a, double b)
31941
32006
  {
@@ -32414,7 +32479,7 @@ None.
32414
32479
 
32415
32480
  @subsection Message body
32416
32481
 
32417
- Left shift operation to signed operand.
32482
+ Left shift operation of signed value causes implementation-defined behavior.
32418
32483
 
32419
32484
  @subsection Content
32420
32485
 
@@ -33249,7 +33314,7 @@ After 2.0.0 (planned)
33249
33314
 
33250
33315
  @subsection Message body
33251
33316
 
33252
- A string literal is used directly.
33317
+ String literal is specified directly.
33253
33318
 
33254
33319
  @subsection Content
33255
33320
 
@@ -33264,9 +33329,9 @@ func("Apple, Banana, Chocolate"); /* W0947 */
33264
33329
  @subsection Related message
33265
33330
 
33266
33331
  @itemize
33267
- @item @ref{W0948} A character constant `%s' is used directly.
33332
+ @item @ref{W0948} Character constant %s is specified directly.
33268
33333
  @item @ref{W0949} A value `%s' is used directly for size definition of bit field.
33269
- @item @ref{W0950} A value `%s' is used directly for size definition of the array.
33334
+ @item @ref{W0950} Integer constant `%s' is specified directly as an array size.
33270
33335
  @end itemize
33271
33336
 
33272
33337
  @subsection Since
@@ -33279,7 +33344,7 @@ func("Apple, Banana, Chocolate"); /* W0947 */
33279
33344
 
33280
33345
  @subsection Message body
33281
33346
 
33282
- A character constant `%s' is used directly.
33347
+ Character constant %s is specified directly.
33283
33348
 
33284
33349
  @subsection Content
33285
33350
 
@@ -33294,9 +33359,9 @@ func('a'); /* W0948 */
33294
33359
  @subsection Related message
33295
33360
 
33296
33361
  @itemize
33297
- @item @ref{W0947} A string literal is used directly.
33362
+ @item @ref{W0947} String literal is specified directly.
33298
33363
  @item @ref{W0949} A value `%s' is used directly for size definition of bit field.
33299
- @item @ref{W0950} A value `%s' is used directly for size definition of the array.
33364
+ @item @ref{W0950} Integer constant `%s' is specified directly as an array size.
33300
33365
  @end itemize
33301
33366
 
33302
33367
  @subsection Since
@@ -33328,9 +33393,9 @@ struct ST {
33328
33393
  @subsection Related message
33329
33394
 
33330
33395
  @itemize
33331
- @item @ref{W0947} A string literal is used directly.
33332
- @item @ref{W0948} A character constant `%s' is used directly.
33333
- @item @ref{W0950} A value `%s' is used directly for size definition of the array.
33396
+ @item @ref{W0947} String literal is specified directly.
33397
+ @item @ref{W0948} Character constant %s is specified directly.
33398
+ @item @ref{W0950} Integer constant `%s' is specified directly as an array size.
33334
33399
  @end itemize
33335
33400
 
33336
33401
  @subsection Since
@@ -33343,7 +33408,7 @@ struct ST {
33343
33408
 
33344
33409
  @subsection Message body
33345
33410
 
33346
- A value `%s' is used directly for size definition of the array.
33411
+ Integer constant `%s' is specified directly as an array size.
33347
33412
 
33348
33413
  @subsection Content
33349
33414
 
@@ -33358,8 +33423,8 @@ int a[10]; /* W0950 */
33358
33423
  @subsection Related message
33359
33424
 
33360
33425
  @itemize
33361
- @item @ref{W0947} A string literal is used directly.
33362
- @item @ref{W0948} A character constant `%s' is used directly.
33426
+ @item @ref{W0947} String literal is specified directly.
33427
+ @item @ref{W0948} Character constant %s is specified directly.
33363
33428
  @item @ref{W0949} A value `%s' is used directly for size definition of bit field.
33364
33429
  @end itemize
33365
33430
 
@@ -35032,7 +35097,7 @@ None.
35032
35097
 
35033
35098
  @subsection Message body
35034
35099
 
35035
- A return value of function `%s' is not used.。
35100
+ Return value of the function `%s' is discarded.
35036
35101
 
35037
35102
  @subsection Content
35038
35103
 
@@ -35132,7 +35197,7 @@ None.
35132
35197
 
35133
35198
  @subsection Message body
35134
35199
 
35135
- `%s' is defined as internal-linkage, but it has no forward declaration.
35200
+ `%s' has internal-linkage without any prototype declarations.
35136
35201
 
35137
35202
  @subsection Content
35138
35203
 
@@ -35186,7 +35251,7 @@ None.
35186
35251
 
35187
35252
  @subsection Message body
35188
35253
 
35189
- This statement doesn't reach the control.
35254
+ Control never reaches to this statement.
35190
35255
 
35191
35256
  @subsection Content
35192
35257
 
@@ -35678,6 +35743,7 @@ MET,FN_PARA,bar,"int bar(int,long,char *)",test.c,6,5,3
35678
35743
  @cindex FN_UNUV
35679
35744
 
35680
35745
  @subsection Metric name
35746
+
35681
35747
  Number of not use /not reuse variables
35682
35748
 
35683
35749
  @subsection Content
@@ -35803,7 +35869,7 @@ Number of @code{goto} statement
35803
35869
 
35804
35870
  @subsection Content
35805
35871
 
35806
- The number of @code{goto} statement in a function.
35872
+ The number of @code{goto} statement in a function.
35807
35873
 
35808
35874
  @subsection Sample code
35809
35875
 
@@ -35846,7 +35912,7 @@ Number of return point in a function
35846
35912
 
35847
35913
  @subsection Content
35848
35914
 
35849
- The number of executable @code{return} statements and implicit @code{return} statements
35915
+ The number of executable return-statements and implicit return-statements
35850
35916
  at the end of a function.
35851
35917
 
35852
35918
  @subsection Sample code
@@ -35907,11 +35973,11 @@ MET,FN_RETN,bar,int bar(int),test.c,20,5,3
35907
35973
  @cindex FN_UELS
35908
35974
 
35909
35975
  @subsection Metric name
35910
- Number of @code{`if'} statement without @code{`else'} clause
35976
+ Number of if-statement without else-clause
35911
35977
 
35912
35978
  @subsection Content
35913
35979
 
35914
- The number of @code{`if'} statements which have no explicit @code{else} clause.
35980
+ The number of if-statements which have no explicit else-clause.
35915
35981
 
35916
35982
  @subsection Sample code
35917
35983
 
@@ -36183,6 +36249,7 @@ It was developed by McCabe.
36183
36249
  calculating formula is
36184
36250
  @verb{.(the number of edges of the graph) - (the number of nodes of the graph) + 2.}.
36185
36251
  It equals the number of branch in a function + 1.
36252
+
36186
36253
  @subsection Sample code
36187
36254
 
36188
36255
  @verbatim