adlint 1.4.0 → 1.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/ChangeLog +413 -5
- data/MANIFEST +6 -0
- data/NEWS +43 -4
- data/etc/mesg.d/en_US/messages.yml +1 -1
- data/etc/mesg.d/ja_JP/messages.yml +1 -1
- data/lib/adlint/c.rb +1 -0
- data/lib/adlint/c/enum.rb +52 -0
- data/lib/adlint/c/expr.rb +43 -102
- data/lib/adlint/c/interp.rb +1 -1
- data/lib/adlint/c/mediator.rb +1 -0
- data/lib/adlint/c/message.rb +831 -49
- data/lib/adlint/c/message_shima.rb +236 -0
- data/lib/adlint/c/metric.rb +9 -0
- data/lib/adlint/c/object.rb +37 -32
- data/lib/adlint/c/parser.rb +7 -7
- data/lib/adlint/c/parser.y +7 -7
- data/lib/adlint/c/phase.rb +21 -0
- data/lib/adlint/c/syntax.rb +11 -4
- data/lib/adlint/c/type.rb +1 -1
- data/lib/adlint/cpp.rb +1 -0
- data/lib/adlint/cpp/asm.rb +73 -0
- data/lib/adlint/cpp/message.rb +13 -0
- data/lib/adlint/cpp/message_shima.rb +36 -0
- data/lib/adlint/cpp/phase.rb +3 -0
- data/lib/adlint/cpp/source.rb +9 -0
- data/lib/adlint/version.rb +3 -3
- data/share/demo/Makefile +4 -0
- data/share/demo/bad_conv/bad_conv.c +12 -0
- data/share/demo/bad_enum/bad_enum.c +48 -2
- data/share/demo/bad_label/bad_label.c +26 -0
- data/share/demo/bad_macro/bad_macro.c +3 -0
- data/share/demo/implicit_conv/implicit_conv.c +1 -0
- data/share/demo/inline_asm/inline_asm.c +18 -0
- data/share/demo/invalid_call/invalid_call.c +5 -0
- data/share/demo/multi_decl/multi_decl_1.c +30 -0
- data/share/demo/overflow/overflow.c +3 -3
- data/share/demo/redundant_select/redundant_select.c +25 -0
- data/share/demo/reserved_ident/reserved_ident.c +98 -0
- 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 +234 -126
- data/share/doc/users_guide_en.texi +207 -98
- data/share/doc/users_guide_ja.html +247 -156
- data/share/doc/users_guide_ja.texi +221 -130
- data/share/sample/vim-7.3/adlint/xxd/adlint_traits.yml +1 -1
- metadata +8 -2
@@ -1,8 +1,8 @@
|
|
1
1
|
<html lang="ja">
|
2
2
|
<head>
|
3
|
-
<title>AdLint 1.
|
3
|
+
<title>AdLint 1.6.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.6.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.6.0 利用者ガイド</h1>
|
48
48
|
<div class="node">
|
49
49
|
<a name="Top"></a>
|
50
50
|
<p><hr>
|
@@ -3463,18 +3463,23 @@ Up: <a rel="up" accesskey="u" href="#Messages">Messages</a>
|
|
3463
3463
|
|
3464
3464
|
<h4 class="subsection">6.16.3 サンプルコード</h4>
|
3465
3465
|
|
3466
|
-
<pre class="verbatim">int
|
3467
|
-
|
3468
|
-
|
3469
|
-
|
3470
|
-
|
3471
|
-
|
3472
|
-
|
3473
|
-
|
3474
|
-
|
3475
|
-
|
3476
|
-
|
3477
|
-
|
3466
|
+
<pre class="verbatim">int foo(int i)
|
3467
|
+
{
|
3468
|
+
int j;
|
3469
|
+
|
3470
|
+
switch(i) { /* W0003 */
|
3471
|
+
case 1:
|
3472
|
+
j = 1;
|
3473
|
+
break;
|
3474
|
+
case 2:
|
3475
|
+
j = 2;
|
3476
|
+
break;
|
3477
|
+
case 3:
|
3478
|
+
j = 3;
|
3479
|
+
break;
|
3480
|
+
}
|
3481
|
+
|
3482
|
+
return j;
|
3478
3483
|
}
|
3479
3484
|
</pre>
|
3480
3485
|
|
@@ -5073,7 +5078,7 @@ Up: <a rel="up" accesskey="u" href="#Messages">Messages</a>
|
|
5073
5078
|
<h4 class="subsection">6.55.4 関連メッセージ</h4>
|
5074
5079
|
|
5075
5080
|
<ul>
|
5076
|
-
<li><a href="#W0062">W0062</a> __typeof__' は ISO C 標準規格ではサポートされていません。言語拡張と見なします。
|
5081
|
+
<li><a href="#W0062">W0062</a> `__typeof__' は ISO C 標準規格ではサポートされていません。言語拡張と見なします。
|
5077
5082
|
<li><a href="#W0063">W0063</a> `__alignof__' は ISO C 標準規格ではサポートされていません。言語拡張と見なします。
|
5078
5083
|
</ul>
|
5079
5084
|
|
@@ -27513,14 +27518,28 @@ Up: <a rel="up" accesskey="u" href="#Messages">Messages</a>
|
|
27513
27518
|
|
27514
27519
|
<h4 class="subsection">6.449.2 内容</h4>
|
27515
27520
|
|
27516
|
-
<p
|
27517
|
-
|
27518
|
-
<p>アセンブラコードは環境によって変わるため、複数の関数に点在させると、別の環境に移植するときの変更コストが大きくなります。
|
27521
|
+
<p>アセンブラコードは環境によって変わるため、複数の関数に点在させると、別の環境に移植するときの変更コストが大きくなります。
|
27519
27522
|
|
27520
27523
|
<h4 class="subsection">6.449.3 サンプルコード</h4>
|
27521
27524
|
|
27522
|
-
|
27523
|
-
|
27525
|
+
<pre class="verbatim">void foo(int arg1, int *arg2, int arg3)
|
27526
|
+
{
|
27527
|
+
asm("movl %ecx, %eax"); /* W0541 */
|
27528
|
+
__asm__("movl %ecx, (%eax)"); /* W0541 */
|
27529
|
+
|
27530
|
+
asm { /* W0541 */
|
27531
|
+
xorl eax, eax
|
27532
|
+
}
|
27533
|
+
|
27534
|
+
__asm__ volatile ( /* W0541 */
|
27535
|
+
"int $0x80"
|
27536
|
+
: "=a" (r)
|
27537
|
+
"+b" (arg1),
|
27538
|
+
"+c" (arg2),
|
27539
|
+
"+d" (arg3)
|
27540
|
+
: "a" (128)
|
27541
|
+
: "memory", "cc");
|
27542
|
+
}
|
27524
27543
|
</pre>
|
27525
27544
|
|
27526
27545
|
<h4 class="subsection">6.449.4 関連メッセージ</h4>
|
@@ -27529,7 +27548,7 @@ Up: <a rel="up" accesskey="u" href="#Messages">Messages</a>
|
|
27529
27548
|
|
27530
27549
|
<h4 class="subsection">6.449.5 対応バージョン</h4>
|
27531
27550
|
|
27532
|
-
<p>
|
27551
|
+
<p>1.6.0
|
27533
27552
|
|
27534
27553
|
<div class="node">
|
27535
27554
|
<a name="W0542"></a>
|
@@ -28591,9 +28610,7 @@ Up: <a rel="up" accesskey="u" href="#Messages">Messages</a>
|
|
28591
28610
|
|
28592
28611
|
<h4 class="subsection">6.475.2 内容</h4>
|
28593
28612
|
|
28594
|
-
<p
|
28595
|
-
|
28596
|
-
<p>このような変換指定子の動作は処理系定義のため移植性が低下します。
|
28613
|
+
<p>このような変換指定子の動作は処理系定義のため移植性が低下します。
|
28597
28614
|
|
28598
28615
|
<h4 class="subsection">6.475.3 サンプルコード</h4>
|
28599
28616
|
|
@@ -28607,7 +28624,7 @@ scanf("%[a-z]", &c); /* W0573 */
|
|
28607
28624
|
|
28608
28625
|
<h4 class="subsection">6.475.5 対応バージョン</h4>
|
28609
28626
|
|
28610
|
-
<p>
|
28627
|
+
<p>1.6.0
|
28611
28628
|
|
28612
28629
|
<div class="node">
|
28613
28630
|
<a name="W0574"></a>
|
@@ -28821,9 +28838,7 @@ Up: <a rel="up" accesskey="u" href="#Messages">Messages</a>
|
|
28821
28838
|
|
28822
28839
|
<h4 class="subsection">6.481.2 内容</h4>
|
28823
28840
|
|
28824
|
-
<p
|
28825
|
-
|
28826
|
-
<p>サンプルコードの関数では
|
28841
|
+
<p>サンプルコードの関数では
|
28827
28842
|
<code>int</code> 型変数 <code>a</code> の 2 乗した値が <code>int</code> 型の範囲に収まらないことを想定して
|
28828
28843
|
<code>long</code> 型変数 <code>b</code> へ代入しています。
|
28829
28844
|
しかし、環境によっては <code>a * a</code> の演算はいったん <code>int</code> 型として結果を出したあとに
|
@@ -28843,7 +28858,7 @@ Up: <a rel="up" accesskey="u" href="#Messages">Messages</a>
|
|
28843
28858
|
|
28844
28859
|
<h4 class="subsection">6.481.5 対応バージョン</h4>
|
28845
28860
|
|
28846
|
-
<p>
|
28861
|
+
<p>1.6.0
|
28847
28862
|
|
28848
28863
|
<div class="node">
|
28849
28864
|
<a name="W0580"></a>
|
@@ -33210,14 +33225,12 @@ Up: <a rel="up" accesskey="u" href="#Messages">Messages</a>
|
|
33210
33225
|
|
33211
33226
|
<h4 class="subsection">6.563.2 内容</h4>
|
33212
33227
|
|
33213
|
-
<p
|
33214
|
-
|
33215
|
-
<p>未定義の動作になります。従って、予期しない動作を引き起こす可能性があります。
|
33228
|
+
<p>未定義の動作になります。従って、予期しない動作を引き起こす可能性があります。
|
33216
33229
|
|
33217
33230
|
<h4 class="subsection">6.563.3 サンプルコード</h4>
|
33218
33231
|
|
33219
|
-
|
33220
|
-
|
33232
|
+
<pre class="verbatim">char c;
|
33233
|
+
scanf("%[z-a]", &c); /* W0685 */
|
33221
33234
|
</pre>
|
33222
33235
|
|
33223
33236
|
<h4 class="subsection">6.563.4 関連メッセージ</h4>
|
@@ -33258,7 +33271,7 @@ Up: <a rel="up" accesskey="u" href="#Messages">Messages</a>
|
|
33258
33271
|
|
33259
33272
|
<h4 class="subsection">6.563.5 対応バージョン</h4>
|
33260
33273
|
|
33261
|
-
<p>
|
33274
|
+
<p>1.6.0
|
33262
33275
|
|
33263
33276
|
<div class="node">
|
33264
33277
|
<a name="W0686"></a>
|
@@ -33279,14 +33292,12 @@ Up: <a rel="up" accesskey="u" href="#Messages">Messages</a>
|
|
33279
33292
|
|
33280
33293
|
<h4 class="subsection">6.564.2 内容</h4>
|
33281
33294
|
|
33282
|
-
<p
|
33283
|
-
|
33284
|
-
<p>未定義の動作になります。従って、予期しない動作を引き起こす可能性があります。
|
33295
|
+
<p>未定義の動作になります。従って、予期しない動作を引き起こす可能性があります。
|
33285
33296
|
|
33286
33297
|
<h4 class="subsection">6.564.3 サンプルコード</h4>
|
33287
33298
|
|
33288
|
-
|
33289
|
-
|
33299
|
+
<pre class="verbatim">char c;
|
33300
|
+
scanf("%[abcda]", &c); /* W0686 */
|
33290
33301
|
</pre>
|
33291
33302
|
|
33292
33303
|
<h4 class="subsection">6.564.4 関連メッセージ</h4>
|
@@ -33327,7 +33338,7 @@ Up: <a rel="up" accesskey="u" href="#Messages">Messages</a>
|
|
33327
33338
|
|
33328
33339
|
<h4 class="subsection">6.564.5 対応バージョン</h4>
|
33329
33340
|
|
33330
|
-
<p>
|
33341
|
+
<p>1.6.0
|
33331
33342
|
|
33332
33343
|
<div class="node">
|
33333
33344
|
<a name="W0687"></a>
|
@@ -34839,7 +34850,7 @@ enum Fruits { APPLE, BANANA, ORANGE };
|
|
34839
34850
|
void func(void)
|
34840
34851
|
{
|
34841
34852
|
enum Color c;
|
34842
|
-
|
34853
|
+
|
34843
34854
|
c = ORANGE; /* W0729 */
|
34844
34855
|
}
|
34845
34856
|
</pre>
|
@@ -37251,9 +37262,7 @@ Up: <a rel="up" accesskey="u" href="#Messages">Messages</a>
|
|
37251
37262
|
|
37252
37263
|
<h4 class="subsection">6.650.2 内容</h4>
|
37253
37264
|
|
37254
|
-
<p
|
37255
|
-
|
37256
|
-
<p>このような <code>switch</code> 文がプログラマの意図通りだとしたら、
|
37265
|
+
<p>このような <code>switch</code> 文がプログラマの意図通りだとしたら、
|
37257
37266
|
冗長な記述という意味で問題があります。
|
37258
37267
|
また、意図通りでないとしたら <code>case</code> 節の書き忘れが考えられますので、
|
37259
37268
|
動作上のバグが発生する可能性があります。
|
@@ -37261,8 +37270,31 @@ Up: <a rel="up" accesskey="u" href="#Messages">Messages</a>
|
|
37261
37270
|
|
37262
37271
|
<h4 class="subsection">6.650.3 サンプルコード</h4>
|
37263
37272
|
|
37264
|
-
|
37265
|
-
|
37273
|
+
<pre class="verbatim">int foo(const int i)
|
37274
|
+
{
|
37275
|
+
if (i > 5) {
|
37276
|
+
switch (i) { /* W0781 */
|
37277
|
+
case 0:
|
37278
|
+
return 1;
|
37279
|
+
case 5:
|
37280
|
+
return 2;
|
37281
|
+
default:
|
37282
|
+
return 3;
|
37283
|
+
}
|
37284
|
+
}
|
37285
|
+
|
37286
|
+
switch (i) { /* OK */
|
37287
|
+
case 0:
|
37288
|
+
return 4;
|
37289
|
+
default:
|
37290
|
+
switch (i) { /* W0781 */
|
37291
|
+
case 10:
|
37292
|
+
return 5;
|
37293
|
+
default:
|
37294
|
+
return 6;
|
37295
|
+
}
|
37296
|
+
}
|
37297
|
+
}
|
37266
37298
|
</pre>
|
37267
37299
|
|
37268
37300
|
<h4 class="subsection">6.650.4 関連メッセージ</h4>
|
@@ -37271,7 +37303,7 @@ Up: <a rel="up" accesskey="u" href="#Messages">Messages</a>
|
|
37271
37303
|
|
37272
37304
|
<h4 class="subsection">6.650.5 対応バージョン</h4>
|
37273
37305
|
|
37274
|
-
<p>
|
37306
|
+
<p>1.6.0
|
37275
37307
|
|
37276
37308
|
<div class="node">
|
37277
37309
|
<a name="W0783"></a>
|
@@ -37446,17 +37478,24 @@ Up: <a rel="up" accesskey="u" href="#Messages">Messages</a>
|
|
37446
37478
|
|
37447
37479
|
<h4 class="subsection">6.655.2 内容</h4>
|
37448
37480
|
|
37449
|
-
<p
|
37450
|
-
|
37451
|
-
<p>宣言が異なるスコープにある場合の動作は処理系定義になります。
|
37481
|
+
<p>宣言が異なるスコープにある場合の動作は処理系定義になります。
|
37452
37482
|
また、宣言が同じスコープにある場合は標準制約違反になります。
|
37453
37483
|
従って、移植性が低下します。
|
37454
37484
|
ただし、一方がもう一方の内側のスコープで宣言される場合は問題ありません。
|
37455
37485
|
|
37456
37486
|
<h4 class="subsection">6.655.3 サンプルコード</h4>
|
37457
37487
|
|
37458
|
-
|
37459
|
-
|
37488
|
+
<pre class="verbatim">void func1(void)
|
37489
|
+
{
|
37490
|
+
extern int num;
|
37491
|
+
extern void func3(void);
|
37492
|
+
}
|
37493
|
+
|
37494
|
+
void func2(void)
|
37495
|
+
{
|
37496
|
+
extern double num; /* W0787 */
|
37497
|
+
extern void func3(int); /* W0787 */
|
37498
|
+
}
|
37460
37499
|
</pre>
|
37461
37500
|
|
37462
37501
|
<h4 class="subsection">6.655.4 関連メッセージ</h4>
|
@@ -37468,7 +37507,7 @@ Up: <a rel="up" accesskey="u" href="#Messages">Messages</a>
|
|
37468
37507
|
|
37469
37508
|
<h4 class="subsection">6.655.5 対応バージョン</h4>
|
37470
37509
|
|
37471
|
-
<p>
|
37510
|
+
<p>1.6.0
|
37472
37511
|
|
37473
37512
|
<div class="node">
|
37474
37513
|
<a name="W0788"></a>
|
@@ -37489,17 +37528,20 @@ Up: <a rel="up" accesskey="u" href="#Messages">Messages</a>
|
|
37489
37528
|
|
37490
37529
|
<h4 class="subsection">6.656.2 内容</h4>
|
37491
37530
|
|
37492
|
-
<p
|
37493
|
-
|
37494
|
-
<p>宣言が異なるスコープにある場合の動作は処理系定義になります。
|
37531
|
+
<p>宣言が異なるスコープにある場合の動作は処理系定義になります。
|
37495
37532
|
また、宣言が同じスコープにある場合は標準制約違反になります。
|
37496
37533
|
従って、移植性が低下します。
|
37497
37534
|
ただし、一方がもう一方の内側のスコープで宣言される場合は問題ありません。
|
37498
37535
|
|
37499
37536
|
<h4 class="subsection">6.656.3 サンプルコード</h4>
|
37500
37537
|
|
37501
|
-
|
37502
|
-
|
37538
|
+
<pre class="verbatim">extern int func(void);
|
37539
|
+
|
37540
|
+
void func(void) /* W0788 */
|
37541
|
+
{
|
37542
|
+
typedef int num;
|
37543
|
+
double num; /* W0788 */
|
37544
|
+
}
|
37503
37545
|
</pre>
|
37504
37546
|
|
37505
37547
|
<h4 class="subsection">6.656.4 関連メッセージ</h4>
|
@@ -37511,7 +37553,7 @@ Up: <a rel="up" accesskey="u" href="#Messages">Messages</a>
|
|
37511
37553
|
|
37512
37554
|
<h4 class="subsection">6.656.5 対応バージョン</h4>
|
37513
37555
|
|
37514
|
-
<p>
|
37556
|
+
<p>1.6.0
|
37515
37557
|
|
37516
37558
|
<div class="node">
|
37517
37559
|
<a name="W0789"></a>
|
@@ -37532,17 +37574,21 @@ Up: <a rel="up" accesskey="u" href="#Messages">Messages</a>
|
|
37532
37574
|
|
37533
37575
|
<h4 class="subsection">6.657.2 内容</h4>
|
37534
37576
|
|
37535
|
-
<p
|
37536
|
-
|
37537
|
-
<p>宣言が異なるスコープにある場合の動作は処理系定義になります。
|
37577
|
+
<p>宣言が異なるスコープにある場合の動作は処理系定義になります。
|
37538
37578
|
また、宣言が同じスコープにある場合は標準制約違反になります。
|
37539
37579
|
従って、移植性が低下します。
|
37540
37580
|
ただし、一方がもう一方の内側のスコープで宣言される場合は問題ありません。
|
37541
37581
|
|
37542
37582
|
<h4 class="subsection">6.657.3 サンプルコード</h4>
|
37543
37583
|
|
37544
|
-
|
37545
|
-
|
37584
|
+
<pre class="verbatim">int num = 0;
|
37585
|
+
extern int func1(void);
|
37586
|
+
|
37587
|
+
void func2(void)
|
37588
|
+
{
|
37589
|
+
extern double num; /* W0789 */
|
37590
|
+
extern void func1(void); /* W0789 */
|
37591
|
+
}
|
37546
37592
|
</pre>
|
37547
37593
|
|
37548
37594
|
<h4 class="subsection">6.657.4 関連メッセージ</h4>
|
@@ -37554,7 +37600,7 @@ Up: <a rel="up" accesskey="u" href="#Messages">Messages</a>
|
|
37554
37600
|
|
37555
37601
|
<h4 class="subsection">6.657.5 対応バージョン</h4>
|
37556
37602
|
|
37557
|
-
<p>
|
37603
|
+
<p>1.6.0
|
37558
37604
|
|
37559
37605
|
<div class="node">
|
37560
37606
|
<a name="W0790"></a>
|
@@ -38293,15 +38339,12 @@ Up: <a rel="up" accesskey="u" href="#Messages">Messages</a>
|
|
38293
38339
|
|
38294
38340
|
<h4 class="subsection">6.675.2 内容</h4>
|
38295
38341
|
|
38296
|
-
<p
|
38297
|
-
|
38298
|
-
<p>ISO C90 で規定されている予約語を定義、再定義、定義解消することは未定義の動作になります。
|
38342
|
+
<p>ISO C90 で規定されている予約語を定義、再定義、定義解消することは未定義の動作になります。
|
38299
38343
|
したがって、予期しない動作を引き起こす可能性あります。
|
38300
38344
|
|
38301
38345
|
<h4 class="subsection">6.675.3 サンプルコード</h4>
|
38302
38346
|
|
38303
|
-
|
38304
|
-
<pre class="verbatim">/* 追記予定 */
|
38347
|
+
<pre class="verbatim">#undef __STDC_VERSION__ /* W0807 */
|
38305
38348
|
</pre>
|
38306
38349
|
|
38307
38350
|
<h4 class="subsection">6.675.4 関連メッセージ</h4>
|
@@ -38313,7 +38356,7 @@ Up: <a rel="up" accesskey="u" href="#Messages">Messages</a>
|
|
38313
38356
|
|
38314
38357
|
<h4 class="subsection">6.675.5 対応バージョン</h4>
|
38315
38358
|
|
38316
|
-
<p>
|
38359
|
+
<p>1.6.0
|
38317
38360
|
|
38318
38361
|
<div class="node">
|
38319
38362
|
<a name="W0808"></a>
|
@@ -38334,15 +38377,12 @@ Up: <a rel="up" accesskey="u" href="#Messages">Messages</a>
|
|
38334
38377
|
|
38335
38378
|
<h4 class="subsection">6.676.2 内容</h4>
|
38336
38379
|
|
38337
|
-
<p
|
38338
|
-
|
38339
|
-
<p>ISO C90 で規定されている予約語を定義、再定義、定義解消することは未定義の動作になります。
|
38380
|
+
<p>ISO C90 で規定されている予約語を定義、再定義、定義解消することは未定義の動作になります。
|
38340
38381
|
したがって、予期しない動作を引き起こす可能性あります。
|
38341
38382
|
|
38342
38383
|
<h4 class="subsection">6.676.3 サンプルコード</h4>
|
38343
38384
|
|
38344
|
-
|
38345
|
-
<pre class="verbatim">/* 追記予定 */
|
38385
|
+
<pre class="verbatim">#define __FILE__ "test.c" /* W0808 */
|
38346
38386
|
</pre>
|
38347
38387
|
|
38348
38388
|
<h4 class="subsection">6.676.4 関連メッセージ</h4>
|
@@ -38354,7 +38394,7 @@ Up: <a rel="up" accesskey="u" href="#Messages">Messages</a>
|
|
38354
38394
|
|
38355
38395
|
<h4 class="subsection">6.676.5 対応バージョン</h4>
|
38356
38396
|
|
38357
|
-
<p>
|
38397
|
+
<p>1.6.0
|
38358
38398
|
|
38359
38399
|
<div class="node">
|
38360
38400
|
<a name="W0809"></a>
|
@@ -38375,15 +38415,14 @@ Up: <a rel="up" accesskey="u" href="#Messages">Messages</a>
|
|
38375
38415
|
|
38376
38416
|
<h4 class="subsection">6.677.2 内容</h4>
|
38377
38417
|
|
38378
|
-
<p
|
38379
|
-
|
38380
|
-
<p>ISO C90 で規定されている予約語を再使用することは未定義の動作になります。
|
38418
|
+
<p>ISO C90 で規定されている予約語を再使用することは未定義の動作になります。
|
38381
38419
|
したがって、予期しない動作を引き起こす可能性あります。
|
38382
38420
|
|
38383
38421
|
<h4 class="subsection">6.677.3 サンプルコード</h4>
|
38384
38422
|
|
38385
|
-
|
38386
|
-
|
38423
|
+
<pre class="verbatim">extern int __value; /* W0809 */
|
38424
|
+
int _VAL = 10; /* W0809 */
|
38425
|
+
static void _func(void); /* W0809 */
|
38387
38426
|
</pre>
|
38388
38427
|
|
38389
38428
|
<h4 class="subsection">6.677.4 関連メッセージ</h4>
|
@@ -38392,7 +38431,7 @@ Up: <a rel="up" accesskey="u" href="#Messages">Messages</a>
|
|
38392
38431
|
|
38393
38432
|
<h4 class="subsection">6.677.5 対応バージョン</h4>
|
38394
38433
|
|
38395
|
-
<p>
|
38434
|
+
<p>1.6.0
|
38396
38435
|
|
38397
38436
|
<div class="node">
|
38398
38437
|
<a name="W0810"></a>
|
@@ -39114,14 +39153,26 @@ Up: <a rel="up" accesskey="u" href="#Messages">Messages</a>
|
|
39114
39153
|
|
39115
39154
|
<h4 class="subsection">6.696.2 内容</h4>
|
39116
39155
|
|
39117
|
-
<p
|
39118
|
-
|
39119
|
-
<p>同じ名前のラベルが、関数内で 2 回以上使われています。このような使い方は誤りです。
|
39156
|
+
<p>同じ名前のラベルが、関数内で 2 回以上使われています。このような使い方は誤りです。
|
39120
39157
|
|
39121
39158
|
<h4 class="subsection">6.696.3 サンプルコード</h4>
|
39122
39159
|
|
39123
|
-
|
39124
|
-
|
39160
|
+
<pre class="verbatim">void func(int a, int b)
|
39161
|
+
{
|
39162
|
+
if (a == 0) {
|
39163
|
+
int c = 0;
|
39164
|
+
RETRY:
|
39165
|
+
b = 10;
|
39166
|
+
}
|
39167
|
+
|
39168
|
+
if (b != 0) {
|
39169
|
+
goto RETRY;
|
39170
|
+
}
|
39171
|
+
RETRY: /* W1030 */
|
39172
|
+
b = 1;
|
39173
|
+
|
39174
|
+
...snip...
|
39175
|
+
}
|
39125
39176
|
</pre>
|
39126
39177
|
|
39127
39178
|
<h4 class="subsection">6.696.4 関連メッセージ</h4>
|
@@ -39130,7 +39181,7 @@ Up: <a rel="up" accesskey="u" href="#Messages">Messages</a>
|
|
39130
39181
|
|
39131
39182
|
<h4 class="subsection">6.696.5 対応バージョン</h4>
|
39132
39183
|
|
39133
|
-
<p>
|
39184
|
+
<p>1.6.0
|
39134
39185
|
|
39135
39186
|
<div class="node">
|
39136
39187
|
<a name="W1031"></a>
|
@@ -40015,14 +40066,18 @@ Up: <a rel="up" accesskey="u" href="#Messages">Messages</a>
|
|
40015
40066
|
|
40016
40067
|
<h4 class="subsection">6.718.2 内容</h4>
|
40017
40068
|
|
40018
|
-
<p
|
40019
|
-
|
40020
|
-
<p>非列挙型から列挙型への変換が生じています。
|
40069
|
+
<p>非列挙型から列挙型への変換が生じています。
|
40021
40070
|
|
40022
40071
|
<h4 class="subsection">6.718.3 サンプルコード</h4>
|
40023
40072
|
|
40024
|
-
|
40025
|
-
|
40073
|
+
<pre class="verbatim">enum Color { RED = 1, GREEN = 2, BLUE = 4 };
|
40074
|
+
|
40075
|
+
extern void func1(enum Color);
|
40076
|
+
|
40077
|
+
void func2(void)
|
40078
|
+
{
|
40079
|
+
func1(4); /* W1053 */
|
40080
|
+
}
|
40026
40081
|
</pre>
|
40027
40082
|
|
40028
40083
|
<h4 class="subsection">6.718.4 関連メッセージ</h4>
|
@@ -40044,7 +40099,7 @@ Up: <a rel="up" accesskey="u" href="#Messages">Messages</a>
|
|
40044
40099
|
|
40045
40100
|
<h4 class="subsection">6.718.5 対応バージョン</h4>
|
40046
40101
|
|
40047
|
-
<p>
|
40102
|
+
<p>1.6.0
|
40048
40103
|
|
40049
40104
|
<div class="node">
|
40050
40105
|
<a name="W1054"></a>
|
@@ -40065,14 +40120,18 @@ Up: <a rel="up" accesskey="u" href="#Messages">Messages</a>
|
|
40065
40120
|
|
40066
40121
|
<h4 class="subsection">6.719.2 内容</h4>
|
40067
40122
|
|
40068
|
-
<p
|
40069
|
-
|
40070
|
-
<p>非列挙型から列挙型への変換が生じています。
|
40123
|
+
<p>非列挙型から列挙型への変換が生じています。
|
40071
40124
|
|
40072
40125
|
<h4 class="subsection">6.719.3 サンプルコード</h4>
|
40073
40126
|
|
40074
|
-
|
40075
|
-
|
40127
|
+
<pre class="verbatim">enum Color { RED = 1, GREEN = 2, BLUE = 4 };
|
40128
|
+
|
40129
|
+
extern enum Color col;
|
40130
|
+
|
40131
|
+
void func2(void)
|
40132
|
+
{
|
40133
|
+
col = 4; /* W1054 */
|
40134
|
+
}
|
40076
40135
|
</pre>
|
40077
40136
|
|
40078
40137
|
<h4 class="subsection">6.719.4 関連メッセージ</h4>
|
@@ -40094,7 +40153,7 @@ Up: <a rel="up" accesskey="u" href="#Messages">Messages</a>
|
|
40094
40153
|
|
40095
40154
|
<h4 class="subsection">6.719.5 対応バージョン</h4>
|
40096
40155
|
|
40097
|
-
<p>
|
40156
|
+
<p>1.6.0
|
40098
40157
|
|
40099
40158
|
<div class="node">
|
40100
40159
|
<a name="W1055"></a>
|
@@ -40115,14 +40174,16 @@ Up: <a rel="up" accesskey="u" href="#Messages">Messages</a>
|
|
40115
40174
|
|
40116
40175
|
<h4 class="subsection">6.720.2 内容</h4>
|
40117
40176
|
|
40118
|
-
<p
|
40119
|
-
|
40120
|
-
<p>列挙型から非列挙型への変換が生じています。
|
40177
|
+
<p>列挙型から非列挙型への変換が生じています。
|
40121
40178
|
|
40122
40179
|
<h4 class="subsection">6.720.3 サンプルコード</h4>
|
40123
40180
|
|
40124
|
-
|
40125
|
-
|
40181
|
+
<pre class="verbatim">enum Color { RED = 1, GREEN = 2, BLUE = 4 };
|
40182
|
+
|
40183
|
+
enum Color func(void)
|
40184
|
+
{
|
40185
|
+
return 4; /* W1055 */
|
40186
|
+
}
|
40126
40187
|
</pre>
|
40127
40188
|
|
40128
40189
|
<h4 class="subsection">6.720.4 関連メッセージ</h4>
|
@@ -40144,7 +40205,7 @@ Up: <a rel="up" accesskey="u" href="#Messages">Messages</a>
|
|
40144
40205
|
|
40145
40206
|
<h4 class="subsection">6.720.5 対応バージョン</h4>
|
40146
40207
|
|
40147
|
-
<p>
|
40208
|
+
<p>1.6.0
|
40148
40209
|
|
40149
40210
|
<div class="node">
|
40150
40211
|
<a name="W1056"></a>
|
@@ -40165,13 +40226,19 @@ Up: <a rel="up" accesskey="u" href="#Messages">Messages</a>
|
|
40165
40226
|
|
40166
40227
|
<h4 class="subsection">6.721.2 内容</h4>
|
40167
40228
|
|
40168
|
-
<p
|
40169
|
-
|
40170
|
-
<p>列挙型から異なる列挙型への変換が生じています。
|
40229
|
+
<p>列挙型から異なる列挙型への変換が生じています。
|
40171
40230
|
|
40172
40231
|
<h4 class="subsection">6.721.3 サンプルコード</h4>
|
40173
40232
|
|
40174
|
-
<pre class="verbatim"
|
40233
|
+
<pre class="verbatim">enum Color { RED = 1, GREEN= 2, BLUE = 4 };
|
40234
|
+
enum Season { SPRING = 1, SUMMER, AUTUMN, WINTER };
|
40235
|
+
|
40236
|
+
extern void func1(enum Color);
|
40237
|
+
|
40238
|
+
void func2(enum Season ssn)
|
40239
|
+
{
|
40240
|
+
func1(ssn); /* W1056 */
|
40241
|
+
}
|
40175
40242
|
</pre>
|
40176
40243
|
|
40177
40244
|
<h4 class="subsection">6.721.4 関連メッセージ</h4>
|
@@ -40193,7 +40260,7 @@ Up: <a rel="up" accesskey="u" href="#Messages">Messages</a>
|
|
40193
40260
|
|
40194
40261
|
<h4 class="subsection">6.721.5 対応バージョン</h4>
|
40195
40262
|
|
40196
|
-
<p>
|
40263
|
+
<p>1.6.0
|
40197
40264
|
|
40198
40265
|
<div class="node">
|
40199
40266
|
<a name="W1057"></a>
|
@@ -40214,14 +40281,19 @@ Up: <a rel="up" accesskey="u" href="#Messages">Messages</a>
|
|
40214
40281
|
|
40215
40282
|
<h4 class="subsection">6.722.2 内容</h4>
|
40216
40283
|
|
40217
|
-
<p
|
40218
|
-
|
40219
|
-
<p>列挙型から異なる列挙型への変換が生じています。
|
40284
|
+
<p>列挙型から異なる列挙型への変換が生じています。
|
40220
40285
|
|
40221
40286
|
<h4 class="subsection">6.722.3 サンプルコード</h4>
|
40222
40287
|
|
40223
|
-
|
40224
|
-
|
40288
|
+
<pre class="verbatim">enum Color { RED = 1, GREEN = 2, BLUE = 4 };
|
40289
|
+
enum Season { SPRING = 1, SUMMER, AUTUMN, WINTER };
|
40290
|
+
|
40291
|
+
extern enum Color col;
|
40292
|
+
|
40293
|
+
void func(enum Season ssn)
|
40294
|
+
{
|
40295
|
+
col = ssn; /* W1057 */
|
40296
|
+
}
|
40225
40297
|
</pre>
|
40226
40298
|
|
40227
40299
|
<h4 class="subsection">6.722.4 関連メッセージ</h4>
|
@@ -40243,7 +40315,7 @@ Up: <a rel="up" accesskey="u" href="#Messages">Messages</a>
|
|
40243
40315
|
|
40244
40316
|
<h4 class="subsection">6.722.5 対応バージョン</h4>
|
40245
40317
|
|
40246
|
-
<p>
|
40318
|
+
<p>1.6.0
|
40247
40319
|
|
40248
40320
|
<div class="node">
|
40249
40321
|
<a name="W1058"></a>
|
@@ -40264,14 +40336,17 @@ Up: <a rel="up" accesskey="u" href="#Messages">Messages</a>
|
|
40264
40336
|
|
40265
40337
|
<h4 class="subsection">6.723.2 内容</h4>
|
40266
40338
|
|
40267
|
-
<p
|
40268
|
-
|
40269
|
-
<p>列挙型から異なる列挙型への変換が生じています。
|
40339
|
+
<p>列挙型から異なる列挙型への変換が生じています。
|
40270
40340
|
|
40271
40341
|
<h4 class="subsection">6.723.3 サンプルコード</h4>
|
40272
40342
|
|
40273
|
-
|
40274
|
-
|
40343
|
+
<pre class="verbatim">enum Color { RED = 1, GREEN = 2, BLUE = 4 };
|
40344
|
+
enum Season { SPRING = 1, SUMMER, AUTUMN, WINTER };
|
40345
|
+
|
40346
|
+
enum Color func(enum Season ssn)
|
40347
|
+
{
|
40348
|
+
return ssn; /* W1058 */
|
40349
|
+
}
|
40275
40350
|
</pre>
|
40276
40351
|
|
40277
40352
|
<h4 class="subsection">6.723.4 関連メッセージ</h4>
|
@@ -40293,7 +40368,7 @@ Up: <a rel="up" accesskey="u" href="#Messages">Messages</a>
|
|
40293
40368
|
|
40294
40369
|
<h4 class="subsection">6.723.5 対応バージョン</h4>
|
40295
40370
|
|
40296
|
-
<p>
|
40371
|
+
<p>1.6.0
|
40297
40372
|
|
40298
40373
|
<div class="node">
|
40299
40374
|
<a name="W1059"></a>
|
@@ -40314,14 +40389,18 @@ Up: <a rel="up" accesskey="u" href="#Messages">Messages</a>
|
|
40314
40389
|
|
40315
40390
|
<h4 class="subsection">6.724.2 内容</h4>
|
40316
40391
|
|
40317
|
-
<p
|
40318
|
-
|
40319
|
-
<p>列挙型から非列挙型への変換が生じています。
|
40392
|
+
<p>列挙型から非列挙型への変換が生じています。
|
40320
40393
|
|
40321
40394
|
<h4 class="subsection">6.724.3 サンプルコード</h4>
|
40322
40395
|
|
40323
|
-
|
40324
|
-
|
40396
|
+
<pre class="verbatim">enum Color { RED = 1, GREEN = 2, BLUE = 4 };
|
40397
|
+
|
40398
|
+
extern void func1(int num);
|
40399
|
+
|
40400
|
+
void func2(enum Color col)
|
40401
|
+
{
|
40402
|
+
func1(col); /* W1059 */
|
40403
|
+
}
|
40325
40404
|
</pre>
|
40326
40405
|
|
40327
40406
|
<h4 class="subsection">6.724.4 関連メッセージ</h4>
|
@@ -40343,7 +40422,7 @@ Up: <a rel="up" accesskey="u" href="#Messages">Messages</a>
|
|
40343
40422
|
|
40344
40423
|
<h4 class="subsection">6.724.5 対応バージョン</h4>
|
40345
40424
|
|
40346
|
-
<p>
|
40425
|
+
<p>1.6.0
|
40347
40426
|
|
40348
40427
|
<div class="node">
|
40349
40428
|
<a name="W1060"></a>
|
@@ -40364,14 +40443,16 @@ Up: <a rel="up" accesskey="u" href="#Messages">Messages</a>
|
|
40364
40443
|
|
40365
40444
|
<h4 class="subsection">6.725.2 内容</h4>
|
40366
40445
|
|
40367
|
-
<p
|
40368
|
-
|
40369
|
-
<p>非列挙型から列挙型への変換が生じています。
|
40446
|
+
<p>非列挙型から列挙型への変換が生じています。
|
40370
40447
|
|
40371
40448
|
<h4 class="subsection">6.725.3 サンプルコード</h4>
|
40372
40449
|
|
40373
|
-
|
40374
|
-
|
40450
|
+
<pre class="verbatim">enum Color { RED = 1, GREEN = 2, BLUE = 4 };
|
40451
|
+
|
40452
|
+
int func2(enum Color col)
|
40453
|
+
{
|
40454
|
+
return col; /* W1060 */
|
40455
|
+
}
|
40375
40456
|
</pre>
|
40376
40457
|
|
40377
40458
|
<h4 class="subsection">6.725.4 関連メッセージ</h4>
|
@@ -40393,7 +40474,7 @@ Up: <a rel="up" accesskey="u" href="#Messages">Messages</a>
|
|
40393
40474
|
|
40394
40475
|
<h4 class="subsection">6.725.5 対応バージョン</h4>
|
40395
40476
|
|
40396
|
-
<p>
|
40477
|
+
<p>1.6.0
|
40397
40478
|
|
40398
40479
|
<div class="node">
|
40399
40480
|
<a name="W1061"></a>
|
@@ -40414,14 +40495,18 @@ Up: <a rel="up" accesskey="u" href="#Messages">Messages</a>
|
|
40414
40495
|
|
40415
40496
|
<h4 class="subsection">6.726.2 内容</h4>
|
40416
40497
|
|
40417
|
-
<p
|
40418
|
-
|
40419
|
-
<p>非列挙型から列挙型への変換が生じています。
|
40498
|
+
<p>非列挙型から列挙型への変換が生じています。
|
40420
40499
|
|
40421
40500
|
<h4 class="subsection">6.726.3 サンプルコード</h4>
|
40422
40501
|
|
40423
|
-
|
40424
|
-
|
40502
|
+
<pre class="verbatim">enum Color { RED = 1, GREEN = 2, BLUE = 4 };
|
40503
|
+
|
40504
|
+
extern void func1(enum Color);
|
40505
|
+
|
40506
|
+
void func2(int num)
|
40507
|
+
{
|
40508
|
+
func1(num); /* W1061 */
|
40509
|
+
}
|
40425
40510
|
</pre>
|
40426
40511
|
|
40427
40512
|
<h4 class="subsection">6.726.4 関連メッセージ</h4>
|
@@ -40443,7 +40528,7 @@ Up: <a rel="up" accesskey="u" href="#Messages">Messages</a>
|
|
40443
40528
|
|
40444
40529
|
<h4 class="subsection">6.726.5 対応バージョン</h4>
|
40445
40530
|
|
40446
|
-
<p>
|
40531
|
+
<p>1.6.0
|
40447
40532
|
|
40448
40533
|
<div class="node">
|
40449
40534
|
<a name="W1062"></a>
|
@@ -40464,14 +40549,18 @@ Up: <a rel="up" accesskey="u" href="#Messages">Messages</a>
|
|
40464
40549
|
|
40465
40550
|
<h4 class="subsection">6.727.2 内容</h4>
|
40466
40551
|
|
40467
|
-
<p
|
40468
|
-
|
40469
|
-
<p>非列挙型から列挙型への変換が生じています。
|
40552
|
+
<p>非列挙型から列挙型への変換が生じています。
|
40470
40553
|
|
40471
40554
|
<h4 class="subsection">6.727.3 サンプルコード</h4>
|
40472
40555
|
|
40473
|
-
|
40474
|
-
|
40556
|
+
<pre class="verbatim">enum Color { RED = 1, GREEN = 2, BLUE = 4 };
|
40557
|
+
|
40558
|
+
extern enum Color col;
|
40559
|
+
|
40560
|
+
void func(int num)
|
40561
|
+
{
|
40562
|
+
col = num + 1; /* W1062 */
|
40563
|
+
}
|
40475
40564
|
</pre>
|
40476
40565
|
|
40477
40566
|
<h4 class="subsection">6.727.4 関連メッセージ</h4>
|
@@ -40493,7 +40582,7 @@ Up: <a rel="up" accesskey="u" href="#Messages">Messages</a>
|
|
40493
40582
|
|
40494
40583
|
<h4 class="subsection">6.727.5 対応バージョン</h4>
|
40495
40584
|
|
40496
|
-
<p>
|
40585
|
+
<p>1.6.0
|
40497
40586
|
|
40498
40587
|
<div class="node">
|
40499
40588
|
<a name="W1063"></a>
|
@@ -40514,14 +40603,16 @@ Up: <a rel="up" accesskey="u" href="#Messages">Messages</a>
|
|
40514
40603
|
|
40515
40604
|
<h4 class="subsection">6.728.2 内容</h4>
|
40516
40605
|
|
40517
|
-
<p
|
40518
|
-
|
40519
|
-
<p>非列挙型から列挙型への変換が生じています。
|
40606
|
+
<p>非列挙型から列挙型への変換が生じています。
|
40520
40607
|
|
40521
40608
|
<h4 class="subsection">6.728.3 サンプルコード</h4>
|
40522
40609
|
|
40523
|
-
|
40524
|
-
|
40610
|
+
<pre class="verbatim">enum Color { RED = 1, GREEN = 2, BLUE = 4 };
|
40611
|
+
|
40612
|
+
enum Color func(int num)
|
40613
|
+
{
|
40614
|
+
return num / 2; /* W1063 */
|
40615
|
+
}
|
40525
40616
|
</pre>
|
40526
40617
|
|
40527
40618
|
<h4 class="subsection">6.728.4 関連メッセージ</h4>
|
@@ -40543,7 +40634,7 @@ Up: <a rel="up" accesskey="u" href="#Messages">Messages</a>
|
|
40543
40634
|
|
40544
40635
|
<h4 class="subsection">6.728.5 対応バージョン</h4>
|
40545
40636
|
|
40546
|
-
<p>
|
40637
|
+
<p>1.6.0
|
40547
40638
|
|
40548
40639
|
<div class="node">
|
40549
40640
|
<a name="W1064"></a>
|