adlint 1.14.0 → 1.16.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (70) hide show
  1. data/ChangeLog +265 -0
  2. data/MANIFEST +15 -0
  3. data/NEWS +30 -4
  4. data/etc/conf.d/noarch/adlint_all_bat.erb +1 -1
  5. data/etc/mesg.d/en_US/messages.yml +3 -3
  6. data/etc/mesg.d/ja_JP/messages.yml +3 -3
  7. data/features/message_detection/W0001.feature +2 -0
  8. data/features/message_detection/W0007.feature +8 -0
  9. data/features/message_detection/W0010.feature +4 -1
  10. data/features/message_detection/W0013.feature +8 -0
  11. data/features/message_detection/W0093.feature +3 -0
  12. data/features/message_detection/W0104.feature +7 -0
  13. data/features/message_detection/W0643.feature +80 -0
  14. data/features/message_detection/W0646.feature +115 -0
  15. data/features/message_detection/W0691.feature +100 -0
  16. data/features/message_detection/W0692.feature +32 -0
  17. data/features/message_detection/W0694.feature +128 -0
  18. data/features/message_detection/W0716.feature +3 -0
  19. data/features/message_detection/W0717.feature +3 -0
  20. data/features/message_detection/W0718.feature +3 -0
  21. data/features/message_detection/W0723.feature +2 -0
  22. data/features/message_detection/W0732.feature +3 -0
  23. data/features/message_detection/W0733.feature +3 -0
  24. data/features/message_detection/W0734.feature +8 -0
  25. data/features/message_detection/W0735.feature +8 -0
  26. data/features/message_detection/W0805.feature +92 -0
  27. data/features/message_detection/W0811.feature +79 -0
  28. data/features/message_detection/W1031.feature +7 -0
  29. data/features/message_detection/W1040.feature +89 -0
  30. data/features/message_detection/W1041.feature +15 -0
  31. data/features/message_detection/W1046.feature +60 -0
  32. data/features/message_detection/W1052.feature +3 -0
  33. data/features/message_detection/W1066.feature +3 -0
  34. data/features/message_detection/W1067.feature +3 -0
  35. data/features/message_detection/W1068.feature +3 -0
  36. data/features/message_detection/W1069.feature +5 -0
  37. data/features/message_detection/W1070.feature +6 -0
  38. data/features/message_detection/W1072.feature +1 -0
  39. data/features/message_detection/W1073.feature +145 -0
  40. data/features/message_detection/W1074.feature +139 -0
  41. data/features/message_detection/W1075.feature +86 -0
  42. data/features/message_detection/W1076.feature +66 -0
  43. data/features/message_detection/W1077.feature +105 -0
  44. data/features/message_detection/W9003.feature +4 -0
  45. data/lib/adlint/c/ctrlexpr.rb +3 -0
  46. data/lib/adlint/c/interp.rb +11 -5
  47. data/lib/adlint/c/lexer.rb +14 -3
  48. data/lib/adlint/c/message.rb +192 -0
  49. data/lib/adlint/c/parser.rb +19 -3
  50. data/lib/adlint/c/parser.y +18 -2
  51. data/lib/adlint/c/phase.rb +19 -6
  52. data/lib/adlint/c/syntax.rb +6 -0
  53. data/lib/adlint/c/type.rb +5 -1
  54. data/lib/adlint/cpp/constexpr.rb +3 -3
  55. data/lib/adlint/cpp/constexpr.y +3 -3
  56. data/lib/adlint/cpp/eval.rb +60 -86
  57. data/lib/adlint/cpp/lexer.rb +82 -28
  58. data/lib/adlint/cpp/macro.rb +64 -35
  59. data/lib/adlint/cpp/message.rb +137 -4
  60. data/lib/adlint/cpp/phase.rb +8 -0
  61. data/lib/adlint/cpp/syntax.rb +25 -0
  62. data/lib/adlint/lang.rb +2 -1
  63. data/lib/adlint/version.rb +2 -2
  64. data/share/doc/developers_guide_ja.html +3 -3
  65. data/share/doc/developers_guide_ja.texi +1 -1
  66. data/share/doc/users_guide_en.html +102 -85
  67. data/share/doc/users_guide_en.texi +85 -69
  68. data/share/doc/users_guide_ja.html +102 -94
  69. data/share/doc/users_guide_ja.texi +85 -77
  70. metadata +17 -2
@@ -1,8 +1,8 @@
1
1
  <html lang="ja">
2
2
  <head>
3
- <title>AdLint 1.14.0 利用者ガイド</title>
3
+ <title>AdLint 1.16.0 利用者ガイド</title>
4
4
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
5
- <meta name="description" content="AdLint 1.14.0 利用者ガイド">
5
+ <meta name="description" content="AdLint 1.16.0 利用者ガイド">
6
6
  <meta name="generator" content="makeinfo 4.13">
7
7
  <link title="Top" rel="top" href="#Top">
8
8
  <link href="http://www.gnu.org/software/texinfo/" rel="generator-home" title="Texinfo Homepage">
@@ -44,7 +44,7 @@ td { border: 1px solid black; }
44
44
  --></style>
45
45
  </head>
46
46
  <body>
47
- <h1 class="settitle">AdLint 1.14.0 利用者ガイド</h1>
47
+ <h1 class="settitle">AdLint 1.16.0 利用者ガイド</h1>
48
48
  <div class="node">
49
49
  <a name="Top"></a>
50
50
  <p><hr>
@@ -2721,7 +2721,7 @@ Up:&nbsp;<a rel="up" accesskey="u" href="#Top">Top</a>
2721
2721
  <li><a href="#W0689">W0689</a>: #line 指令の構文が `#line 汎整数定数 "文字列"' の形式と合っていません。
2722
2722
  <li><a href="#W0690">W0690</a>: #line 指令の後に行番号が記述されていません。
2723
2723
  <li><a href="#W0691">W0691</a>: `##' 演算子の結果が有効な前処理字句ではありません。
2724
- <li><a href="#W0692">W0692</a>: 関数形式マクロに実引数が与えられていません。
2724
+ <li><a href="#W0692">W0692</a>: 関数形式マクロ `%s' に実引数が与えられていません。
2725
2725
  <li><a href="#W0693">W0693</a>: 関数形式マクロがその定義よりも少ない実引数で呼び出されています。
2726
2726
  <li><a href="#W0694">W0694</a>: `assert' という名称の関数を呼び出す目的で、assert マクロが抑制されています。未定義の結果になります。
2727
2727
  <li><a href="#W0695">W0695</a>: assert マクロを #undef してその名前の関数を呼び出しできるようにすると、未定義の結果になります。
@@ -2857,7 +2857,7 @@ Up:&nbsp;<a rel="up" accesskey="u" href="#Top">Top</a>
2857
2857
  <li><a href="#W1037">W1037</a>: 外部結合をもつ `%s' が、二つ以上宣言されていますが互換性がありません。
2858
2858
  <li><a href="#W1039">W1039</a>: 変換指定子に `ll' が使われています。
2859
2859
  <li><a href="#W1040">W1040</a>: 前処理指令の後に認識できない文字列が記述されています。
2860
- <li><a href="#W1041">W1041</a>: `#%s' は、ISO C 標準規格の正式な前処理指令ではありません。
2860
+ <li><a href="#W1041">W1041</a>: `%s' は、ISO C 標準規格の正式な前処理指令ではありません。
2861
2861
  <li><a href="#W1042">W1042</a>: 前処理指令の中で sizeof 演算子を使っています。これは言語拡張です。
2862
2862
  <li><a href="#W1043">W1043</a>: `@ address' は、ISO C 標準規格ではサポートされていません。言語拡張と見なします。
2863
2863
  <li><a href="#W1044">W1044</a>: 文を包含する式は ISO C 標準規格ではサポートされていません。言語拡張と見なします。
@@ -30807,14 +30807,12 @@ Up:&nbsp;<a rel="up" accesskey="u" href="#Messages">Messages</a>
30807
30807
 
30808
30808
  <h4 class="subsection">6.525.2 内容</h4>
30809
30809
 
30810
- <p><b>このメッセージは AdLint 2.0.0 で出力する予定です。</b>
30811
-
30812
- <p>未定義の動作のため、予期しない動作を引き起こす可能性があります。
30810
+ <p>未定義の動作のため、予期しない動作を引き起こす可能性があります。
30813
30811
 
30814
30812
  <h4 class="subsection">6.525.3 サンプルコード</h4>
30815
30813
 
30816
- <!-- {未実装} -->
30817
- <pre class="verbatim">/* 追記予定 */
30814
+ <pre class="verbatim">#define MACRO(x) #x
30815
+ const char *str = MACRO(foo\); /* W0643 */
30818
30816
  </pre>
30819
30817
 
30820
30818
  <h4 class="subsection">6.525.4 関連メッセージ</h4>
@@ -30828,7 +30826,7 @@ Up:&nbsp;<a rel="up" accesskey="u" href="#Messages">Messages</a>
30828
30826
 
30829
30827
  <h4 class="subsection">6.525.5 対応バージョン</h4>
30830
30828
 
30831
- <p>2.0.0 の予定
30829
+ <p>1.16.0
30832
30830
 
30833
30831
  <div class="node">
30834
30832
  <a name="W0644"></a>
@@ -30936,14 +30934,11 @@ Up:&nbsp;<a rel="up" accesskey="u" href="#Messages">Messages</a>
30936
30934
 
30937
30935
  <h4 class="subsection">6.528.2 内容</h4>
30938
30936
 
30939
- <p><b>このメッセージは AdLint 2.0.0 で出力する予定です。</b>
30940
-
30941
- <p>未定義の動作のため、予期しない動作を引き起こす可能性があります。
30937
+ <p>未定義の動作のため、予期しない動作を引き起こす可能性があります。
30942
30938
 
30943
30939
  <h4 class="subsection">6.528.3 サンプルコード</h4>
30944
30940
 
30945
- <!-- {未実装} -->
30946
- <pre class="verbatim">/* 追記予定 */
30941
+ <pre class="verbatim">static const char *str = "foo" L"bar"; /* W0646 */
30947
30942
  </pre>
30948
30943
 
30949
30944
  <h4 class="subsection">6.528.4 関連メッセージ</h4>
@@ -30957,7 +30952,7 @@ Up:&nbsp;<a rel="up" accesskey="u" href="#Messages">Messages</a>
30957
30952
 
30958
30953
  <h4 class="subsection">6.528.5 対応バージョン</h4>
30959
30954
 
30960
- <p>2.0.0 の予定
30955
+ <p>1.16.0
30961
30956
 
30962
30957
  <div class="node">
30963
30958
  <a name="W0649"></a>
@@ -33542,14 +33537,13 @@ Up:&nbsp;<a rel="up" accesskey="u" href="#Messages">Messages</a>
33542
33537
 
33543
33538
  <h4 class="subsection">6.569.2 内容</h4>
33544
33539
 
33545
- <p><b>このメッセージは AdLint 2.0.0 で出力する予定です。</b>
33546
-
33547
- <p>このような記述は、未定義の動作のため、予期しない動作を引き起こす可能性があります。
33540
+ <p>このような記述は、未定義の動作のため、予期しない動作を引き起こす可能性があります。
33548
33541
 
33549
33542
  <h4 class="subsection">6.569.3 サンプルコード</h4>
33550
33543
 
33551
- <!-- {未実装} -->
33552
- <pre class="verbatim">/* 追記予定 */
33544
+ <pre class="verbatim">#define MACRO(a, b) a ## b
33545
+
33546
+ double d = (double) MACRO(-, 123); /* W0691 */
33553
33547
  </pre>
33554
33548
 
33555
33549
  <h4 class="subsection">6.569.4 関連メッセージ</h4>
@@ -33563,7 +33557,7 @@ Up:&nbsp;<a rel="up" accesskey="u" href="#Messages">Messages</a>
33563
33557
 
33564
33558
  <h4 class="subsection">6.569.5 対応バージョン</h4>
33565
33559
 
33566
- <p>2.0.0 の予定
33560
+ <p>1.16.0
33567
33561
 
33568
33562
  <div class="node">
33569
33563
  <a name="W0692"></a>
@@ -33580,18 +33574,17 @@ Up:&nbsp;<a rel="up" accesskey="u" href="#Messages">Messages</a>
33580
33574
 
33581
33575
  <h4 class="subsection">6.570.1 メッセージ本文</h4>
33582
33576
 
33583
- <p>関数形式マクロに実引数が与えられていません。
33577
+ <p>関数形式マクロ `%s' に実引数が与えられていません。
33584
33578
 
33585
33579
  <h4 class="subsection">6.570.2 内容</h4>
33586
33580
 
33587
- <p><b>このメッセージは AdLint 2.0.0 で出力する予定です。</b>
33588
-
33589
- <p>このような記述は、言語制約違反になりますので、移植性を低下させます。
33581
+ <p>このような記述は、言語制約違反になりますので、移植性を低下させます。
33590
33582
 
33591
33583
  <h4 class="subsection">6.570.3 サンプルコード</h4>
33592
33584
 
33593
- <!-- {未実装} -->
33594
- <pre class="verbatim">/* 追記予定 */
33585
+ <pre class="verbatim">#define MACRO(a) #a
33586
+
33587
+ const char *s = (char *) MACRO(); /* W0692 */
33595
33588
  </pre>
33596
33589
 
33597
33590
  <h4 class="subsection">6.570.4 関連メッセージ</h4>
@@ -33602,7 +33595,7 @@ Up:&nbsp;<a rel="up" accesskey="u" href="#Messages">Messages</a>
33602
33595
 
33603
33596
  <h4 class="subsection">6.570.5 対応バージョン</h4>
33604
33597
 
33605
- <p>2.0.0 の予定
33598
+ <p>1.16.0
33606
33599
 
33607
33600
  <div class="node">
33608
33601
  <a name="W0693"></a>
@@ -33635,7 +33628,7 @@ Up:&nbsp;<a rel="up" accesskey="u" href="#Messages">Messages</a>
33635
33628
  <h4 class="subsection">6.571.4 関連メッセージ</h4>
33636
33629
 
33637
33630
  <ul>
33638
- <li><a href="#W0692">W0692</a> 関数形式マクロに実引数が与えられていません。
33631
+ <li><a href="#W0692">W0692</a> 関数形式マクロ `%s' に実引数が与えられていません。
33639
33632
  </ul>
33640
33633
 
33641
33634
  <h4 class="subsection">6.571.5 対応バージョン</h4>
@@ -33661,14 +33654,17 @@ Up:&nbsp;<a rel="up" accesskey="u" href="#Messages">Messages</a>
33661
33654
 
33662
33655
  <h4 class="subsection">6.572.2 内容</h4>
33663
33656
 
33664
- <p><b>このメッセージは AdLint 2.0.0 で出力する予定です。</b>
33665
-
33666
- <p><code>assert</code> という名前の関数を作成すると、未定義の結果になります。
33657
+ <p><code>assert</code> という名前の関数を作成すると、未定義の結果になります。
33667
33658
 
33668
33659
  <h4 class="subsection">6.572.3 サンプルコード</h4>
33669
33660
 
33670
- <!-- {未実装} -->
33671
- <pre class="verbatim">/* 追記予定 */
33661
+ <pre class="verbatim">#undef assert
33662
+ extern void assert(int);
33663
+
33664
+ void foo(void)
33665
+ {
33666
+ assert("should not be reached" == ""); /* W0694 */
33667
+ }
33672
33668
  </pre>
33673
33669
 
33674
33670
  <h4 class="subsection">6.572.4 関連メッセージ</h4>
@@ -33677,7 +33673,7 @@ Up:&nbsp;<a rel="up" accesskey="u" href="#Messages">Messages</a>
33677
33673
 
33678
33674
  <h4 class="subsection">6.572.5 対応バージョン</h4>
33679
33675
 
33680
- <p>2.0.0 の予定
33676
+ <p>1.16.0
33681
33677
 
33682
33678
  <div class="node">
33683
33679
  <a name="W0695"></a>
@@ -38306,13 +38302,13 @@ Up:&nbsp;<a rel="up" accesskey="u" href="#Messages">Messages</a>
38306
38302
 
38307
38303
  <h4 class="subsection">6.673.2 内容</h4>
38308
38304
 
38309
- <p><b>このメッセージは AdLint 2.0.0 で出力する予定です。</b>
38310
-
38311
- <p>このような記述は未定義の動作になります。したがって、予期しない動作を引き起こす可能性があります。
38305
+ <p>このような記述は未定義の動作になります。したがって、予期しない動作を引き起こす可能性があります。
38312
38306
 
38313
38307
  <h4 class="subsection">6.673.3 サンプルコード</h4>
38314
38308
 
38315
- <pre class="verbatim">#if defined() /* W0805 */
38309
+ <pre class="verbatim">#if defined "foo" /* W0805 */
38310
+ int i = 0;
38311
+ #endif
38316
38312
  </pre>
38317
38313
 
38318
38314
  <h4 class="subsection">6.673.4 関連メッセージ</h4>
@@ -38323,7 +38319,7 @@ Up:&nbsp;<a rel="up" accesskey="u" href="#Messages">Messages</a>
38323
38319
 
38324
38320
  <h4 class="subsection">6.673.5 対応バージョン</h4>
38325
38321
 
38326
- <p>2.0.0 の予定
38322
+ <p>1.16.0
38327
38323
 
38328
38324
  <div class="node">
38329
38325
  <a name="W0806"></a>
@@ -38548,14 +38544,15 @@ Up:&nbsp;<a rel="up" accesskey="u" href="#Messages">Messages</a>
38548
38544
 
38549
38545
  <h4 class="subsection">6.679.2 内容</h4>
38550
38546
 
38551
- <p><b>このメッセージは AdLint 2.0.0 で出力する予定です。</b>
38552
-
38553
- <p>このような記述は、未定義の動作のため、予期しない動作を引き起こす可能性があります。
38547
+ <p>このような記述は、未定義の動作のため、予期しない動作を引き起こす可能性があります。
38554
38548
 
38555
38549
  <h4 class="subsection">6.679.3 サンプルコード</h4>
38556
38550
 
38557
- <!-- {未実装} -->
38558
- <pre class="verbatim">/* 追記予定 */
38551
+ <pre class="verbatim">#define COND defined(FOO)
38552
+
38553
+ #if COND /* W0811 */
38554
+ int i = 0;
38555
+ #endif
38559
38556
  </pre>
38560
38557
 
38561
38558
  <h4 class="subsection">6.679.4 関連メッセージ</h4>
@@ -38564,7 +38561,7 @@ Up:&nbsp;<a rel="up" accesskey="u" href="#Messages">Messages</a>
38564
38561
 
38565
38562
  <h4 class="subsection">6.679.5 対応バージョン</h4>
38566
38563
 
38567
- <p>2.0.0 の予定
38564
+ <p>1.16.0
38568
38565
 
38569
38566
  <div class="node">
38570
38567
  <a name="W0827"></a>
@@ -39582,26 +39579,33 @@ Up:&nbsp;<a rel="up" accesskey="u" href="#Messages">Messages</a>
39582
39579
 
39583
39580
  <h4 class="subsection">6.705.2 内容</h4>
39584
39581
 
39585
- <p><b>このメッセージは AdLint 2.0.0 で出力する予定です。</b>
39586
-
39587
- <p>このような前処理指令の記述は、ISO C90 標準規格ではサポートされていません。
39582
+ <p>このような前処理指令の記述は、ISO C90 標準規格ではサポートされていません。
39588
39583
 
39589
39584
  <h4 class="subsection">6.705.3 サンプルコード</h4>
39590
39585
 
39591
- <!-- {未実装} -->
39592
- <pre class="verbatim">/* 追記予定 */
39586
+ <pre class="verbatim">#define TEST
39587
+
39588
+ #ifdef TEST
39589
+ #if defined(CASE_1)
39590
+ int i = 1;
39591
+ #elif defined(CASE_2)
39592
+ int i = 2;
39593
+ #endif CASE /* W1040 */
39594
+ #else
39595
+ int i = 0;
39596
+ #endif TEST /* W1040 */
39593
39597
  </pre>
39594
39598
 
39595
39599
  <h4 class="subsection">6.705.4 関連メッセージ</h4>
39596
39600
 
39597
39601
  <ul>
39598
- <li><a href="#W1041">W1041</a> `#%s' は、ISO C 標準規格の正式な前処理指令ではありません。
39602
+ <li><a href="#W1041">W1041</a> `%s' は、ISO C 標準規格の正式な前処理指令ではありません。
39599
39603
  <li><a href="#W1042">W1042</a> 前処理指令の中で sizeof 演算子を使っています。これは言語拡張です。
39600
39604
  </ul>
39601
39605
 
39602
39606
  <h4 class="subsection">6.705.5 対応バージョン</h4>
39603
39607
 
39604
- <p>2.0.0 の予定
39608
+ <p>1.16.0
39605
39609
 
39606
39610
  <div class="node">
39607
39611
  <a name="W1041"></a>
@@ -39618,18 +39622,15 @@ Up:&nbsp;<a rel="up" accesskey="u" href="#Messages">Messages</a>
39618
39622
 
39619
39623
  <h4 class="subsection">6.706.1 メッセージ本文</h4>
39620
39624
 
39621
- <p>`#%s' は、ISO C 標準規格の正式な前処理指令ではありません。
39625
+ <p>`%s' は、ISO C 標準規格の正式な前処理指令ではありません。
39622
39626
 
39623
39627
  <h4 class="subsection">6.706.2 内容</h4>
39624
39628
 
39625
- <p><b>このメッセージは AdLint 2.0.0 で出力する予定です。</b>
39626
-
39627
- <p>このような前処理指令の記述は、ISO C90 標準規格ではサポートされていません。
39629
+ <p>このような前処理指令の記述は、ISO C90 標準規格ではサポートされていません。
39628
39630
 
39629
39631
  <h4 class="subsection">6.706.3 サンプルコード</h4>
39630
39632
 
39631
- <!-- {未実装} -->
39632
- <pre class="verbatim">/* 追記予定 */
39633
+ <pre class="verbatim">#compiler_specific_extension 1 2.3 "4" /* W1041 */
39633
39634
  </pre>
39634
39635
 
39635
39636
  <h4 class="subsection">6.706.4 関連メッセージ</h4>
@@ -39641,7 +39642,7 @@ Up:&nbsp;<a rel="up" accesskey="u" href="#Messages">Messages</a>
39641
39642
 
39642
39643
  <h4 class="subsection">6.706.5 対応バージョン</h4>
39643
39644
 
39644
- <p>2.0.0 の予定
39645
+ <p>1.16.0
39645
39646
 
39646
39647
  <div class="node">
39647
39648
  <a name="W1042"></a>
@@ -39676,7 +39677,7 @@ Up:&nbsp;<a rel="up" accesskey="u" href="#Messages">Messages</a>
39676
39677
 
39677
39678
  <ul>
39678
39679
  <li><a href="#W1040">W1040</a> 前処理指令の後に認識できない文字列が記述されています。
39679
- <li><a href="#W1041">W1041</a> `#%s' は、ISO C 標準規格の正式な前処理指令ではありません。
39680
+ <li><a href="#W1041">W1041</a> `%s' は、ISO C 標準規格の正式な前処理指令ではありません。
39680
39681
  </ul>
39681
39682
 
39682
39683
  <h4 class="subsection">6.707.5 対応バージョン</h4>
@@ -39822,14 +39823,14 @@ Up:&nbsp;<a rel="up" accesskey="u" href="#Messages">Messages</a>
39822
39823
 
39823
39824
  <h4 class="subsection">6.711.2 内容</h4>
39824
39825
 
39825
- <p><b>このメッセージは AdLint 2.0.0 で出力する予定です。</b>
39826
-
39827
- <p>ISO C 規格ではバックスラッシュ文字の後に直接改行文字が続くべきであると規定しています。
39826
+ <p>ISO C 規格ではバックスラッシュ文字の後に直接改行文字が続くべきであると規定しています。
39828
39827
 
39829
39828
  <h4 class="subsection">6.711.3 サンプルコード</h4>
39830
39829
 
39831
- <!-- {未実装} -->
39832
- <pre class="verbatim">/* 追記予定 */
39830
+ <pre class="verbatim">#define FOO(a, b) /* OK */ \
39831
+ ( /* W1046 */ \
39832
+ (a) + (b) /* W1046 */ \
39833
+ )
39833
39834
  </pre>
39834
39835
 
39835
39836
  <h4 class="subsection">6.711.4 関連メッセージ</h4>
@@ -39838,7 +39839,7 @@ Up:&nbsp;<a rel="up" accesskey="u" href="#Messages">Messages</a>
39838
39839
 
39839
39840
  <h4 class="subsection">6.711.5 対応バージョン</h4>
39840
39841
 
39841
- <p>2.0.0 の予定
39842
+ <p>1.16.0
39842
39843
 
39843
39844
  <div class="node">
39844
39845
  <a name="W1047"></a>
@@ -41136,14 +41137,20 @@ Up:&nbsp;<a rel="up" accesskey="u" href="#Messages">Messages</a>
41136
41137
 
41137
41138
  <h4 class="subsection">6.738.2 内容</h4>
41138
41139
 
41139
- <p><b>このメッセージは AdLint 2.0.0 で出力する予定です。</b>
41140
-
41141
- <p>関数の戻り値が使用されていない場合、その戻り値は無駄な要素といえます。コード中に無駄な要素があることで解析性が低下します。
41140
+ <p>関数の戻り値が使用されていない場合、その戻り値は無駄な要素といえます。コード中に無駄な要素があることで解析性が低下します。
41142
41141
  また、使用されない戻り値が多いことは、戻り値のチェックも怠っていることが推測されるため、障害許容性が低下している可能性が高いといえます。
41143
41142
 
41144
41143
  <h4 class="subsection">6.738.3 サンプルコード</h4>
41145
41144
 
41146
- <pre class="verbatim">/* 追記予定 */
41145
+ <pre class="verbatim">extern int bar(void);
41146
+ static void foo(void)
41147
+ {
41148
+ int i;
41149
+ int j;
41150
+ for (i = 0, bar(); i &lt; 10; i++) { /* W1073 */
41151
+ j = bar(); /* OK */
41152
+ }
41153
+ }
41147
41154
  </pre>
41148
41155
 
41149
41156
  <h4 class="subsection">6.738.4 関連メッセージ</h4>
@@ -41152,7 +41159,7 @@ Up:&nbsp;<a rel="up" accesskey="u" href="#Messages">Messages</a>
41152
41159
 
41153
41160
  <h4 class="subsection">6.738.5 対応バージョン</h4>
41154
41161
 
41155
- <p>2.0.0 の予定
41162
+ <p>1.16.0
41156
41163
 
41157
41164
  <div class="node">
41158
41165
  <a name="W1074"></a>
@@ -41173,14 +41180,22 @@ Up:&nbsp;<a rel="up" accesskey="u" href="#Messages">Messages</a>
41173
41180
 
41174
41181
  <h4 class="subsection">6.739.2 内容</h4>
41175
41182
 
41176
- <p><b>このメッセージは AdLint 2.0.0 で出力する予定です。</b>
41177
-
41178
- <p>サンプルコードで示したソースコードの場合、<code>sizeof</code> 演算子は式を評価しないため、<code>data++</code> は実行されません。
41183
+ <p>サンプルコードで示したソースコードの場合、<code>sizeof</code> 演算子は式を評価しないため、<code>data++</code> は実行されません。
41179
41184
  従って <code>data++</code> が実行されていることが前提だとすると様々な予期しない問題が起きる可能性があります。
41180
41185
 
41181
41186
  <h4 class="subsection">6.739.3 サンプルコード</h4>
41182
41187
 
41183
- <pre class="verbatim">int i = sizeof(data++); /* W1074 */
41188
+ <pre class="verbatim">static int foo(void)
41189
+ {
41190
+ int i = 0;
41191
+
41192
+ if (sizeof(i++) == 4) { /* W1074 */
41193
+ return 0;
41194
+ }
41195
+ else {
41196
+ return 1;
41197
+ }
41198
+ }
41184
41199
  </pre>
41185
41200
 
41186
41201
  <h4 class="subsection">6.739.4 関連メッセージ</h4>
@@ -41189,7 +41204,7 @@ Up:&nbsp;<a rel="up" accesskey="u" href="#Messages">Messages</a>
41189
41204
 
41190
41205
  <h4 class="subsection">6.739.5 対応バージョン</h4>
41191
41206
 
41192
- <p>2.0.0 の予定
41207
+ <p>1.16.0
41193
41208
 
41194
41209
  <div class="node">
41195
41210
  <a name="W1075"></a>
@@ -41210,9 +41225,7 @@ Up:&nbsp;<a rel="up" accesskey="u" href="#Messages">Messages</a>
41210
41225
 
41211
41226
  <h4 class="subsection">6.740.2 内容</h4>
41212
41227
 
41213
- <p><b>このメッセージは AdLint 2.0.0 で出力する予定です。</b>
41214
-
41215
- <p>static 記憶域クラス指定子が明示されていません。
41228
+ <p>static 記憶域クラス指定子が明示されていません。
41216
41229
 
41217
41230
  <h4 class="subsection">6.740.3 サンプルコード</h4>
41218
41231
 
@@ -41229,7 +41242,7 @@ int func(void) /* W1075 */
41229
41242
 
41230
41243
  <h4 class="subsection">6.740.5 対応バージョン</h4>
41231
41244
 
41232
- <p>2.0.0 の予定
41245
+ <p>1.16.0
41233
41246
 
41234
41247
  <div class="node">
41235
41248
  <a name="W1076"></a>
@@ -41250,16 +41263,13 @@ Up:&nbsp;<a rel="up" accesskey="u" href="#Messages">Messages</a>
41250
41263
 
41251
41264
  <h4 class="subsection">6.741.2 内容</h4>
41252
41265
 
41253
- <p><b>このメッセージは AdLint 2.0.0 で出力する予定です。</b>
41254
-
41255
- <p>関数プロトタイプ宣言がないまま static 記憶域クラス指定子付きの関数が定義されています。
41266
+ <p>関数プロトタイプ宣言がないまま static 記憶域クラス指定子付きの関数が定義されています。
41256
41267
 
41257
41268
  <h4 class="subsection">6.741.3 サンプルコード</h4>
41258
41269
 
41259
41270
  <pre class="verbatim">static int func(void) /* W1076 */
41260
41271
  {
41261
- ...
41262
- return ret;
41272
+ return 0;
41263
41273
  }
41264
41274
  </pre>
41265
41275
 
@@ -41269,7 +41279,7 @@ Up:&nbsp;<a rel="up" accesskey="u" href="#Messages">Messages</a>
41269
41279
 
41270
41280
  <h4 class="subsection">6.741.5 対応バージョン</h4>
41271
41281
 
41272
- <p>2.0.0 の予定
41282
+ <p>1.16.0
41273
41283
 
41274
41284
  <div class="node">
41275
41285
  <a name="W1077"></a>
@@ -41290,13 +41300,11 @@ Up:&nbsp;<a rel="up" accesskey="u" href="#Messages">Messages</a>
41290
41300
 
41291
41301
  <h4 class="subsection">6.742.2 内容</h4>
41292
41302
 
41293
- <p><b>このメッセージは AdLint 2.0.0 で出力する予定です。</b>
41294
-
41295
- <p>この配列は、サイズが明示されていません。
41303
+ <p>この配列は、サイズが明示されていません。
41296
41304
 
41297
41305
  <h4 class="subsection">6.742.3 サンプルコード</h4>
41298
41306
 
41299
- <pre class="verbatim">extern int array[]; /* W1077 */
41307
+ <pre class="verbatim">extern int a[]; /* W1077 */
41300
41308
  </pre>
41301
41309
 
41302
41310
  <h4 class="subsection">6.742.4 関連メッセージ</h4>
@@ -41305,7 +41313,7 @@ Up:&nbsp;<a rel="up" accesskey="u" href="#Messages">Messages</a>
41305
41313
 
41306
41314
  <h4 class="subsection">6.742.5 対応バージョン</h4>
41307
41315
 
41308
- <p>2.0.0 の予定
41316
+ <p>1.16.0
41309
41317
 
41310
41318
  <div class="node">
41311
41319
  <a name="W9001"></a>