adlint 2.6.14 → 3.0.0
Sign up to get free protection for your applications and to get access to all the features.
- data/AUTHORS +1 -3
- data/ChangeLog +511 -0
- data/INSTALL +1 -1
- data/MANIFEST +57 -37
- data/NEWS +36 -7
- data/README +2 -2
- data/Rakefile +6 -6
- data/TODO +1 -1
- data/bin/adlint +25 -16
- data/bin/adlint_chk +22 -12
- data/bin/adlint_cma +17 -12
- data/bin/adlint_sma +22 -12
- data/bin/adlintize +98 -17
- data/etc/conf.d/fallback/cinit.erb +1 -1
- data/etc/conf.d/fallback/traits.erb +37 -37
- data/etc/conf.d/i686-cygwin/cinit-gcc_4.3.4.erb +1 -1
- data/etc/conf.d/i686-cygwin/traits-gcc_4.3.4.erb +41 -41
- data/etc/conf.d/i686-devkit/cinit-gcc_4.5.2.erb +1 -1
- data/etc/conf.d/i686-devkit/traits-gcc_4.5.2.erb +40 -40
- data/etc/conf.d/i686-linux/cinit-gcc_4.5.1.erb +1 -1
- data/etc/conf.d/i686-linux/traits-gcc_4.5.1.erb +40 -40
- data/etc/conf.d/i686-mingw/cinit-gcc_4.6.1.erb +1 -1
- data/etc/conf.d/i686-mingw/traits-gcc_4.6.1.erb +40 -40
- data/etc/conf.d/noarch/GNUmakefile.erb +1 -1
- data/etc/conf.d/noarch/adlint_all_bat.erb +1 -1
- data/etc/conf.d/noarch/adlint_all_sh.erb +1 -1
- data/etc/conf.d/noarch/pinit.erb +1 -1
- data/etc/conf.d/x86_64-ubuntu_12.04/cinit-gcc_4.6.3.erb +1 -1
- data/etc/conf.d/x86_64-ubuntu_12.04/traits-gcc_4.6.3.erb +42 -42
- data/etc/mesg.d/c_builtin/en_US/messages.yml +33 -33
- data/etc/mesg.d/c_builtin/ja_JP/messages.yml +5 -5
- data/etc/mesg.d/core/en_US/messages.yml +2 -2
- data/etc/mesg.d/core/ja_JP/messages.yml +2 -2
- data/features/code_check/W0018.feature +197 -0
- data/features/code_check/W0019.feature +79 -0
- data/features/code_check/W0021.feature +81 -0
- data/features/code_check/W0023.feature +203 -0
- data/features/code_check/W0024.feature +226 -0
- data/features/code_check/W0025.feature +5 -0
- data/features/code_check/W0088.feature +2 -2
- data/features/code_check/W0109.feature +2 -2
- data/features/code_check/W0477.feature +0 -3
- data/features/code_check/W0478.feature +0 -1
- data/features/code_check/W0582.feature +3 -3
- data/features/code_check/W0583.feature +4 -7
- data/features/code_check/W0646.feature +0 -1
- data/features/code_check/W0695.feature +0 -1
- data/features/code_check/W0705.feature +8 -0
- data/features/code_check/W0723.feature +0 -1
- data/features/code_check/W0745.feature +1 -0
- data/features/code_check/W0781.feature +1 -0
- data/features/code_check/W1057.feature +141 -0
- data/features/code_check/W1058.feature +93 -0
- data/features/code_check/W1059.feature +86 -0
- data/features/code_check/W1060.feature +77 -0
- data/features/code_check/W1061.feature +143 -0
- data/features/code_check/W1062.feature +162 -0
- data/features/code_check/W1063.feature +123 -0
- data/features/code_check/W1064.feature +83 -0
- data/features/code_check/W1065.feature +82 -0
- data/features/code_check/W9003.feature +2 -0
- data/features/step_definitions/code_check_steps.rb +1 -0
- data/features/support/env.rb +16 -13
- data/lib/adlint.rb +7 -4
- data/lib/adlint/analyzer.rb +131 -157
- data/lib/adlint/annot.rb +149 -0
- data/lib/adlint/cc1.rb +57 -0
- data/lib/adlint/{c → cc1}/branch.rb +74 -62
- data/lib/adlint/{c → cc1}/builtin.rb +21 -21
- data/lib/adlint/{c → cc1}/const.rb +119 -117
- data/lib/adlint/{c → cc1}/conv.rb +76 -78
- data/lib/adlint/{c → cc1}/ctrlexpr.rb +69 -86
- data/lib/adlint/cc1/domain.rb +8103 -0
- data/lib/adlint/{c → cc1}/enum.rb +3 -3
- data/lib/adlint/{c → cc1}/environ.rb +21 -21
- data/lib/adlint/{c → cc1}/expr.rb +232 -218
- data/lib/adlint/{c → cc1}/format.rb +305 -342
- data/lib/adlint/{c → cc1}/interp.rb +269 -220
- data/lib/adlint/cc1/lexer.rb +246 -0
- data/lib/adlint/{c → cc1}/mediator.rb +78 -84
- data/lib/adlint/{c → cc1}/object.rb +261 -264
- data/lib/adlint/{c → cc1}/operator.rb +7 -7
- data/lib/adlint/{c → cc1}/option.rb +4 -3
- data/lib/adlint/{c → cc1}/parser.rb +274 -506
- data/lib/adlint/{c → cc1}/parser.y +69 -301
- data/lib/adlint/cc1/phase.rb +138 -0
- data/lib/adlint/{c → cc1}/resolver.rb +66 -78
- data/lib/adlint/{c → cc1}/scanner.rb +57 -49
- data/lib/adlint/{c → cc1}/scope.rb +3 -3
- data/lib/adlint/{c → cc1}/seqp.rb +13 -5
- data/lib/adlint/{c → cc1}/syntax.rb +819 -1122
- data/lib/adlint/{c → cc1}/type.rb +1498 -1479
- data/lib/adlint/{c → cc1}/util.rb +20 -12
- data/lib/adlint/{c → cc1}/value.rb +699 -642
- data/lib/adlint/code.rb +163 -164
- data/lib/adlint/cpp.rb +2 -2
- data/lib/adlint/cpp/asm.rb +13 -14
- data/lib/adlint/cpp/constexpr.rb +42 -38
- data/lib/adlint/cpp/constexpr.y +44 -40
- data/lib/adlint/cpp/eval.rb +435 -435
- data/lib/adlint/cpp/lexer.rb +343 -340
- data/lib/adlint/cpp/macro.rb +188 -190
- data/lib/adlint/cpp/phase.rb +66 -45
- data/lib/adlint/cpp/scanner.rb +14 -17
- data/lib/adlint/cpp/source.rb +49 -55
- data/lib/adlint/cpp/subst.rb +65 -65
- data/lib/adlint/cpp/syntax.rb +155 -275
- data/lib/adlint/cpp/util.rb +22 -19
- data/lib/adlint/driver.rb +86 -93
- data/lib/adlint/error.rb +33 -52
- data/lib/adlint/exam.rb +158 -24
- data/lib/adlint/exam/c_builtin.rb +7 -7
- data/lib/adlint/exam/c_builtin/cc1_check.rb +20522 -0
- data/lib/adlint/exam/c_builtin/cc1_check_shima.rb +957 -0
- data/lib/adlint/exam/c_builtin/cc1_code.rb +459 -0
- data/lib/adlint/exam/c_builtin/cc1_metric.rb +794 -0
- data/lib/adlint/exam/c_builtin/cpp_check.rb +486 -441
- data/lib/adlint/exam/c_builtin/cpp_check_shima.rb +36 -39
- data/lib/adlint/exam/c_builtin/cpp_code.rb +63 -65
- data/lib/adlint/exam/c_builtin/ld_check.rb +136 -129
- data/lib/adlint/exam/c_builtin/ld_metric.rb +11 -11
- data/lib/adlint/lang.rb +25 -25
- data/lib/adlint/ld.rb +2 -2
- data/lib/adlint/ld/object.rb +220 -188
- data/lib/adlint/ld/phase.rb +94 -63
- data/lib/adlint/ld/typedef.rb +22 -11
- data/lib/adlint/ld/util.rb +43 -35
- data/lib/adlint/lexer.rb +59 -56
- data/lib/adlint/location.rb +140 -0
- data/lib/adlint/memo.rb +157 -0
- data/lib/adlint/message.rb +207 -156
- data/lib/adlint/metric.rb +139 -217
- data/lib/adlint/monitor.rb +45 -43
- data/lib/adlint/phase.rb +56 -29
- data/lib/adlint/prelude.rb +66 -54
- data/lib/adlint/report.rb +253 -332
- data/lib/adlint/source.rb +26 -27
- data/lib/adlint/supp.rb +131 -0
- data/lib/adlint/symbol.rb +14 -16
- data/lib/adlint/token.rb +19 -91
- data/lib/adlint/traits.rb +242 -226
- data/lib/adlint/util.rb +116 -205
- data/lib/adlint/version.rb +8 -8
- data/share/HEADER +2 -2
- data/share/doc/developers_guide_ja.html +148 -19
- data/share/doc/developers_guide_ja.texi +141 -11
- data/share/doc/samples/GNUmakefile +1 -1
- data/share/doc/samples/adlint_traits.yml +45 -36
- data/share/doc/users_guide_en.html +1321 -1252
- data/share/doc/users_guide_en.texi +475 -408
- data/share/doc/users_guide_ja.html +1932 -1878
- data/share/doc/users_guide_ja.texi +324 -273
- data/share/sample/bison-2.5/adlint/GNUmakefile +5 -1
- data/share/sample/bison-2.5/adlint/adlint_traits.yml +38 -38
- data/share/sample/bison-2.5/adlint/lib/GNUmakefile +1 -1
- data/share/sample/bison-2.5/adlint/lib/adlint_cinit.h +1 -1
- data/share/sample/bison-2.5/adlint/lib/adlint_pinit.h +1 -1
- data/share/sample/bison-2.5/adlint/lib/adlint_traits.yml +50 -42
- data/share/sample/bison-2.5/adlint/src/GNUmakefile +1 -1
- data/share/sample/bison-2.5/adlint/src/adlint_cinit.h +1 -1
- data/share/sample/bison-2.5/adlint/src/adlint_pinit.h +1 -1
- data/share/sample/bison-2.5/adlint/src/adlint_traits.yml +50 -42
- data/share/sample/ctags-5.8/adlint/GNUmakefile +1 -1
- data/share/sample/ctags-5.8/adlint/adlint_cinit.h +1 -1
- data/share/sample/ctags-5.8/adlint/adlint_pinit.h +1 -1
- data/share/sample/ctags-5.8/adlint/adlint_traits.yml +50 -42
- data/share/sample/flex-2.5.35/adlint/GNUmakefile +1 -1
- data/share/sample/flex-2.5.35/adlint/adlint_cinit.h +1 -1
- data/share/sample/flex-2.5.35/adlint/adlint_pinit.h +1 -1
- data/share/sample/flex-2.5.35/adlint/adlint_traits.yml +50 -42
- data/share/sample/ruby-1.9.3-p0/adlint/GNUmakefile +1 -1
- data/share/sample/ruby-1.9.3-p0/adlint/adlint_traits.yml +46 -38
- data/share/sample/ruby-1.9.3-p0/adlint/core/GNUmakefile +1 -1
- data/share/sample/ruby-1.9.3-p0/adlint/core/adlint_cinit.h +1 -1
- data/share/sample/ruby-1.9.3-p0/adlint/core/adlint_pinit.h +1 -1
- data/share/sample/ruby-1.9.3-p0/adlint/core/adlint_traits.yml +50 -42
- data/share/sample/ruby-1.9.3-p0/adlint/enc-trans/GNUmakefile +1 -1
- data/share/sample/ruby-1.9.3-p0/adlint/enc-trans/adlint_cinit.h +1 -1
- data/share/sample/ruby-1.9.3-p0/adlint/enc-trans/adlint_pinit.h +1 -1
- data/share/sample/ruby-1.9.3-p0/adlint/enc-trans/adlint_traits.yml +50 -42
- data/share/sample/ruby-1.9.3-p0/adlint/enc/GNUmakefile +1 -1
- data/share/sample/ruby-1.9.3-p0/adlint/enc/adlint_cinit.h +1 -1
- data/share/sample/ruby-1.9.3-p0/adlint/enc/adlint_pinit.h +1 -1
- data/share/sample/ruby-1.9.3-p0/adlint/enc/adlint_traits.yml +50 -42
- data/share/sample/ruby-1.9.3-p0/adlint/ext-bigdecimal/GNUmakefile +1 -1
- data/share/sample/ruby-1.9.3-p0/adlint/ext-bigdecimal/adlint_cinit.h +1 -1
- data/share/sample/ruby-1.9.3-p0/adlint/ext-bigdecimal/adlint_pinit.h +1 -1
- data/share/sample/ruby-1.9.3-p0/adlint/ext-bigdecimal/adlint_traits.yml +50 -42
- data/share/sample/ruby-1.9.3-p0/adlint/ext-continuation/GNUmakefile +1 -1
- data/share/sample/ruby-1.9.3-p0/adlint/ext-continuation/adlint_cinit.h +1 -1
- data/share/sample/ruby-1.9.3-p0/adlint/ext-continuation/adlint_pinit.h +1 -1
- data/share/sample/ruby-1.9.3-p0/adlint/ext-continuation/adlint_traits.yml +50 -42
- data/share/sample/ruby-1.9.3-p0/adlint/ext-coverage/GNUmakefile +1 -1
- data/share/sample/ruby-1.9.3-p0/adlint/ext-coverage/adlint_cinit.h +1 -1
- data/share/sample/ruby-1.9.3-p0/adlint/ext-coverage/adlint_pinit.h +1 -1
- data/share/sample/ruby-1.9.3-p0/adlint/ext-coverage/adlint_traits.yml +50 -42
- data/share/sample/ruby-1.9.3-p0/adlint/ext-curses/GNUmakefile +1 -1
- data/share/sample/ruby-1.9.3-p0/adlint/ext-curses/adlint_cinit.h +1 -1
- data/share/sample/ruby-1.9.3-p0/adlint/ext-curses/adlint_pinit.h +1 -1
- data/share/sample/ruby-1.9.3-p0/adlint/ext-curses/adlint_traits.yml +50 -42
- data/share/sample/ruby-1.9.3-p0/adlint/ext-date/GNUmakefile +1 -1
- data/share/sample/ruby-1.9.3-p0/adlint/ext-date/adlint_cinit.h +1 -1
- data/share/sample/ruby-1.9.3-p0/adlint/ext-date/adlint_pinit.h +1 -1
- data/share/sample/ruby-1.9.3-p0/adlint/ext-date/adlint_traits.yml +50 -42
- data/share/sample/ruby-1.9.3-p0/adlint/ext-dbm/GNUmakefile +1 -1
- data/share/sample/ruby-1.9.3-p0/adlint/ext-dbm/adlint_cinit.h +1 -1
- data/share/sample/ruby-1.9.3-p0/adlint/ext-dbm/adlint_pinit.h +1 -1
- data/share/sample/ruby-1.9.3-p0/adlint/ext-dbm/adlint_traits.yml +50 -42
- data/share/sample/ruby-1.9.3-p0/adlint/ext-digest-bubblebabble/GNUmakefile +1 -1
- data/share/sample/ruby-1.9.3-p0/adlint/ext-digest-bubblebabble/adlint_cinit.h +1 -1
- data/share/sample/ruby-1.9.3-p0/adlint/ext-digest-bubblebabble/adlint_pinit.h +1 -1
- data/share/sample/ruby-1.9.3-p0/adlint/ext-digest-bubblebabble/adlint_traits.yml +50 -42
- data/share/sample/ruby-1.9.3-p0/adlint/ext-digest-md5/GNUmakefile +1 -1
- data/share/sample/ruby-1.9.3-p0/adlint/ext-digest-md5/adlint_cinit.h +1 -1
- data/share/sample/ruby-1.9.3-p0/adlint/ext-digest-md5/adlint_pinit.h +1 -1
- data/share/sample/ruby-1.9.3-p0/adlint/ext-digest-md5/adlint_traits.yml +50 -42
- data/share/sample/ruby-1.9.3-p0/adlint/ext-digest-rmd160/GNUmakefile +1 -1
- data/share/sample/ruby-1.9.3-p0/adlint/ext-digest-rmd160/adlint_cinit.h +1 -1
- data/share/sample/ruby-1.9.3-p0/adlint/ext-digest-rmd160/adlint_pinit.h +1 -1
- data/share/sample/ruby-1.9.3-p0/adlint/ext-digest-rmd160/adlint_traits.yml +50 -42
- data/share/sample/ruby-1.9.3-p0/adlint/ext-digest-sha1/GNUmakefile +1 -1
- data/share/sample/ruby-1.9.3-p0/adlint/ext-digest-sha1/adlint_cinit.h +1 -1
- data/share/sample/ruby-1.9.3-p0/adlint/ext-digest-sha1/adlint_pinit.h +1 -1
- data/share/sample/ruby-1.9.3-p0/adlint/ext-digest-sha1/adlint_traits.yml +50 -42
- data/share/sample/ruby-1.9.3-p0/adlint/ext-digest-sha2/GNUmakefile +1 -1
- data/share/sample/ruby-1.9.3-p0/adlint/ext-digest-sha2/adlint_cinit.h +1 -1
- data/share/sample/ruby-1.9.3-p0/adlint/ext-digest-sha2/adlint_pinit.h +1 -1
- data/share/sample/ruby-1.9.3-p0/adlint/ext-digest-sha2/adlint_traits.yml +50 -42
- data/share/sample/ruby-1.9.3-p0/adlint/ext-digest/GNUmakefile +1 -1
- data/share/sample/ruby-1.9.3-p0/adlint/ext-digest/adlint_cinit.h +1 -1
- data/share/sample/ruby-1.9.3-p0/adlint/ext-digest/adlint_pinit.h +1 -1
- data/share/sample/ruby-1.9.3-p0/adlint/ext-digest/adlint_traits.yml +50 -42
- data/share/sample/ruby-1.9.3-p0/adlint/ext-dl-callback/GNUmakefile +1 -1
- data/share/sample/ruby-1.9.3-p0/adlint/ext-dl-callback/adlint_cinit.h +1 -1
- data/share/sample/ruby-1.9.3-p0/adlint/ext-dl-callback/adlint_pinit.h +1 -1
- data/share/sample/ruby-1.9.3-p0/adlint/ext-dl-callback/adlint_traits.yml +50 -42
- data/share/sample/ruby-1.9.3-p0/adlint/ext-dl/GNUmakefile +1 -1
- data/share/sample/ruby-1.9.3-p0/adlint/ext-dl/adlint_cinit.h +1 -1
- data/share/sample/ruby-1.9.3-p0/adlint/ext-dl/adlint_pinit.h +1 -1
- data/share/sample/ruby-1.9.3-p0/adlint/ext-dl/adlint_traits.yml +50 -42
- data/share/sample/ruby-1.9.3-p0/adlint/ext-etc/GNUmakefile +1 -1
- data/share/sample/ruby-1.9.3-p0/adlint/ext-etc/adlint_cinit.h +1 -1
- data/share/sample/ruby-1.9.3-p0/adlint/ext-etc/adlint_pinit.h +1 -1
- data/share/sample/ruby-1.9.3-p0/adlint/ext-etc/adlint_traits.yml +50 -42
- data/share/sample/ruby-1.9.3-p0/adlint/ext-fcntl/GNUmakefile +1 -1
- data/share/sample/ruby-1.9.3-p0/adlint/ext-fcntl/adlint_cinit.h +1 -1
- data/share/sample/ruby-1.9.3-p0/adlint/ext-fcntl/adlint_pinit.h +1 -1
- data/share/sample/ruby-1.9.3-p0/adlint/ext-fcntl/adlint_traits.yml +50 -42
- data/share/sample/ruby-1.9.3-p0/adlint/ext-fiber/GNUmakefile +1 -1
- data/share/sample/ruby-1.9.3-p0/adlint/ext-fiber/adlint_cinit.h +1 -1
- data/share/sample/ruby-1.9.3-p0/adlint/ext-fiber/adlint_pinit.h +1 -1
- data/share/sample/ruby-1.9.3-p0/adlint/ext-fiber/adlint_traits.yml +50 -42
- data/share/sample/ruby-1.9.3-p0/adlint/ext-fiddle/GNUmakefile +1 -1
- data/share/sample/ruby-1.9.3-p0/adlint/ext-fiddle/adlint_cinit.h +1 -1
- data/share/sample/ruby-1.9.3-p0/adlint/ext-fiddle/adlint_pinit.h +1 -1
- data/share/sample/ruby-1.9.3-p0/adlint/ext-fiddle/adlint_traits.yml +50 -42
- data/share/sample/ruby-1.9.3-p0/adlint/ext-gdbm/GNUmakefile +1 -1
- data/share/sample/ruby-1.9.3-p0/adlint/ext-gdbm/adlint_cinit.h +1 -1
- data/share/sample/ruby-1.9.3-p0/adlint/ext-gdbm/adlint_pinit.h +1 -1
- data/share/sample/ruby-1.9.3-p0/adlint/ext-gdbm/adlint_traits.yml +50 -42
- data/share/sample/ruby-1.9.3-p0/adlint/ext-iconv/GNUmakefile +1 -1
- data/share/sample/ruby-1.9.3-p0/adlint/ext-iconv/adlint_cinit.h +1 -1
- data/share/sample/ruby-1.9.3-p0/adlint/ext-iconv/adlint_pinit.h +1 -1
- data/share/sample/ruby-1.9.3-p0/adlint/ext-iconv/adlint_traits.yml +50 -42
- data/share/sample/ruby-1.9.3-p0/adlint/ext-io-console/GNUmakefile +1 -1
- data/share/sample/ruby-1.9.3-p0/adlint/ext-io-console/adlint_cinit.h +1 -1
- data/share/sample/ruby-1.9.3-p0/adlint/ext-io-console/adlint_pinit.h +1 -1
- data/share/sample/ruby-1.9.3-p0/adlint/ext-io-console/adlint_traits.yml +50 -42
- data/share/sample/ruby-1.9.3-p0/adlint/ext-io-nonblock/GNUmakefile +1 -1
- data/share/sample/ruby-1.9.3-p0/adlint/ext-io-nonblock/adlint_cinit.h +1 -1
- data/share/sample/ruby-1.9.3-p0/adlint/ext-io-nonblock/adlint_pinit.h +1 -1
- data/share/sample/ruby-1.9.3-p0/adlint/ext-io-nonblock/adlint_traits.yml +50 -42
- data/share/sample/ruby-1.9.3-p0/adlint/ext-io-wait/GNUmakefile +1 -1
- data/share/sample/ruby-1.9.3-p0/adlint/ext-io-wait/adlint_cinit.h +1 -1
- data/share/sample/ruby-1.9.3-p0/adlint/ext-io-wait/adlint_pinit.h +1 -1
- data/share/sample/ruby-1.9.3-p0/adlint/ext-io-wait/adlint_traits.yml +50 -42
- data/share/sample/ruby-1.9.3-p0/adlint/ext-json-generator/GNUmakefile +1 -1
- data/share/sample/ruby-1.9.3-p0/adlint/ext-json-generator/adlint_cinit.h +1 -1
- data/share/sample/ruby-1.9.3-p0/adlint/ext-json-generator/adlint_pinit.h +1 -1
- data/share/sample/ruby-1.9.3-p0/adlint/ext-json-generator/adlint_traits.yml +50 -42
- data/share/sample/ruby-1.9.3-p0/adlint/ext-json-parser/GNUmakefile +1 -1
- data/share/sample/ruby-1.9.3-p0/adlint/ext-json-parser/adlint_cinit.h +1 -1
- data/share/sample/ruby-1.9.3-p0/adlint/ext-json-parser/adlint_pinit.h +1 -1
- data/share/sample/ruby-1.9.3-p0/adlint/ext-json-parser/adlint_traits.yml +50 -42
- data/share/sample/ruby-1.9.3-p0/adlint/ext-mathn-complex/GNUmakefile +1 -1
- data/share/sample/ruby-1.9.3-p0/adlint/ext-mathn-complex/adlint_cinit.h +1 -1
- data/share/sample/ruby-1.9.3-p0/adlint/ext-mathn-complex/adlint_pinit.h +1 -1
- data/share/sample/ruby-1.9.3-p0/adlint/ext-mathn-complex/adlint_traits.yml +50 -42
- data/share/sample/ruby-1.9.3-p0/adlint/ext-mathn-rational/GNUmakefile +1 -1
- data/share/sample/ruby-1.9.3-p0/adlint/ext-mathn-rational/adlint_cinit.h +1 -1
- data/share/sample/ruby-1.9.3-p0/adlint/ext-mathn-rational/adlint_pinit.h +1 -1
- data/share/sample/ruby-1.9.3-p0/adlint/ext-mathn-rational/adlint_traits.yml +50 -42
- data/share/sample/ruby-1.9.3-p0/adlint/ext-nkf/GNUmakefile +1 -1
- data/share/sample/ruby-1.9.3-p0/adlint/ext-nkf/adlint_cinit.h +1 -1
- data/share/sample/ruby-1.9.3-p0/adlint/ext-nkf/adlint_pinit.h +1 -1
- data/share/sample/ruby-1.9.3-p0/adlint/ext-nkf/adlint_traits.yml +50 -42
- data/share/sample/ruby-1.9.3-p0/adlint/ext-openssl/GNUmakefile +1 -1
- data/share/sample/ruby-1.9.3-p0/adlint/ext-openssl/adlint_cinit.h +1 -1
- data/share/sample/ruby-1.9.3-p0/adlint/ext-openssl/adlint_pinit.h +1 -1
- data/share/sample/ruby-1.9.3-p0/adlint/ext-openssl/adlint_traits.yml +50 -42
- data/share/sample/ruby-1.9.3-p0/adlint/ext-pathname/GNUmakefile +1 -1
- data/share/sample/ruby-1.9.3-p0/adlint/ext-pathname/adlint_cinit.h +1 -1
- data/share/sample/ruby-1.9.3-p0/adlint/ext-pathname/adlint_pinit.h +1 -1
- data/share/sample/ruby-1.9.3-p0/adlint/ext-pathname/adlint_traits.yml +50 -42
- data/share/sample/ruby-1.9.3-p0/adlint/ext-psych/GNUmakefile +1 -1
- data/share/sample/ruby-1.9.3-p0/adlint/ext-psych/adlint_cinit.h +1 -1
- data/share/sample/ruby-1.9.3-p0/adlint/ext-psych/adlint_pinit.h +1 -1
- data/share/sample/ruby-1.9.3-p0/adlint/ext-psych/adlint_traits.yml +50 -42
- data/share/sample/ruby-1.9.3-p0/adlint/ext-pty/GNUmakefile +1 -1
- data/share/sample/ruby-1.9.3-p0/adlint/ext-pty/adlint_cinit.h +1 -1
- data/share/sample/ruby-1.9.3-p0/adlint/ext-pty/adlint_pinit.h +1 -1
- data/share/sample/ruby-1.9.3-p0/adlint/ext-pty/adlint_traits.yml +50 -42
- data/share/sample/ruby-1.9.3-p0/adlint/ext-racc-cparse/GNUmakefile +1 -1
- data/share/sample/ruby-1.9.3-p0/adlint/ext-racc-cparse/adlint_cinit.h +1 -1
- data/share/sample/ruby-1.9.3-p0/adlint/ext-racc-cparse/adlint_pinit.h +1 -1
- data/share/sample/ruby-1.9.3-p0/adlint/ext-racc-cparse/adlint_traits.yml +50 -42
- data/share/sample/ruby-1.9.3-p0/adlint/ext-readline/GNUmakefile +1 -1
- data/share/sample/ruby-1.9.3-p0/adlint/ext-readline/adlint_cinit.h +1 -1
- data/share/sample/ruby-1.9.3-p0/adlint/ext-readline/adlint_pinit.h +1 -1
- data/share/sample/ruby-1.9.3-p0/adlint/ext-readline/adlint_traits.yml +50 -42
- data/share/sample/ruby-1.9.3-p0/adlint/ext-ripper/GNUmakefile +1 -1
- data/share/sample/ruby-1.9.3-p0/adlint/ext-ripper/adlint_cinit.h +1 -1
- data/share/sample/ruby-1.9.3-p0/adlint/ext-ripper/adlint_pinit.h +1 -1
- data/share/sample/ruby-1.9.3-p0/adlint/ext-ripper/adlint_traits.yml +50 -42
- data/share/sample/ruby-1.9.3-p0/adlint/ext-sdbm/GNUmakefile +1 -1
- data/share/sample/ruby-1.9.3-p0/adlint/ext-sdbm/adlint_cinit.h +1 -1
- data/share/sample/ruby-1.9.3-p0/adlint/ext-sdbm/adlint_pinit.h +1 -1
- data/share/sample/ruby-1.9.3-p0/adlint/ext-sdbm/adlint_traits.yml +50 -42
- data/share/sample/ruby-1.9.3-p0/adlint/ext-socket/GNUmakefile +1 -1
- data/share/sample/ruby-1.9.3-p0/adlint/ext-socket/adlint_cinit.h +1 -1
- data/share/sample/ruby-1.9.3-p0/adlint/ext-socket/adlint_pinit.h +1 -1
- data/share/sample/ruby-1.9.3-p0/adlint/ext-socket/adlint_traits.yml +50 -42
- data/share/sample/ruby-1.9.3-p0/adlint/ext-stringio/GNUmakefile +1 -1
- data/share/sample/ruby-1.9.3-p0/adlint/ext-stringio/adlint_cinit.h +1 -1
- data/share/sample/ruby-1.9.3-p0/adlint/ext-stringio/adlint_pinit.h +1 -1
- data/share/sample/ruby-1.9.3-p0/adlint/ext-stringio/adlint_traits.yml +50 -42
- data/share/sample/ruby-1.9.3-p0/adlint/ext-strscan/GNUmakefile +1 -1
- data/share/sample/ruby-1.9.3-p0/adlint/ext-strscan/adlint_cinit.h +1 -1
- data/share/sample/ruby-1.9.3-p0/adlint/ext-strscan/adlint_pinit.h +1 -1
- data/share/sample/ruby-1.9.3-p0/adlint/ext-strscan/adlint_traits.yml +50 -42
- data/share/sample/ruby-1.9.3-p0/adlint/ext-syck/GNUmakefile +1 -1
- data/share/sample/ruby-1.9.3-p0/adlint/ext-syck/adlint_cinit.h +1 -1
- data/share/sample/ruby-1.9.3-p0/adlint/ext-syck/adlint_pinit.h +1 -1
- data/share/sample/ruby-1.9.3-p0/adlint/ext-syck/adlint_traits.yml +50 -42
- data/share/sample/ruby-1.9.3-p0/adlint/ext-syslog/GNUmakefile +1 -1
- data/share/sample/ruby-1.9.3-p0/adlint/ext-syslog/adlint_cinit.h +1 -1
- data/share/sample/ruby-1.9.3-p0/adlint/ext-syslog/adlint_pinit.h +1 -1
- data/share/sample/ruby-1.9.3-p0/adlint/ext-syslog/adlint_traits.yml +50 -42
- data/share/sample/ruby-1.9.3-p0/adlint/ext-zlib/GNUmakefile +1 -1
- data/share/sample/ruby-1.9.3-p0/adlint/ext-zlib/adlint_cinit.h +1 -1
- data/share/sample/ruby-1.9.3-p0/adlint/ext-zlib/adlint_pinit.h +1 -1
- data/share/sample/ruby-1.9.3-p0/adlint/ext-zlib/adlint_traits.yml +50 -42
- data/share/sample/screen-4.0.3/adlint/GNUmakefile +1 -1
- data/share/sample/screen-4.0.3/adlint/adlint_cinit.h +1 -1
- data/share/sample/screen-4.0.3/adlint/adlint_pinit.h +1 -1
- data/share/sample/screen-4.0.3/adlint/adlint_traits.yml +50 -42
- data/share/sample/vim-7.3/adlint/vim/GNUmakefile +1 -1
- data/share/sample/vim-7.3/adlint/vim/adlint_cinit.h +1 -1
- data/share/sample/vim-7.3/adlint/vim/adlint_pinit.h +1 -1
- data/share/sample/vim-7.3/adlint/vim/adlint_traits.yml +50 -42
- data/share/sample/vim-7.3/adlint/xxd/GNUmakefile +1 -1
- data/share/sample/vim-7.3/adlint/xxd/adlint_cinit.h +1 -1
- data/share/sample/vim-7.3/adlint/xxd/adlint_pinit.h +1 -1
- data/share/sample/vim-7.3/adlint/xxd/adlint_traits.yml +49 -41
- data/share/sample/zsh-4.3.15/adlint/GNUmakefile +1 -1
- data/share/sample/zsh-4.3.15/adlint/adlint_traits.yml +46 -38
- data/share/sample/zsh-4.3.15/adlint/builtins/GNUmakefile +1 -1
- data/share/sample/zsh-4.3.15/adlint/builtins/adlint_cinit.h +1 -1
- data/share/sample/zsh-4.3.15/adlint/builtins/adlint_pinit.h +1 -1
- data/share/sample/zsh-4.3.15/adlint/builtins/adlint_traits.yml +50 -42
- data/share/sample/zsh-4.3.15/adlint/core/GNUmakefile +1 -1
- data/share/sample/zsh-4.3.15/adlint/core/adlint_cinit.h +1 -1
- data/share/sample/zsh-4.3.15/adlint/core/adlint_pinit.h +1 -1
- data/share/sample/zsh-4.3.15/adlint/core/adlint_traits.yml +50 -42
- data/share/sample/zsh-4.3.15/adlint/modules/GNUmakefile +1 -1
- data/share/sample/zsh-4.3.15/adlint/modules/adlint_cinit.h +1 -1
- data/share/sample/zsh-4.3.15/adlint/modules/adlint_pinit.h +1 -1
- data/share/sample/zsh-4.3.15/adlint/modules/adlint_traits.yml +50 -42
- data/share/sample/zsh-4.3.15/adlint/zle/GNUmakefile +1 -1
- data/share/sample/zsh-4.3.15/adlint/zle/adlint_cinit.h +1 -1
- data/share/sample/zsh-4.3.15/adlint/zle/adlint_pinit.h +1 -1
- data/share/sample/zsh-4.3.15/adlint/zle/adlint_traits.yml +50 -42
- data/spec/adlint/{c → cc1}/ctrlexpr_spec.rb +51 -49
- data/spec/adlint/{c → cc1}/domain_spec.rb +210 -179
- data/spec/adlint/{c → cc1}/operator_spec.rb +3 -3
- data/spec/adlint/{c → cc1}/syntax_spec.rb +10 -12
- data/spec/adlint/{c → cc1}/type_spec.rb +61 -68
- data/{lib/adlint/c.rb → spec/adlint/location_spec.rb} +24 -29
- data/spec/conf.d/default_traits.yml +38 -37
- data/spec/conf.d/empty_cinit.h +1 -1
- data/spec/conf.d/empty_pinit.h +1 -1
- data/spec/conf.d/project/foo.c +0 -0
- data/spec/spec_helper.rb +2 -2
- metadata +60 -40
- data/lib/adlint/c/domain.rb +0 -7931
- data/lib/adlint/c/lexer.rb +0 -252
- data/lib/adlint/c/phase.rb +0 -135
- data/lib/adlint/exam/c_builtin/c_check.rb +0 -20745
- data/lib/adlint/exam/c_builtin/c_check_shima.rb +0 -983
- data/lib/adlint/exam/c_builtin/c_code.rb +0 -477
- 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
|
5
|
+
@settitle AdLint 3.0.0 User's Guide
|
6
6
|
|
7
7
|
@copying
|
8
|
-
Copyright (C) 2010-
|
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-
|
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:
|
629
|
-
../intro_demo.c:31:13:warning:c_builtin:W0613:UNC:X99:
|
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:
|
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:
|
687
|
-
../intro_demo.c:31:13:warning:c_builtin:W0613:UNC:X99:
|
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:
|
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:
|
980
|
-
@anchor{project_traits:
|
979
|
+
@cindex project_traits:target_files:inclusion_paths
|
980
|
+
@anchor{project_traits:target_files:inclusion_paths}
|
981
981
|
@tab
|
982
|
-
@code{
|
982
|
+
@code{target_files:inclusion_paths}
|
983
983
|
@tab
|
984
984
|
array of string
|
985
985
|
@tab
|
986
|
-
|
987
|
-
An entry can have multiple pathnames with @code{`:'}
|
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
|
-
@
|
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
|
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
|
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
|
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:
|
1097
|
-
@anchor{compiler_traits:
|
1121
|
+
@cindex compiler_traits:file_search_paths
|
1122
|
+
@anchor{compiler_traits:file_search_paths}
|
1098
1123
|
@tab
|
1099
|
-
@code{
|
1124
|
+
@code{file_search_paths}
|
1100
1125
|
@tab
|
1101
|
-
|
1126
|
+
array of string
|
1102
1127
|
@tab
|
1103
|
-
Set the
|
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:
|
1106
|
-
@anchor{compiler_traits:
|
1132
|
+
@cindex compiler_traits:standard_types:char_size
|
1133
|
+
@anchor{compiler_traits:standard_types:char_size}
|
1107
1134
|
@tab
|
1108
|
-
@code{
|
1135
|
+
@code{standard_types:char_size}
|
1109
1136
|
@tab
|
1110
1137
|
integer value
|
1111
1138
|
@tab
|
1112
|
-
Set the
|
1139
|
+
Set the size of @code{char} type family by bit quantities.
|
1113
1140
|
@item 4
|
1114
|
-
@cindex compiler_traits:
|
1115
|
-
@anchor{compiler_traits:
|
1141
|
+
@cindex compiler_traits:standard_types:char_alignment
|
1142
|
+
@anchor{compiler_traits:standard_types:char_alignment}
|
1116
1143
|
@tab
|
1117
|
-
@code{
|
1144
|
+
@code{standard_types:char_alignment}
|
1118
1145
|
@tab
|
1119
1146
|
integer value
|
1120
1147
|
@tab
|
1121
|
-
Set the
|
1148
|
+
Set the memory alignment of @code{char} type family by bit quantities.
|
1122
1149
|
@item 5
|
1123
|
-
@cindex compiler_traits:
|
1124
|
-
@anchor{compiler_traits:
|
1150
|
+
@cindex compiler_traits:standard_types:short_size
|
1151
|
+
@anchor{compiler_traits:standard_types:short_size}
|
1125
1152
|
@tab
|
1126
|
-
@code{
|
1153
|
+
@code{standard_types:short_size}
|
1127
1154
|
@tab
|
1128
1155
|
integer value
|
1129
1156
|
@tab
|
1130
|
-
Set the
|
1157
|
+
Set the size of @code{short} type family by bit quantities.
|
1131
1158
|
@item 6
|
1132
|
-
@cindex compiler_traits:
|
1133
|
-
@anchor{compiler_traits:
|
1159
|
+
@cindex compiler_traits:standard_types:short_alignment
|
1160
|
+
@anchor{compiler_traits:standard_types:short_alignment}
|
1134
1161
|
@tab
|
1135
|
-
@code{
|
1162
|
+
@code{standard_types:short_alignment}
|
1136
1163
|
@tab
|
1137
1164
|
integer value
|
1138
1165
|
@tab
|
1139
|
-
Set the
|
1166
|
+
Set the memory alignment of @code{short} family by bit quantities.
|
1140
1167
|
@item 7
|
1141
|
-
@cindex compiler_traits:
|
1142
|
-
@anchor{compiler_traits:
|
1168
|
+
@cindex compiler_traits:standard_types:int_size
|
1169
|
+
@anchor{compiler_traits:standard_types:int_size}
|
1143
1170
|
@tab
|
1144
|
-
@code{
|
1171
|
+
@code{standard_types:int_size}
|
1145
1172
|
@tab
|
1146
1173
|
integer value
|
1147
1174
|
@tab
|
1148
|
-
Set the
|
1175
|
+
Set the size of @code{int} type family by bit quantities.
|
1149
1176
|
@item 8
|
1150
|
-
@cindex compiler_traits:
|
1151
|
-
@anchor{compiler_traits:
|
1177
|
+
@cindex compiler_traits:standard_types:int_alignment
|
1178
|
+
@anchor{compiler_traits:standard_types:int_alignment}
|
1152
1179
|
@tab
|
1153
|
-
@code{
|
1180
|
+
@code{standard_types:int_alignment}
|
1154
1181
|
@tab
|
1155
1182
|
integer value
|
1156
1183
|
@tab
|
1157
|
-
Set the
|
1184
|
+
Set the memory alignment of @code{int} type family by bit quantities.
|
1158
1185
|
@item 9
|
1159
|
-
@cindex compiler_traits:
|
1160
|
-
@anchor{compiler_traits:
|
1186
|
+
@cindex compiler_traits:standard_types:long_size
|
1187
|
+
@anchor{compiler_traits:standard_types:long_size}
|
1161
1188
|
@tab
|
1162
|
-
@code{
|
1189
|
+
@code{standard_types:long_size}
|
1163
1190
|
@tab
|
1164
1191
|
integer value
|
1165
1192
|
@tab
|
1166
|
-
Set the
|
1193
|
+
Set the size of @code{long int} type family by bit quantities.
|
1167
1194
|
@item 10
|
1168
|
-
@cindex compiler_traits:
|
1169
|
-
@anchor{compiler_traits:
|
1195
|
+
@cindex compiler_traits:standard_types:long_alignment
|
1196
|
+
@anchor{compiler_traits:standard_types:long_alignment}
|
1170
1197
|
@tab
|
1171
|
-
@code{
|
1198
|
+
@code{standard_types:long_alignment}
|
1172
1199
|
@tab
|
1173
1200
|
integer value
|
1174
1201
|
@tab
|
1175
|
-
Set the
|
1202
|
+
Set the memory alignment of @code{long int} type family by bit quantities.
|
1176
1203
|
@item 11
|
1177
|
-
@cindex compiler_traits:
|
1178
|
-
@anchor{compiler_traits:
|
1204
|
+
@cindex compiler_traits:standard_types:long_long_size
|
1205
|
+
@anchor{compiler_traits:standard_types:long_long_size}
|
1179
1206
|
@tab
|
1180
|
-
@code{
|
1207
|
+
@code{standard_types:long_long_size}
|
1181
1208
|
@tab
|
1182
1209
|
integer value
|
1183
1210
|
@tab
|
1184
|
-
Set the
|
1211
|
+
Set the size of @code{long long int} type family by bit quantities.
|
1185
1212
|
@item 12
|
1186
|
-
@cindex compiler_traits:
|
1187
|
-
@anchor{compiler_traits:
|
1213
|
+
@cindex compiler_traits:standard_types:long_long_alignment
|
1214
|
+
@anchor{compiler_traits:standard_types:long_long_alignment}
|
1188
1215
|
@tab
|
1189
|
-
@code{
|
1216
|
+
@code{standard_types:long_long_alignment}
|
1190
1217
|
@tab
|
1191
1218
|
integer value
|
1192
1219
|
@tab
|
1193
|
-
Set the
|
1220
|
+
Set the memory alignment of @code{long long int} type family by bit quantities.
|
1194
1221
|
@item 13
|
1195
|
-
@cindex compiler_traits:
|
1196
|
-
@anchor{compiler_traits:
|
1222
|
+
@cindex compiler_traits:standard_types:float_size
|
1223
|
+
@anchor{compiler_traits:standard_types:float_size}
|
1197
1224
|
@tab
|
1198
|
-
@code{
|
1225
|
+
@code{standard_types:float_size}
|
1199
1226
|
@tab
|
1200
1227
|
integer value
|
1201
1228
|
@tab
|
1202
|
-
Set the
|
1229
|
+
Set the size of @code{float} type family by bit quantities.
|
1203
1230
|
@item 14
|
1204
|
-
@cindex compiler_traits:
|
1205
|
-
@anchor{compiler_traits:
|
1231
|
+
@cindex compiler_traits:standard_types:float_alignment
|
1232
|
+
@anchor{compiler_traits:standard_types:float_alignment}
|
1206
1233
|
@tab
|
1207
|
-
@code{
|
1234
|
+
@code{standard_types:float_alignment}
|
1208
1235
|
@tab
|
1209
1236
|
integer value
|
1210
1237
|
@tab
|
1211
|
-
Set the
|
1238
|
+
Set the memory alignment of @code{float} type family by bit quantities.
|
1212
1239
|
@item 15
|
1213
|
-
@cindex compiler_traits:
|
1214
|
-
@anchor{compiler_traits:
|
1240
|
+
@cindex compiler_traits:standard_types:double_size
|
1241
|
+
@anchor{compiler_traits:standard_types:double_size}
|
1215
1242
|
@tab
|
1216
|
-
@code{
|
1243
|
+
@code{standard_types:double_size}
|
1217
1244
|
@tab
|
1218
1245
|
integer value
|
1219
1246
|
@tab
|
1220
|
-
Set the
|
1247
|
+
Set the size of @code{double} type family by bit quantities.
|
1221
1248
|
@item 16
|
1222
|
-
@cindex compiler_traits:
|
1223
|
-
@anchor{compiler_traits:
|
1249
|
+
@cindex compiler_traits:standard_types:double_alignment
|
1250
|
+
@anchor{compiler_traits:standard_types:double_alignment}
|
1224
1251
|
@tab
|
1225
|
-
@code{
|
1252
|
+
@code{standard_types:double_alignment}
|
1226
1253
|
@tab
|
1227
1254
|
integer value
|
1228
1255
|
@tab
|
1229
|
-
Set the
|
1256
|
+
Set the memory alignment of @code{double} type family by bit quantities.
|
1230
1257
|
@item 17
|
1231
|
-
@cindex compiler_traits:
|
1232
|
-
@anchor{compiler_traits:
|
1258
|
+
@cindex compiler_traits:standard_types:long_double_size
|
1259
|
+
@anchor{compiler_traits:standard_types:long_double_size}
|
1233
1260
|
@tab
|
1234
|
-
@code{
|
1261
|
+
@code{standard_types:long_double_size}
|
1235
1262
|
@tab
|
1236
1263
|
integer value
|
1237
1264
|
@tab
|
1238
|
-
Set the
|
1265
|
+
Set the size of @code{long double} type family by bit quantities.
|
1239
1266
|
@item 18
|
1240
|
-
@cindex compiler_traits:
|
1241
|
-
@anchor{compiler_traits:
|
1267
|
+
@cindex compiler_traits:standard_types:long_double_alignment
|
1268
|
+
@anchor{compiler_traits:standard_types:long_double_alignment}
|
1242
1269
|
@tab
|
1243
|
-
@code{
|
1270
|
+
@code{standard_types:long_double_alignment}
|
1244
1271
|
@tab
|
1245
1272
|
integer value
|
1246
1273
|
@tab
|
1247
|
-
Set the
|
1274
|
+
Set the memory alignment of @code{long double} type family by bit quantities.
|
1248
1275
|
@item 19
|
1249
|
-
@cindex compiler_traits:
|
1250
|
-
@anchor{compiler_traits:
|
1276
|
+
@cindex compiler_traits:standard_types:code_ptr_size
|
1277
|
+
@anchor{compiler_traits:standard_types:code_ptr_size}
|
1251
1278
|
@tab
|
1252
|
-
@code{
|
1279
|
+
@code{standard_types:code_ptr_size}
|
1253
1280
|
@tab
|
1254
1281
|
integer value
|
1255
1282
|
@tab
|
1256
|
-
Set the
|
1283
|
+
Set the size of function pointer by bit quantities.
|
1257
1284
|
@item 20
|
1258
|
-
@cindex compiler_traits:
|
1259
|
-
@anchor{compiler_traits:
|
1285
|
+
@cindex compiler_traits:standard_types:code_ptr_alignment
|
1286
|
+
@anchor{compiler_traits:standard_types:code_ptr_alignment}
|
1260
1287
|
@tab
|
1261
|
-
@code{
|
1288
|
+
@code{standard_types:code_ptr_alignment}
|
1262
1289
|
@tab
|
1263
1290
|
integer value
|
1264
1291
|
@tab
|
1265
|
-
Set the
|
1292
|
+
Set the memory alignment of function pointer by bit quantities.
|
1266
1293
|
@item 21
|
1267
|
-
@cindex compiler_traits:
|
1268
|
-
@anchor{compiler_traits:
|
1294
|
+
@cindex compiler_traits:standard_types:data_ptr_size
|
1295
|
+
@anchor{compiler_traits:standard_types:data_ptr_size}
|
1269
1296
|
@tab
|
1270
|
-
@code{
|
1297
|
+
@code{standard_types:data_ptr_size}
|
1271
1298
|
@tab
|
1272
1299
|
integer value
|
1273
1300
|
@tab
|
1274
|
-
Set the
|
1301
|
+
Set the size of data pointer by bit quantities.
|
1275
1302
|
@item 22
|
1276
|
-
@cindex compiler_traits:
|
1277
|
-
@anchor{compiler_traits:
|
1303
|
+
@cindex compiler_traits:standard_types:data_ptr_alignment
|
1304
|
+
@anchor{compiler_traits:standard_types:data_ptr_alignment}
|
1278
1305
|
@tab
|
1279
|
-
@code{
|
1306
|
+
@code{standard_types:data_ptr_alignment}
|
1280
1307
|
@tab
|
1281
|
-
|
1308
|
+
integer value
|
1282
1309
|
@tab
|
1283
|
-
|
1310
|
+
Set the memory alignment of data pointer by bit quantities.
|
1284
1311
|
@item 23
|
1285
|
-
@cindex compiler_traits:
|
1286
|
-
@anchor{compiler_traits:
|
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{
|
1315
|
+
@code{standard_types:char_as_unsigned_char}
|
1289
1316
|
@tab
|
1290
|
-
|
1317
|
+
boolean value
|
1291
1318
|
@tab
|
1292
|
-
|
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:
|
1306
|
-
@anchor{compiler_traits:
|
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{
|
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
|
-
|
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
|
-
|
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:
|
1337
|
-
@anchor{compiler_traits:
|
1361
|
+
@cindex compiler_traits:arbitrary_substitutions
|
1362
|
+
@anchor{compiler_traits:arbitrary_substitutions}
|
1338
1363
|
@tab
|
1339
|
-
@code{
|
1364
|
+
@code{arbitrary_substitutions}
|
1340
1365
|
@tab
|
1341
|
-
|
1366
|
+
map of string
|
1342
1367
|
@tab
|
1343
|
-
|
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:
|
1393
|
-
@anchor{message_traits:
|
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
|
-
@
|
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
|
-
|
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},
|
1442
|
-
@item
|
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
|
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
|
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
|
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
|
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{
|
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{
|
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{
|
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{
|
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{
|
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{
|
1900
|
+
@subheading @bullet{ Variable declaration records}
|
1835
1901
|
@example
|
1836
1902
|
@anchor{vardef_record_body}
|
1837
1903
|
vardef_record_body
|
1838
|
-
: 'V' ',' @ref{
|
1904
|
+
: 'V' ',' @ref{variable_linkage_type} ',' @ref{variable_scope_type} ',' @ref{storage_class_type} ',' @ref{variable_name} ',' @ref{type_rep}
|
1839
1905
|
|
1840
|
-
@anchor{
|
1841
|
-
|
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{
|
1847
|
-
|
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{
|
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{
|
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{
|
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{
|
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{
|
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{
|
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{
|
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{
|
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{
|
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{
|
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
|
-
| '
|
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
|
-
| '
|
2132
|
-
| '
|
2133
|
-
| '
|
2134
|
-
| 'll'
|
2135
|
-
| '
|
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{
|
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{
|
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
|
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
|
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
|
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::
|
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::
|
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::
|
2457
|
+
* W0093::This expression may cause division-by-zero.
|
2401
2458
|
* W0096::It divided by a constant expression which definitely zero.
|
2402
|
-
* W0097::
|
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::
|
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
|
2418
|
-
* W0118
|
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::
|
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::
|
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::
|
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::
|
2714
|
-
* W0421::
|
2715
|
-
* W0422::
|
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
|
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::
|
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::
|
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::
|
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::
|
2821
|
-
* W0610::
|
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::
|
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
|
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::
|
2902
|
-
* W0707::
|
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::
|
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
|
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::
|
3009
|
-
* W0948::
|
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::
|
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::
|
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'
|
3117
|
+
* W1076::`%s' has internal-linkage without any prototype declarations.
|
3061
3118
|
* W1077::Declaring array object without a size.
|
3062
|
-
* W9001::
|
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
|
-
|
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
|
-
|
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
|
-
|
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
|
-
|
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
|
-
|
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
|
-
|
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}
|
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
|
-
|
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}
|
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
|
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}
|
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}
|
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}
|
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}
|
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}
|
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}
|
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}
|
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}
|
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}
|
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}
|
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}
|
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}
|
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}
|
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}
|
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}
|
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}
|
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
|
-
|
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}
|
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}
|
8341
|
-
@item @ref{W0167}
|
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
|
-
|
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}
|
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}
|
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}
|
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}
|
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}
|
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}
|
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}
|
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}
|
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}
|
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}
|
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}
|
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}
|
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}
|
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}
|
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}
|
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}
|
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}
|
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}
|
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}
|
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}
|
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}
|
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}
|
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}
|
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}
|
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}
|
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}
|
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}
|
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}
|
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}
|
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}
|
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
|
-
|
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}
|
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}
|
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}
|
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}
|
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}
|
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}
|
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}
|
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}
|
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}
|
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
|
-
|
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
|
-
|
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
|
-
|
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
|
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
|
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
|
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
|
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
|
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
|
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
|
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
|
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}
|
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}
|
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
|
-
|
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}
|
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
|
-
|
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
|
-
|
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
|
-
|
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}
|
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}
|
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
|
-
|
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}
|
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}
|
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}
|
25752
|
-
@item @ref{W0610}
|
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}
|
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}
|
25790
|
-
@item @ref{W0610}
|
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}
|
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
|
-
|
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}
|
25828
|
-
@item @ref{W0610}
|
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}
|
25866
|
-
@item @ref{W0610}
|
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}
|
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}
|
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
|
-
|
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
|
-
|
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
|
-
|
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
|
-
|
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
|
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
|
-
|
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}
|
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}
|
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
|
-
|
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}
|
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}
|
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}
|
33332
|
-
@item @ref{W0948}
|
33333
|
-
@item @ref{W0950}
|
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
|
-
|
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}
|
33362
|
-
@item @ref{W0948}
|
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
|
-
|
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'
|
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
|
-
|
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
|
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
|
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
|
35976
|
+
Number of if-statement without else-clause
|
35911
35977
|
|
35912
35978
|
@subsection Content
|
35913
35979
|
|
35914
|
-
The number of
|
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
|