adlint 1.14.0 → 1.16.0
Sign up to get free protection for your applications and to get access to all the features.
- data/ChangeLog +265 -0
- data/MANIFEST +15 -0
- data/NEWS +30 -4
- data/etc/conf.d/noarch/adlint_all_bat.erb +1 -1
- data/etc/mesg.d/en_US/messages.yml +3 -3
- data/etc/mesg.d/ja_JP/messages.yml +3 -3
- data/features/message_detection/W0001.feature +2 -0
- data/features/message_detection/W0007.feature +8 -0
- data/features/message_detection/W0010.feature +4 -1
- data/features/message_detection/W0013.feature +8 -0
- data/features/message_detection/W0093.feature +3 -0
- data/features/message_detection/W0104.feature +7 -0
- data/features/message_detection/W0643.feature +80 -0
- data/features/message_detection/W0646.feature +115 -0
- data/features/message_detection/W0691.feature +100 -0
- data/features/message_detection/W0692.feature +32 -0
- data/features/message_detection/W0694.feature +128 -0
- data/features/message_detection/W0716.feature +3 -0
- data/features/message_detection/W0717.feature +3 -0
- data/features/message_detection/W0718.feature +3 -0
- data/features/message_detection/W0723.feature +2 -0
- data/features/message_detection/W0732.feature +3 -0
- data/features/message_detection/W0733.feature +3 -0
- data/features/message_detection/W0734.feature +8 -0
- data/features/message_detection/W0735.feature +8 -0
- data/features/message_detection/W0805.feature +92 -0
- data/features/message_detection/W0811.feature +79 -0
- data/features/message_detection/W1031.feature +7 -0
- data/features/message_detection/W1040.feature +89 -0
- data/features/message_detection/W1041.feature +15 -0
- data/features/message_detection/W1046.feature +60 -0
- data/features/message_detection/W1052.feature +3 -0
- data/features/message_detection/W1066.feature +3 -0
- data/features/message_detection/W1067.feature +3 -0
- data/features/message_detection/W1068.feature +3 -0
- data/features/message_detection/W1069.feature +5 -0
- data/features/message_detection/W1070.feature +6 -0
- data/features/message_detection/W1072.feature +1 -0
- data/features/message_detection/W1073.feature +145 -0
- data/features/message_detection/W1074.feature +139 -0
- data/features/message_detection/W1075.feature +86 -0
- data/features/message_detection/W1076.feature +66 -0
- data/features/message_detection/W1077.feature +105 -0
- data/features/message_detection/W9003.feature +4 -0
- data/lib/adlint/c/ctrlexpr.rb +3 -0
- data/lib/adlint/c/interp.rb +11 -5
- data/lib/adlint/c/lexer.rb +14 -3
- data/lib/adlint/c/message.rb +192 -0
- data/lib/adlint/c/parser.rb +19 -3
- data/lib/adlint/c/parser.y +18 -2
- data/lib/adlint/c/phase.rb +19 -6
- data/lib/adlint/c/syntax.rb +6 -0
- data/lib/adlint/c/type.rb +5 -1
- data/lib/adlint/cpp/constexpr.rb +3 -3
- data/lib/adlint/cpp/constexpr.y +3 -3
- data/lib/adlint/cpp/eval.rb +60 -86
- data/lib/adlint/cpp/lexer.rb +82 -28
- data/lib/adlint/cpp/macro.rb +64 -35
- data/lib/adlint/cpp/message.rb +137 -4
- data/lib/adlint/cpp/phase.rb +8 -0
- data/lib/adlint/cpp/syntax.rb +25 -0
- data/lib/adlint/lang.rb +2 -1
- data/lib/adlint/version.rb +2 -2
- data/share/doc/developers_guide_ja.html +3 -3
- data/share/doc/developers_guide_ja.texi +1 -1
- data/share/doc/users_guide_en.html +102 -85
- data/share/doc/users_guide_en.texi +85 -69
- data/share/doc/users_guide_ja.html +102 -94
- data/share/doc/users_guide_ja.texi +85 -77
- metadata +17 -2
@@ -1,8 +1,8 @@
|
|
1
1
|
<html lang="ja">
|
2
2
|
<head>
|
3
|
-
<title>AdLint 1.
|
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.
|
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.
|
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: <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: <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>:
|
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: <a rel="up" accesskey="u" href="#Messages">Messages</a>
|
|
30807
30807
|
|
30808
30808
|
<h4 class="subsection">6.525.2 内容</h4>
|
30809
30809
|
|
30810
|
-
<p
|
30811
|
-
|
30812
|
-
<p>未定義の動作のため、予期しない動作を引き起こす可能性があります。
|
30810
|
+
<p>未定義の動作のため、予期しない動作を引き起こす可能性があります。
|
30813
30811
|
|
30814
30812
|
<h4 class="subsection">6.525.3 サンプルコード</h4>
|
30815
30813
|
|
30816
|
-
|
30817
|
-
|
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: <a rel="up" accesskey="u" href="#Messages">Messages</a>
|
|
30828
30826
|
|
30829
30827
|
<h4 class="subsection">6.525.5 対応バージョン</h4>
|
30830
30828
|
|
30831
|
-
<p>
|
30829
|
+
<p>1.16.0
|
30832
30830
|
|
30833
30831
|
<div class="node">
|
30834
30832
|
<a name="W0644"></a>
|
@@ -30936,14 +30934,11 @@ Up: <a rel="up" accesskey="u" href="#Messages">Messages</a>
|
|
30936
30934
|
|
30937
30935
|
<h4 class="subsection">6.528.2 内容</h4>
|
30938
30936
|
|
30939
|
-
<p
|
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: <a rel="up" accesskey="u" href="#Messages">Messages</a>
|
|
30957
30952
|
|
30958
30953
|
<h4 class="subsection">6.528.5 対応バージョン</h4>
|
30959
30954
|
|
30960
|
-
<p>
|
30955
|
+
<p>1.16.0
|
30961
30956
|
|
30962
30957
|
<div class="node">
|
30963
30958
|
<a name="W0649"></a>
|
@@ -33542,14 +33537,13 @@ Up: <a rel="up" accesskey="u" href="#Messages">Messages</a>
|
|
33542
33537
|
|
33543
33538
|
<h4 class="subsection">6.569.2 内容</h4>
|
33544
33539
|
|
33545
|
-
<p
|
33546
|
-
|
33547
|
-
<p>このような記述は、未定義の動作のため、予期しない動作を引き起こす可能性があります。
|
33540
|
+
<p>このような記述は、未定義の動作のため、予期しない動作を引き起こす可能性があります。
|
33548
33541
|
|
33549
33542
|
<h4 class="subsection">6.569.3 サンプルコード</h4>
|
33550
33543
|
|
33551
|
-
|
33552
|
-
|
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: <a rel="up" accesskey="u" href="#Messages">Messages</a>
|
|
33563
33557
|
|
33564
33558
|
<h4 class="subsection">6.569.5 対応バージョン</h4>
|
33565
33559
|
|
33566
|
-
<p>
|
33560
|
+
<p>1.16.0
|
33567
33561
|
|
33568
33562
|
<div class="node">
|
33569
33563
|
<a name="W0692"></a>
|
@@ -33580,18 +33574,17 @@ Up: <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
|
33588
|
-
|
33589
|
-
<p>このような記述は、言語制約違反になりますので、移植性を低下させます。
|
33581
|
+
<p>このような記述は、言語制約違反になりますので、移植性を低下させます。
|
33590
33582
|
|
33591
33583
|
<h4 class="subsection">6.570.3 サンプルコード</h4>
|
33592
33584
|
|
33593
|
-
|
33594
|
-
|
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: <a rel="up" accesskey="u" href="#Messages">Messages</a>
|
|
33602
33595
|
|
33603
33596
|
<h4 class="subsection">6.570.5 対応バージョン</h4>
|
33604
33597
|
|
33605
|
-
<p>
|
33598
|
+
<p>1.16.0
|
33606
33599
|
|
33607
33600
|
<div class="node">
|
33608
33601
|
<a name="W0693"></a>
|
@@ -33635,7 +33628,7 @@ Up: <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: <a rel="up" accesskey="u" href="#Messages">Messages</a>
|
|
33661
33654
|
|
33662
33655
|
<h4 class="subsection">6.572.2 内容</h4>
|
33663
33656
|
|
33664
|
-
<p><
|
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
|
-
|
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: <a rel="up" accesskey="u" href="#Messages">Messages</a>
|
|
33677
33673
|
|
33678
33674
|
<h4 class="subsection">6.572.5 対応バージョン</h4>
|
33679
33675
|
|
33680
|
-
<p>
|
33676
|
+
<p>1.16.0
|
33681
33677
|
|
33682
33678
|
<div class="node">
|
33683
33679
|
<a name="W0695"></a>
|
@@ -38306,13 +38302,13 @@ Up: <a rel="up" accesskey="u" href="#Messages">Messages</a>
|
|
38306
38302
|
|
38307
38303
|
<h4 class="subsection">6.673.2 内容</h4>
|
38308
38304
|
|
38309
|
-
<p
|
38310
|
-
|
38311
|
-
<p>このような記述は未定義の動作になります。したがって、予期しない動作を引き起こす可能性があります。
|
38305
|
+
<p>このような記述は未定義の動作になります。したがって、予期しない動作を引き起こす可能性があります。
|
38312
38306
|
|
38313
38307
|
<h4 class="subsection">6.673.3 サンプルコード</h4>
|
38314
38308
|
|
38315
|
-
<pre class="verbatim">#if defined
|
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: <a rel="up" accesskey="u" href="#Messages">Messages</a>
|
|
38323
38319
|
|
38324
38320
|
<h4 class="subsection">6.673.5 対応バージョン</h4>
|
38325
38321
|
|
38326
|
-
<p>
|
38322
|
+
<p>1.16.0
|
38327
38323
|
|
38328
38324
|
<div class="node">
|
38329
38325
|
<a name="W0806"></a>
|
@@ -38548,14 +38544,15 @@ Up: <a rel="up" accesskey="u" href="#Messages">Messages</a>
|
|
38548
38544
|
|
38549
38545
|
<h4 class="subsection">6.679.2 内容</h4>
|
38550
38546
|
|
38551
|
-
<p
|
38552
|
-
|
38553
|
-
<p>このような記述は、未定義の動作のため、予期しない動作を引き起こす可能性があります。
|
38547
|
+
<p>このような記述は、未定義の動作のため、予期しない動作を引き起こす可能性があります。
|
38554
38548
|
|
38555
38549
|
<h4 class="subsection">6.679.3 サンプルコード</h4>
|
38556
38550
|
|
38557
|
-
|
38558
|
-
|
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: <a rel="up" accesskey="u" href="#Messages">Messages</a>
|
|
38564
38561
|
|
38565
38562
|
<h4 class="subsection">6.679.5 対応バージョン</h4>
|
38566
38563
|
|
38567
|
-
<p>
|
38564
|
+
<p>1.16.0
|
38568
38565
|
|
38569
38566
|
<div class="node">
|
38570
38567
|
<a name="W0827"></a>
|
@@ -39582,26 +39579,33 @@ Up: <a rel="up" accesskey="u" href="#Messages">Messages</a>
|
|
39582
39579
|
|
39583
39580
|
<h4 class="subsection">6.705.2 内容</h4>
|
39584
39581
|
|
39585
|
-
<p
|
39586
|
-
|
39587
|
-
<p>このような前処理指令の記述は、ISO C90 標準規格ではサポートされていません。
|
39582
|
+
<p>このような前処理指令の記述は、ISO C90 標準規格ではサポートされていません。
|
39588
39583
|
|
39589
39584
|
<h4 class="subsection">6.705.3 サンプルコード</h4>
|
39590
39585
|
|
39591
|
-
|
39592
|
-
|
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>
|
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>
|
39608
|
+
<p>1.16.0
|
39605
39609
|
|
39606
39610
|
<div class="node">
|
39607
39611
|
<a name="W1041"></a>
|
@@ -39618,18 +39622,15 @@ Up: <a rel="up" accesskey="u" href="#Messages">Messages</a>
|
|
39618
39622
|
|
39619
39623
|
<h4 class="subsection">6.706.1 メッセージ本文</h4>
|
39620
39624
|
|
39621
|
-
<p
|
39625
|
+
<p>`%s' は、ISO C 標準規格の正式な前処理指令ではありません。
|
39622
39626
|
|
39623
39627
|
<h4 class="subsection">6.706.2 内容</h4>
|
39624
39628
|
|
39625
|
-
<p
|
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: <a rel="up" accesskey="u" href="#Messages">Messages</a>
|
|
39641
39642
|
|
39642
39643
|
<h4 class="subsection">6.706.5 対応バージョン</h4>
|
39643
39644
|
|
39644
|
-
<p>
|
39645
|
+
<p>1.16.0
|
39645
39646
|
|
39646
39647
|
<div class="node">
|
39647
39648
|
<a name="W1042"></a>
|
@@ -39676,7 +39677,7 @@ Up: <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>
|
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: <a rel="up" accesskey="u" href="#Messages">Messages</a>
|
|
39822
39823
|
|
39823
39824
|
<h4 class="subsection">6.711.2 内容</h4>
|
39824
39825
|
|
39825
|
-
<p
|
39826
|
-
|
39827
|
-
<p>ISO C 規格ではバックスラッシュ文字の後に直接改行文字が続くべきであると規定しています。
|
39826
|
+
<p>ISO C 規格ではバックスラッシュ文字の後に直接改行文字が続くべきであると規定しています。
|
39828
39827
|
|
39829
39828
|
<h4 class="subsection">6.711.3 サンプルコード</h4>
|
39830
39829
|
|
39831
|
-
|
39832
|
-
|
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: <a rel="up" accesskey="u" href="#Messages">Messages</a>
|
|
39838
39839
|
|
39839
39840
|
<h4 class="subsection">6.711.5 対応バージョン</h4>
|
39840
39841
|
|
39841
|
-
<p>
|
39842
|
+
<p>1.16.0
|
39842
39843
|
|
39843
39844
|
<div class="node">
|
39844
39845
|
<a name="W1047"></a>
|
@@ -41136,14 +41137,20 @@ Up: <a rel="up" accesskey="u" href="#Messages">Messages</a>
|
|
41136
41137
|
|
41137
41138
|
<h4 class="subsection">6.738.2 内容</h4>
|
41138
41139
|
|
41139
|
-
<p
|
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 < 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: <a rel="up" accesskey="u" href="#Messages">Messages</a>
|
|
41152
41159
|
|
41153
41160
|
<h4 class="subsection">6.738.5 対応バージョン</h4>
|
41154
41161
|
|
41155
|
-
<p>
|
41162
|
+
<p>1.16.0
|
41156
41163
|
|
41157
41164
|
<div class="node">
|
41158
41165
|
<a name="W1074"></a>
|
@@ -41173,14 +41180,22 @@ Up: <a rel="up" accesskey="u" href="#Messages">Messages</a>
|
|
41173
41180
|
|
41174
41181
|
<h4 class="subsection">6.739.2 内容</h4>
|
41175
41182
|
|
41176
|
-
<p
|
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
|
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: <a rel="up" accesskey="u" href="#Messages">Messages</a>
|
|
41189
41204
|
|
41190
41205
|
<h4 class="subsection">6.739.5 対応バージョン</h4>
|
41191
41206
|
|
41192
|
-
<p>
|
41207
|
+
<p>1.16.0
|
41193
41208
|
|
41194
41209
|
<div class="node">
|
41195
41210
|
<a name="W1075"></a>
|
@@ -41210,9 +41225,7 @@ Up: <a rel="up" accesskey="u" href="#Messages">Messages</a>
|
|
41210
41225
|
|
41211
41226
|
<h4 class="subsection">6.740.2 内容</h4>
|
41212
41227
|
|
41213
|
-
<p
|
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>
|
41245
|
+
<p>1.16.0
|
41233
41246
|
|
41234
41247
|
<div class="node">
|
41235
41248
|
<a name="W1076"></a>
|
@@ -41250,16 +41263,13 @@ Up: <a rel="up" accesskey="u" href="#Messages">Messages</a>
|
|
41250
41263
|
|
41251
41264
|
<h4 class="subsection">6.741.2 内容</h4>
|
41252
41265
|
|
41253
|
-
<p
|
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: <a rel="up" accesskey="u" href="#Messages">Messages</a>
|
|
41269
41279
|
|
41270
41280
|
<h4 class="subsection">6.741.5 対応バージョン</h4>
|
41271
41281
|
|
41272
|
-
<p>
|
41282
|
+
<p>1.16.0
|
41273
41283
|
|
41274
41284
|
<div class="node">
|
41275
41285
|
<a name="W1077"></a>
|
@@ -41290,13 +41300,11 @@ Up: <a rel="up" accesskey="u" href="#Messages">Messages</a>
|
|
41290
41300
|
|
41291
41301
|
<h4 class="subsection">6.742.2 内容</h4>
|
41292
41302
|
|
41293
|
-
<p
|
41294
|
-
|
41295
|
-
<p>この配列は、サイズが明示されていません。
|
41303
|
+
<p>この配列は、サイズが明示されていません。
|
41296
41304
|
|
41297
41305
|
<h4 class="subsection">6.742.3 サンプルコード</h4>
|
41298
41306
|
|
41299
|
-
<pre class="verbatim">extern int
|
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: <a rel="up" accesskey="u" href="#Messages">Messages</a>
|
|
41305
41313
|
|
41306
41314
|
<h4 class="subsection">6.742.5 対応バージョン</h4>
|
41307
41315
|
|
41308
|
-
<p>
|
41316
|
+
<p>1.16.0
|
41309
41317
|
|
41310
41318
|
<div class="node">
|
41311
41319
|
<a name="W9001"></a>
|