adlint 1.2.0 → 1.4.0
Sign up to get free protection for your applications and to get access to all the features.
- data/AUTHORS +1 -1
- data/ChangeLog +272 -0
- data/MANIFEST +4 -0
- data/NEWS +39 -4
- data/etc/mesg.d/en_US/messages.yml +2 -2
- data/etc/mesg.d/ja_JP/messages.yml +2 -2
- data/lib/adlint/c.rb +1 -0
- data/lib/adlint/c/expr.rb +20 -26
- data/lib/adlint/c/interp.rb +137 -45
- data/lib/adlint/c/mediator.rb +4 -0
- data/lib/adlint/c/message.rb +479 -16
- data/lib/adlint/c/message_shima.rb +151 -0
- data/lib/adlint/c/phase.rb +23 -0
- data/lib/adlint/c/resolver.rb +1 -0
- data/lib/adlint/c/syntax.rb +93 -89
- data/lib/adlint/c/type.rb +70 -0
- data/lib/adlint/cpp/eval.rb +12 -1
- data/lib/adlint/cpp/message_shima.rb +51 -0
- data/lib/adlint/cpp/phase.rb +3 -0
- data/lib/adlint/version.rb +2 -2
- data/share/demo/Makefile +3 -0
- data/share/demo/bad_enum/bad_enum.c +27 -0
- data/share/demo/bad_macro/bad_macro.c +4 -0
- data/share/demo/bad_return/bad_return.c +83 -0
- data/share/demo/incomplete_type/incomplete_type.c +3 -0
- data/share/demo/overflow/overflow.c +59 -5
- data/share/demo/union_type/union_type.c +13 -0
- data/share/demo/unnamed_member/unnamed_member.c +13 -0
- data/share/demo/various_fundef/various_fundef.c +43 -0
- data/share/demo/wrap_around/wrap_around.c +95 -21
- 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 +222 -149
- data/share/doc/users_guide_en.texi +194 -120
- data/share/doc/users_guide_ja.html +224 -167
- data/share/doc/users_guide_ja.texi +194 -137
- metadata +6 -2
@@ -1,8 +1,8 @@
|
|
1
1
|
<html lang="ja">
|
2
2
|
<head>
|
3
|
-
<title>AdLint 1.
|
3
|
+
<title>AdLint 1.4.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.4.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.4.0 利用者ガイド</h1>
|
48
48
|
<div class="node">
|
49
49
|
<a name="Top"></a>
|
50
50
|
<p><hr>
|
@@ -2749,7 +2749,7 @@ Up: <a rel="up" accesskey="u" href="#Top">Top</a>
|
|
2749
2749
|
<li><a href="#W0722">W0722</a>: 符号付きの式の値がオーバーフローしています。
|
2750
2750
|
<li><a href="#W0723">W0723</a>: 符号付きの式の値がオーバーフローする可能性があります。
|
2751
2751
|
<li><a href="#W0724">W0724</a>: 条件付きインクルード指令によって、認識できない前処理指令が無視されました。
|
2752
|
-
<li><a href="#W0726">W0726</a>: 修飾子付き void 型の戻り値が定義された関数 `%s()' の中で、`return
|
2752
|
+
<li><a href="#W0726">W0726</a>: 修飾子付き void 型の戻り値が定義された関数 `%s()' の中で、`return 式;' が見つかりました。
|
2753
2753
|
<li><a href="#W0727">W0727</a>: 列挙型にない値を使っています。
|
2754
2754
|
<li><a href="#W0728">W0728</a>: 列挙型の関数仮引数に、別の列挙型の列挙定数が実引数として渡されています。
|
2755
2755
|
<li><a href="#W0729">W0729</a>: 列挙型のオブジェクトに、別の列挙型の列挙定数が代入されています。
|
@@ -6015,7 +6015,7 @@ Up: <a rel="up" accesskey="u" href="#Messages">Messages</a>
|
|
6015
6015
|
|
6016
6016
|
<h4 class="subsection">6.80.4 関連メッセージ</h4>
|
6017
6017
|
|
6018
|
-
<p
|
6018
|
+
<p>なし。
|
6019
6019
|
|
6020
6020
|
<h4 class="subsection">6.80.5 対応バージョン</h4>
|
6021
6021
|
|
@@ -29587,14 +29587,14 @@ Up: <a rel="up" accesskey="u" href="#Messages">Messages</a>
|
|
29587
29587
|
|
29588
29588
|
<h4 class="subsection">6.497.2 内容</h4>
|
29589
29589
|
|
29590
|
-
<p
|
29591
|
-
|
29592
|
-
<p>浮動小数点型のメンバ変数に対して共用体を使ってビット単位でアクセスする場合の動作はコンパイラ依存なので、移植性を低下させます。
|
29590
|
+
<p>浮動小数点型のメンバ変数に対して共用体を使ってビット単位でアクセスする場合の動作はコンパイラ依存なので、移植性を低下させます。
|
29593
29591
|
|
29594
29592
|
<h4 class="subsection">6.497.3 サンプルコード</h4>
|
29595
29593
|
|
29596
|
-
|
29597
|
-
|
29594
|
+
<pre class="verbatim">union UNI { /* W0606 */
|
29595
|
+
float a;
|
29596
|
+
int b;
|
29597
|
+
};
|
29598
29598
|
</pre>
|
29599
29599
|
|
29600
29600
|
<h4 class="subsection">6.497.4 関連メッセージ</h4>
|
@@ -29603,7 +29603,7 @@ Up: <a rel="up" accesskey="u" href="#Messages">Messages</a>
|
|
29603
29603
|
|
29604
29604
|
<h4 class="subsection">6.497.5 対応バージョン</h4>
|
29605
29605
|
|
29606
|
-
<p>
|
29606
|
+
<p>1.4.0
|
29607
29607
|
|
29608
29608
|
<div class="node">
|
29609
29609
|
<a name="W0607"></a>
|
@@ -33348,9 +33348,7 @@ Up: <a rel="up" accesskey="u" href="#Messages">Messages</a>
|
|
33348
33348
|
|
33349
33349
|
<h4 class="subsection">6.565.2 内容</h4>
|
33350
33350
|
|
33351
|
-
<p
|
33352
|
-
|
33353
|
-
<p>このような記述は、未定義の動作のため、予期しない動作を引き起こす可能性があります。
|
33351
|
+
<p>このような記述は、未定義の動作のため、予期しない動作を引き起こす可能性があります。
|
33354
33352
|
|
33355
33353
|
<h4 class="subsection">6.565.3 サンプルコード</h4>
|
33356
33354
|
|
@@ -33368,7 +33366,7 @@ Up: <a rel="up" accesskey="u" href="#Messages">Messages</a>
|
|
33368
33366
|
|
33369
33367
|
<h4 class="subsection">6.565.5 対応バージョン</h4>
|
33370
33368
|
|
33371
|
-
<p>
|
33369
|
+
<p>1.4.0
|
33372
33370
|
|
33373
33371
|
<div class="node">
|
33374
33372
|
<a name="W0688"></a>
|
@@ -33666,16 +33664,12 @@ Up: <a rel="up" accesskey="u" href="#Messages">Messages</a>
|
|
33666
33664
|
|
33667
33665
|
<h4 class="subsection">6.573.2 内容</h4>
|
33668
33666
|
|
33669
|
-
<p><
|
33670
|
-
|
33671
|
-
<p><code>assert</code> マクロの定義解消や再定義は、未定義の動作になります。したがって、予期しない動作を引き起こす可能性があります。
|
33667
|
+
<p><code>assert</code> マクロの定義解消や再定義は、未定義の動作になります。したがって、予期しない動作を引き起こす可能性があります。
|
33672
33668
|
|
33673
33669
|
<h4 class="subsection">6.573.3 サンプルコード</h4>
|
33674
33670
|
|
33675
33671
|
<pre class="verbatim">#undef assert /* W0695 */
|
33676
|
-
void assert(int a)
|
33677
|
-
{
|
33678
|
-
}
|
33672
|
+
extern void assert(int a);
|
33679
33673
|
</pre>
|
33680
33674
|
|
33681
33675
|
<h4 class="subsection">6.573.4 関連メッセージ</h4>
|
@@ -33684,7 +33678,7 @@ void assert(int a)
|
|
33684
33678
|
|
33685
33679
|
<h4 class="subsection">6.573.5 対応バージョン</h4>
|
33686
33680
|
|
33687
|
-
<p>
|
33681
|
+
<p>1.4.0
|
33688
33682
|
|
33689
33683
|
<div class="node">
|
33690
33684
|
<a name="W0696"></a>
|
@@ -33796,14 +33790,14 @@ Up: <a rel="up" accesskey="u" href="#Messages">Messages</a>
|
|
33796
33790
|
|
33797
33791
|
<h4 class="subsection">6.576.2 内容</h4>
|
33798
33792
|
|
33799
|
-
<p
|
33800
|
-
|
33801
|
-
<p>式を持たない <code>return</code> 文は不定値を返します。
|
33793
|
+
<p>式を持たない <code>return</code> 文は不定値を返します。
|
33802
33794
|
|
33803
33795
|
<h4 class="subsection">6.576.3 サンプルコード</h4>
|
33804
33796
|
|
33805
|
-
|
33806
|
-
|
33797
|
+
<pre class="verbatim">int func(void)
|
33798
|
+
{
|
33799
|
+
return; /* W0698 */
|
33800
|
+
}
|
33807
33801
|
</pre>
|
33808
33802
|
|
33809
33803
|
<h4 class="subsection">6.576.4 関連メッセージ</h4>
|
@@ -33816,7 +33810,7 @@ Up: <a rel="up" accesskey="u" href="#Messages">Messages</a>
|
|
33816
33810
|
|
33817
33811
|
<h4 class="subsection">6.576.5 対応バージョン</h4>
|
33818
33812
|
|
33819
|
-
<p>
|
33813
|
+
<p>1.4.0
|
33820
33814
|
|
33821
33815
|
<div class="node">
|
33822
33816
|
<a name="W0699"></a>
|
@@ -33837,14 +33831,14 @@ Up: <a rel="up" accesskey="u" href="#Messages">Messages</a>
|
|
33837
33831
|
|
33838
33832
|
<h4 class="subsection">6.577.2 内容</h4>
|
33839
33833
|
|
33840
|
-
<p
|
33841
|
-
|
33842
|
-
<p>式を持たない <code>return</code> 文は不定値を返します。
|
33834
|
+
<p>式を持たない <code>return</code> 文は不定値を返します。
|
33843
33835
|
|
33844
33836
|
<h4 class="subsection">6.577.3 サンプルコード</h4>
|
33845
33837
|
|
33846
|
-
|
33847
|
-
|
33838
|
+
<pre class="verbatim">extern func(void)
|
33839
|
+
{
|
33840
|
+
return; /* W0699 */
|
33841
|
+
}
|
33848
33842
|
</pre>
|
33849
33843
|
|
33850
33844
|
<h4 class="subsection">6.577.4 関連メッセージ</h4>
|
@@ -33857,7 +33851,7 @@ Up: <a rel="up" accesskey="u" href="#Messages">Messages</a>
|
|
33857
33851
|
|
33858
33852
|
<h4 class="subsection">6.577.5 対応バージョン</h4>
|
33859
33853
|
|
33860
|
-
<p>
|
33854
|
+
<p>1.4.0
|
33861
33855
|
|
33862
33856
|
<div class="node">
|
33863
33857
|
<a name="W0700"></a>
|
@@ -34494,14 +34488,15 @@ Up: <a rel="up" accesskey="u" href="#Messages">Messages</a>
|
|
34494
34488
|
|
34495
34489
|
<h4 class="subsection">6.593.2 内容</h4>
|
34496
34490
|
|
34497
|
-
<p
|
34498
|
-
|
34499
|
-
<p>上記のような式は未定義の動作になります。したがって、予期しない動作を引き起こす可能性があります。
|
34491
|
+
<p>このような式は未定義の動作になります。したがって、予期しない動作を引き起こす可能性があります。
|
34500
34492
|
|
34501
34493
|
<h4 class="subsection">6.593.3 サンプルコード</h4>
|
34502
34494
|
|
34503
|
-
|
34504
|
-
|
34495
|
+
<pre class="verbatim">signed char sc1 = (signed char) 127.5; /* OK */
|
34496
|
+
signed char sc2 = (signed char) 128.5; /* W0720 */
|
34497
|
+
|
34498
|
+
signed char sc3 = (signed char) -128.5; /* OK */
|
34499
|
+
signed char sc4 = (signed char) -129.5; /* W0720 */
|
34505
34500
|
</pre>
|
34506
34501
|
|
34507
34502
|
<h4 class="subsection">6.593.4 関連メッセージ</h4>
|
@@ -34510,7 +34505,7 @@ Up: <a rel="up" accesskey="u" href="#Messages">Messages</a>
|
|
34510
34505
|
|
34511
34506
|
<h4 class="subsection">6.593.5 対応バージョン</h4>
|
34512
34507
|
|
34513
|
-
<p>
|
34508
|
+
<p>1.4.0
|
34514
34509
|
|
34515
34510
|
<div class="node">
|
34516
34511
|
<a name="W0721"></a>
|
@@ -34531,15 +34526,16 @@ Up: <a rel="up" accesskey="u" href="#Messages">Messages</a>
|
|
34531
34526
|
|
34532
34527
|
<h4 class="subsection">6.594.2 内容</h4>
|
34533
34528
|
|
34534
|
-
<p
|
34535
|
-
|
34536
|
-
<p>上記のような変換により、ポインタ型変数の一部の情報が欠落したものが整数型に代入されることになります。
|
34529
|
+
<p>上記のような変換により、ポインタ型変数の一部の情報が欠落したものが整数型に代入されることになります。
|
34537
34530
|
したがって、代入先の値はもはや正しいアドレスを指していないことになります。
|
34538
34531
|
|
34539
34532
|
<h4 class="subsection">6.594.3 サンプルコード</h4>
|
34540
34533
|
|
34541
|
-
<pre class="verbatim">
|
34542
|
-
|
34534
|
+
<pre class="verbatim">void func(int *p)
|
34535
|
+
{
|
34536
|
+
/* when short is 16 bit long and pointer is 32 bit long */
|
34537
|
+
unsigned short us = (unsigned short) p; /* W0721 */
|
34538
|
+
}
|
34543
34539
|
</pre>
|
34544
34540
|
|
34545
34541
|
<h4 class="subsection">6.594.4 関連メッセージ</h4>
|
@@ -34548,7 +34544,7 @@ unsigned short us = (unsigned short) p; /* W0721 */
|
|
34548
34544
|
|
34549
34545
|
<h4 class="subsection">6.594.5 対応バージョン</h4>
|
34550
34546
|
|
34551
|
-
<p>
|
34547
|
+
<p>1.4.0
|
34552
34548
|
|
34553
34549
|
<div class="node">
|
34554
34550
|
<a name="W0722"></a>
|
@@ -34569,17 +34565,19 @@ Up: <a rel="up" accesskey="u" href="#Messages">Messages</a>
|
|
34569
34565
|
|
34570
34566
|
<h4 class="subsection">6.595.2 内容</h4>
|
34571
34567
|
|
34572
|
-
<p
|
34573
|
-
|
34574
|
-
<p>値が型で表現可能な範囲を超えてしまう(オーバーフローする)と、どのような値が代入されるかは未定義です。
|
34568
|
+
<p>値が型で表現可能な範囲を超えてしまう(オーバーフローする)と、どのような値が代入されるかは未定義です。
|
34575
34569
|
したがって、予期しない動作を引き起こす可能性があります。
|
34576
34570
|
|
34577
34571
|
<h4 class="subsection">6.595.3 サンプルコード</h4>
|
34578
34572
|
|
34579
|
-
<pre class="verbatim">int func(int a)
|
34573
|
+
<pre class="verbatim">int func(int a)
|
34580
34574
|
{
|
34581
|
-
|
34582
|
-
|
34575
|
+
/* when int is 32 bit long */
|
34576
|
+
if (a < 0) {
|
34577
|
+
return a + 1; /* OK */
|
34578
|
+
}
|
34579
|
+
else if (a < 2147483647) {
|
34580
|
+
return a + 1; /* OK */
|
34583
34581
|
}
|
34584
34582
|
|
34585
34583
|
return a + 1; /* W0722 */
|
@@ -34594,7 +34592,7 @@ Up: <a rel="up" accesskey="u" href="#Messages">Messages</a>
|
|
34594
34592
|
|
34595
34593
|
<h4 class="subsection">6.595.5 対応バージョン</h4>
|
34596
34594
|
|
34597
|
-
<p>
|
34595
|
+
<p>1.4.0
|
34598
34596
|
|
34599
34597
|
<div class="node">
|
34600
34598
|
<a name="W0723"></a>
|
@@ -34615,15 +34613,23 @@ Up: <a rel="up" accesskey="u" href="#Messages">Messages</a>
|
|
34615
34613
|
|
34616
34614
|
<h4 class="subsection">6.596.2 内容</h4>
|
34617
34615
|
|
34618
|
-
<p
|
34619
|
-
|
34620
|
-
<p>値が型で表現可能な範囲を超えてしまう(オーバーフローする)と、どのような値が代入されるかは未定義です。
|
34616
|
+
<p>値が型で表現可能な範囲を超えてしまう(オーバーフローする)と、どのような値が代入されるかは未定義です。
|
34621
34617
|
したがって、予期しない動作を引き起こす可能性があります。
|
34622
34618
|
|
34623
34619
|
<h4 class="subsection">6.596.3 サンプルコード</h4>
|
34624
34620
|
|
34625
|
-
|
34626
|
-
|
34621
|
+
<pre class="verbatim">int func(int a)
|
34622
|
+
{
|
34623
|
+
/* when int is 32 bit long */
|
34624
|
+
if (a < 0) {
|
34625
|
+
return a + 1; /* OK */
|
34626
|
+
}
|
34627
|
+
else if (a < 2000000000) {
|
34628
|
+
return a + 1; /* OK */
|
34629
|
+
}
|
34630
|
+
|
34631
|
+
return a + 1; /* W0723 */
|
34632
|
+
}
|
34627
34633
|
</pre>
|
34628
34634
|
|
34629
34635
|
<h4 class="subsection">6.596.4 関連メッセージ</h4>
|
@@ -34634,7 +34640,7 @@ Up: <a rel="up" accesskey="u" href="#Messages">Messages</a>
|
|
34634
34640
|
|
34635
34641
|
<h4 class="subsection">6.596.5 対応バージョン</h4>
|
34636
34642
|
|
34637
|
-
<p>
|
34643
|
+
<p>1.4.0
|
34638
34644
|
|
34639
34645
|
<div class="node">
|
34640
34646
|
<a name="W0724"></a>
|
@@ -34688,19 +34694,17 @@ Up: <a rel="up" accesskey="u" href="#Messages">Messages</a>
|
|
34688
34694
|
|
34689
34695
|
<h4 class="subsection">6.598.1 メッセージ本文</h4>
|
34690
34696
|
|
34691
|
-
<p>修飾子付き void 型の戻り値が定義された関数 `%s()' の中で、`return
|
34697
|
+
<p>修飾子付き void 型の戻り値が定義された関数 `%s()' の中で、`return 式;' が見つかりました。
|
34692
34698
|
|
34693
34699
|
<h4 class="subsection">6.598.2 内容</h4>
|
34694
34700
|
|
34695
|
-
<p
|
34696
|
-
|
34697
|
-
<p>値を戻してはならない関数であるにも関わらず、明示的な <code>return</code> 文があります。このような記述は誤りです。
|
34701
|
+
<p>値を戻してはならない関数であるにも関わらず、明示的な <code>return</code> 文があります。このような記述は誤りです。
|
34698
34702
|
|
34699
34703
|
<h4 class="subsection">6.598.3 サンプルコード</h4>
|
34700
34704
|
|
34701
|
-
<pre class="verbatim">void func(int a)
|
34705
|
+
<pre class="verbatim">const void func(int a)
|
34702
34706
|
{
|
34703
|
-
if(a == 0) {
|
34707
|
+
if (a == 0) {
|
34704
34708
|
return 0; /* W0726 */
|
34705
34709
|
}
|
34706
34710
|
}
|
@@ -34712,7 +34716,7 @@ Up: <a rel="up" accesskey="u" href="#Messages">Messages</a>
|
|
34712
34716
|
|
34713
34717
|
<h4 class="subsection">6.598.5 対応バージョン</h4>
|
34714
34718
|
|
34715
|
-
<p>
|
34719
|
+
<p>1.4.0
|
34716
34720
|
|
34717
34721
|
<div class="node">
|
34718
34722
|
<a name="W0727"></a>
|
@@ -34733,16 +34737,14 @@ Up: <a rel="up" accesskey="u" href="#Messages">Messages</a>
|
|
34733
34737
|
|
34734
34738
|
<h4 class="subsection">6.599.2 内容</h4>
|
34735
34739
|
|
34736
|
-
<p
|
34737
|
-
|
34738
|
-
<p>このような列挙型の使い方は文法的には合法ですが、本来の列挙型変数として使用されるべき情報を損失するという意味で問題があります。
|
34740
|
+
<p>このような列挙型の使い方は文法的には合法ですが、本来の列挙型変数として使用されるべき情報を損失するという意味で問題があります。
|
34739
34741
|
|
34740
34742
|
<h4 class="subsection">6.599.3 サンプルコード</h4>
|
34741
34743
|
|
34742
34744
|
<pre class="verbatim">enum Fruits {
|
34743
|
-
|
34744
|
-
|
34745
|
-
|
34745
|
+
APPLE = 1,
|
34746
|
+
BANANA,
|
34747
|
+
ORANGE
|
34746
34748
|
};
|
34747
34749
|
|
34748
34750
|
enum Fruits fruit = 5; /* W0727 */
|
@@ -34759,7 +34761,7 @@ enum Fruits fruit = 5; /* W0727 */
|
|
34759
34761
|
|
34760
34762
|
<h4 class="subsection">6.599.5 対応バージョン</h4>
|
34761
34763
|
|
34762
|
-
<p>
|
34764
|
+
<p>1.4.0
|
34763
34765
|
|
34764
34766
|
<div class="node">
|
34765
34767
|
<a name="W0728"></a>
|
@@ -34780,14 +34782,19 @@ Up: <a rel="up" accesskey="u" href="#Messages">Messages</a>
|
|
34780
34782
|
|
34781
34783
|
<h4 class="subsection">6.600.2 内容</h4>
|
34782
34784
|
|
34783
|
-
<p
|
34784
|
-
|
34785
|
-
<p>このような列挙型の使い方は文法的には合法ですが、本来の列挙型変数として使用されるべき情報を損失するという意味で問題があります。
|
34785
|
+
<p>このような列挙型の使い方は文法的には合法ですが、本来の列挙型変数として使用されるべき情報を損失するという意味で問題があります。
|
34786
34786
|
|
34787
34787
|
<h4 class="subsection">6.600.3 サンプルコード</h4>
|
34788
34788
|
|
34789
|
-
|
34790
|
-
|
34789
|
+
<pre class="verbatim">enum Color { RED, BLUE, GREEN };
|
34790
|
+
enum Fruits { APPLE, BANANA, ORANGE };
|
34791
|
+
|
34792
|
+
extern void func1(enum Color);
|
34793
|
+
|
34794
|
+
void func2(void)
|
34795
|
+
{
|
34796
|
+
func1(ORANGE); /* W0728 */
|
34797
|
+
}
|
34791
34798
|
</pre>
|
34792
34799
|
|
34793
34800
|
<h4 class="subsection">6.600.4 関連メッセージ</h4>
|
@@ -34801,7 +34808,7 @@ Up: <a rel="up" accesskey="u" href="#Messages">Messages</a>
|
|
34801
34808
|
|
34802
34809
|
<h4 class="subsection">6.600.5 対応バージョン</h4>
|
34803
34810
|
|
34804
|
-
<p>
|
34811
|
+
<p>1.4.0
|
34805
34812
|
|
34806
34813
|
<div class="node">
|
34807
34814
|
<a name="W0729"></a>
|
@@ -34822,14 +34829,19 @@ Up: <a rel="up" accesskey="u" href="#Messages">Messages</a>
|
|
34822
34829
|
|
34823
34830
|
<h4 class="subsection">6.601.2 内容</h4>
|
34824
34831
|
|
34825
|
-
<p
|
34826
|
-
|
34827
|
-
<p>このような列挙型の使い方は文法的には合法ですが、本来の列挙型変数として使用されるべき情報を損失するという意味で問題があります。
|
34832
|
+
<p>このような列挙型の使い方は文法的には合法ですが、本来の列挙型変数として使用されるべき情報を損失するという意味で問題があります。
|
34828
34833
|
|
34829
34834
|
<h4 class="subsection">6.601.3 サンプルコード</h4>
|
34830
34835
|
|
34831
|
-
|
34832
|
-
|
34836
|
+
<pre class="verbatim">enum Color { RED, BLUE, GREEN };
|
34837
|
+
enum Fruits { APPLE, BANANA, ORANGE };
|
34838
|
+
|
34839
|
+
void func(void)
|
34840
|
+
{
|
34841
|
+
enum Color c;
|
34842
|
+
|
34843
|
+
c = ORANGE; /* W0729 */
|
34844
|
+
}
|
34833
34845
|
</pre>
|
34834
34846
|
|
34835
34847
|
<h4 class="subsection">6.601.4 関連メッセージ</h4>
|
@@ -34843,7 +34855,7 @@ Up: <a rel="up" accesskey="u" href="#Messages">Messages</a>
|
|
34843
34855
|
|
34844
34856
|
<h4 class="subsection">6.601.5 対応バージョン</h4>
|
34845
34857
|
|
34846
|
-
<p>
|
34858
|
+
<p>1.4.0
|
34847
34859
|
|
34848
34860
|
<div class="node">
|
34849
34861
|
<a name="W0730"></a>
|
@@ -34864,14 +34876,17 @@ Up: <a rel="up" accesskey="u" href="#Messages">Messages</a>
|
|
34864
34876
|
|
34865
34877
|
<h4 class="subsection">6.602.2 内容</h4>
|
34866
34878
|
|
34867
|
-
<p
|
34868
|
-
|
34869
|
-
<p>このような列挙型の使い方は文法的には合法ですが、本来の列挙型変数として使用されるべき情報を損失するという意味で問題があります。
|
34879
|
+
<p>このような列挙型の使い方は文法的には合法ですが、本来の列挙型変数として使用されるべき情報を損失するという意味で問題があります。
|
34870
34880
|
|
34871
34881
|
<h4 class="subsection">6.602.3 サンプルコード</h4>
|
34872
34882
|
|
34873
|
-
|
34874
|
-
|
34883
|
+
<pre class="verbatim">enum Color { RED, BLUE, GREEN };
|
34884
|
+
enum Fruits { APPLE, BANANA, ORANGE };
|
34885
|
+
|
34886
|
+
enum Color func(void)
|
34887
|
+
{
|
34888
|
+
return ORANGE; /* W0730 */
|
34889
|
+
}
|
34875
34890
|
</pre>
|
34876
34891
|
|
34877
34892
|
<h4 class="subsection">6.602.4 関連メッセージ</h4>
|
@@ -34885,7 +34900,7 @@ Up: <a rel="up" accesskey="u" href="#Messages">Messages</a>
|
|
34885
34900
|
|
34886
34901
|
<h4 class="subsection">6.602.5 対応バージョン</h4>
|
34887
34902
|
|
34888
|
-
<p>
|
34903
|
+
<p>1.4.0
|
34889
34904
|
|
34890
34905
|
<div class="node">
|
34891
34906
|
<a name="W0731"></a>
|
@@ -34906,14 +34921,24 @@ Up: <a rel="up" accesskey="u" href="#Messages">Messages</a>
|
|
34906
34921
|
|
34907
34922
|
<h4 class="subsection">6.603.2 内容</h4>
|
34908
34923
|
|
34909
|
-
<p
|
34910
|
-
|
34911
|
-
<p>このような列挙型の使い方は文法的には合法ですが、本来の列挙型変数として使用されるべき情報を損失するという意味で問題があります。
|
34924
|
+
<p>このような列挙型の使い方は文法的には合法ですが、本来の列挙型変数として使用されるべき情報を損失するという意味で問題があります。
|
34912
34925
|
|
34913
34926
|
<h4 class="subsection">6.603.3 サンプルコード</h4>
|
34914
34927
|
|
34915
|
-
|
34916
|
-
|
34928
|
+
<pre class="verbatim">enum Color { RED, BLUE, GREEN };
|
34929
|
+
enum Fruits { APPLE, BANANA, ORANGE, GRAPE };
|
34930
|
+
|
34931
|
+
int func(enum Color c)
|
34932
|
+
{
|
34933
|
+
switch (c) {
|
34934
|
+
case RED:
|
34935
|
+
return 1;
|
34936
|
+
case GRAPE: /* W0731 */
|
34937
|
+
return 2;
|
34938
|
+
}
|
34939
|
+
|
34940
|
+
return 0;
|
34941
|
+
}
|
34917
34942
|
</pre>
|
34918
34943
|
|
34919
34944
|
<h4 class="subsection">6.603.4 関連メッセージ</h4>
|
@@ -34927,7 +34952,7 @@ Up: <a rel="up" accesskey="u" href="#Messages">Messages</a>
|
|
34927
34952
|
|
34928
34953
|
<h4 class="subsection">6.603.5 対応バージョン</h4>
|
34929
34954
|
|
34930
|
-
<p>
|
34955
|
+
<p>1.4.0
|
34931
34956
|
|
34932
34957
|
<div class="node">
|
34933
34958
|
<a name="W0732"></a>
|
@@ -35156,14 +35181,11 @@ Up: <a rel="up" accesskey="u" href="#Messages">Messages</a>
|
|
35156
35181
|
|
35157
35182
|
<h4 class="subsection">6.609.2 内容</h4>
|
35158
35183
|
|
35159
|
-
<p
|
35160
|
-
|
35161
|
-
<p>定義していない列挙体のタグを使用することは言語制約違反になります。したがって、移植性を低下させます。
|
35184
|
+
<p>定義していない列挙体のタグを使用することは言語制約違反になります。したがって、移植性を低下させます。
|
35162
35185
|
|
35163
35186
|
<h4 class="subsection">6.609.3 サンプルコード</h4>
|
35164
35187
|
|
35165
|
-
|
35166
|
-
<pre class="verbatim">/* 追記予定 */
|
35188
|
+
<pre class="verbatim">extern enum Foo foo; /* W0737 */
|
35167
35189
|
</pre>
|
35168
35190
|
|
35169
35191
|
<h4 class="subsection">6.609.4 関連メッセージ</h4>
|
@@ -35172,7 +35194,7 @@ Up: <a rel="up" accesskey="u" href="#Messages">Messages</a>
|
|
35172
35194
|
|
35173
35195
|
<h4 class="subsection">6.609.5 対応バージョン</h4>
|
35174
35196
|
|
35175
|
-
<p>
|
35197
|
+
<p>1.4.0
|
35176
35198
|
|
35177
35199
|
<div class="node">
|
35178
35200
|
<a name="W0738"></a>
|
@@ -35193,14 +35215,18 @@ Up: <a rel="up" accesskey="u" href="#Messages">Messages</a>
|
|
35193
35215
|
|
35194
35216
|
<h4 class="subsection">6.610.2 内容</h4>
|
35195
35217
|
|
35196
|
-
<p
|
35197
|
-
|
35198
|
-
<p>値が型で表現可能な範囲を超えてしまう(オーバーフローする)ことで、代入先には元々の定数の値がそのまま入らなくなります。
|
35218
|
+
<p>値が型で表現可能な範囲を超えてしまう(オーバーフローする)ことで、代入先には元々の定数の値がそのまま入らなくなります。
|
35199
35219
|
つまり、プログラマの意図しない値が代入されることになり、不具合につながります。
|
35200
35220
|
|
35201
35221
|
<h4 class="subsection">6.610.3 サンプルコード</h4>
|
35202
35222
|
|
35203
|
-
<pre class="verbatim"
|
35223
|
+
<pre class="verbatim">/* when char is 8 bit long */
|
35224
|
+
const unsigned char uc1 = 255; /* OK */
|
35225
|
+
const unsigned char uc2 = 256; /* W0738 */
|
35226
|
+
|
35227
|
+
/* when int is 32 bit long */
|
35228
|
+
const unsigned int ui1 = 4294967295; /* OK */
|
35229
|
+
const unsigned int ui2 = 4294967296; /* W0738 */
|
35204
35230
|
</pre>
|
35205
35231
|
|
35206
35232
|
<h4 class="subsection">6.610.4 関連メッセージ</h4>
|
@@ -35209,7 +35235,7 @@ Up: <a rel="up" accesskey="u" href="#Messages">Messages</a>
|
|
35209
35235
|
|
35210
35236
|
<h4 class="subsection">6.610.5 対応バージョン</h4>
|
35211
35237
|
|
35212
|
-
<p>
|
35238
|
+
<p>1.4.0
|
35213
35239
|
|
35214
35240
|
<div class="node">
|
35215
35241
|
<a name="W0739"></a>
|
@@ -35230,14 +35256,13 @@ Up: <a rel="up" accesskey="u" href="#Messages">Messages</a>
|
|
35230
35256
|
|
35231
35257
|
<h4 class="subsection">6.611.2 内容</h4>
|
35232
35258
|
|
35233
|
-
<p
|
35234
|
-
|
35235
|
-
<p>値が型で表現可能な範囲を超えてしまうことで、代入先には元々の定数の値がそのまま入らなくなります。
|
35259
|
+
<p>値が型で表現可能な範囲を超えてしまうことで、代入先には元々の定数の値がそのまま入らなくなります。
|
35236
35260
|
つまり、プログラマの意図しない値が代入されることになり、不具合につながります。
|
35237
35261
|
|
35238
35262
|
<h4 class="subsection">6.611.3 サンプルコード</h4>
|
35239
35263
|
|
35240
|
-
<pre class="verbatim">unsigned int
|
35264
|
+
<pre class="verbatim">const unsigned int ui1 = 3U - 3U; /* OK */
|
35265
|
+
const unsigned int ui2 = 3U - 5U; /* W0739 */
|
35241
35266
|
</pre>
|
35242
35267
|
|
35243
35268
|
<h4 class="subsection">6.611.4 関連メッセージ</h4>
|
@@ -35249,7 +35274,7 @@ Up: <a rel="up" accesskey="u" href="#Messages">Messages</a>
|
|
35249
35274
|
|
35250
35275
|
<h4 class="subsection">6.611.5 対応バージョン</h4>
|
35251
35276
|
|
35252
|
-
<p>
|
35277
|
+
<p>1.4.0
|
35253
35278
|
|
35254
35279
|
<div class="node">
|
35255
35280
|
<a name="W0740"></a>
|
@@ -35270,16 +35295,14 @@ Up: <a rel="up" accesskey="u" href="#Messages">Messages</a>
|
|
35270
35295
|
|
35271
35296
|
<h4 class="subsection">6.612.2 内容</h4>
|
35272
35297
|
|
35273
|
-
<p
|
35274
|
-
|
35275
|
-
<p>値が型で表現可能な範囲を超えてしまうことで、代入先には元々の定数の値がそのまま入らなくなります。
|
35298
|
+
<p>値が型で表現可能な範囲を超えてしまうことで、代入先には元々の定数の値がそのまま入らなくなります。
|
35276
35299
|
つまり、プログラマの意図しない値が代入されることになり、不具合につながります。
|
35277
35300
|
|
35278
35301
|
<h4 class="subsection">6.612.3 サンプルコード</h4>
|
35279
35302
|
|
35280
|
-
<pre class="verbatim"
|
35281
|
-
|
35282
|
-
unsigned
|
35303
|
+
<pre class="verbatim">/* when int is 32 bit long */
|
35304
|
+
const unsigned int ui1 = 4294967294U + 1U; /* OK */
|
35305
|
+
const unsigned int ui2 = 4294967295U + 1U; /* W0740 */
|
35283
35306
|
</pre>
|
35284
35307
|
|
35285
35308
|
<h4 class="subsection">6.612.4 関連メッセージ</h4>
|
@@ -35291,7 +35314,7 @@ unsigned char uc = MACRO + 10; /* W0740 */
|
|
35291
35314
|
|
35292
35315
|
<h4 class="subsection">6.612.5 対応バージョン</h4>
|
35293
35316
|
|
35294
|
-
<p>
|
35317
|
+
<p>1.4.0
|
35295
35318
|
|
35296
35319
|
<div class="node">
|
35297
35320
|
<a name="W0741"></a>
|
@@ -35312,15 +35335,14 @@ Up: <a rel="up" accesskey="u" href="#Messages">Messages</a>
|
|
35312
35335
|
|
35313
35336
|
<h4 class="subsection">6.613.2 内容</h4>
|
35314
35337
|
|
35315
|
-
<p
|
35316
|
-
|
35317
|
-
<p>値が型で表現可能な範囲を超えてしまうことで、代入先には元々の定数の値がそのまま入らなくなります。
|
35338
|
+
<p>値が型で表現可能な範囲を超えてしまうことで、代入先には元々の定数の値がそのまま入らなくなります。
|
35318
35339
|
つまり、プログラマの意図しない値が代入されることになり、不具合につながります。
|
35319
35340
|
|
35320
35341
|
<h4 class="subsection">6.613.3 サンプルコード</h4>
|
35321
35342
|
|
35322
|
-
|
35323
|
-
|
35343
|
+
<pre class="verbatim">/* when int is 32 bit long */
|
35344
|
+
const unsigned int ui1 = 2000000000U * 2U; /* OK */
|
35345
|
+
const unsigned int ui2 = 3000000000U * 2U; /* W0741 */
|
35324
35346
|
</pre>
|
35325
35347
|
|
35326
35348
|
<h4 class="subsection">6.613.4 関連メッセージ</h4>
|
@@ -35332,7 +35354,7 @@ Up: <a rel="up" accesskey="u" href="#Messages">Messages</a>
|
|
35332
35354
|
|
35333
35355
|
<h4 class="subsection">6.613.5 対応バージョン</h4>
|
35334
35356
|
|
35335
|
-
<p>
|
35357
|
+
<p>1.4.0
|
35336
35358
|
|
35337
35359
|
<div class="node">
|
35338
35360
|
<a name="W0742"></a>
|
@@ -35391,19 +35413,19 @@ Up: <a rel="up" accesskey="u" href="#Messages">Messages</a>
|
|
35391
35413
|
|
35392
35414
|
<h4 class="subsection">6.615.2 内容</h4>
|
35393
35415
|
|
35394
|
-
<p
|
35395
|
-
|
35396
|
-
<p>値が型で表現可能な範囲を超えてしまうことで、代入先には元々の定数の値がそのまま入らなくなります。
|
35416
|
+
<p>値が型で表現可能な範囲を超えてしまうことで、代入先には元々の定数の値がそのまま入らなくなります。
|
35397
35417
|
つまり、プログラマの意図しない値が代入されることになり、不具合につながります。
|
35398
35418
|
また、このような処理は、動作が処理系定義になります。したがって、移植性を低下させます。
|
35399
35419
|
|
35400
35420
|
<h4 class="subsection">6.615.3 サンプルコード</h4>
|
35401
35421
|
|
35402
|
-
<pre class="verbatim"
|
35403
|
-
|
35404
|
-
signed char
|
35422
|
+
<pre class="verbatim">/* when char is 8 bit long */
|
35423
|
+
const signed char sc1 = 127; /* OK */
|
35424
|
+
const signed char sc2 = 128; /* W0743 */
|
35405
35425
|
|
35406
|
-
|
35426
|
+
/* when int is 32 bit long */
|
35427
|
+
const int si1 = 2147483647; /* OK */
|
35428
|
+
const int si2 = 2147483648; /* W0743 */
|
35407
35429
|
</pre>
|
35408
35430
|
|
35409
35431
|
<h4 class="subsection">6.615.4 関連メッセージ</h4>
|
@@ -35412,7 +35434,7 @@ sc = MACRO + 150; /* W0743 */
|
|
35412
35434
|
|
35413
35435
|
<h4 class="subsection">6.615.5 対応バージョン</h4>
|
35414
35436
|
|
35415
|
-
<p>
|
35437
|
+
<p>1.4.0
|
35416
35438
|
|
35417
35439
|
<div class="node">
|
35418
35440
|
<a name="W0744"></a>
|
@@ -38038,14 +38060,19 @@ Up: <a rel="up" accesskey="u" href="#Messages">Messages</a>
|
|
38038
38060
|
|
38039
38061
|
<h4 class="subsection">6.669.2 内容</h4>
|
38040
38062
|
|
38041
|
-
<p
|
38042
|
-
|
38043
|
-
<p>名前付きのメンバを一つも持たない構造体または共用体を使用したときの動作は未定義です。
|
38063
|
+
<p>名前付きのメンバを一つも持たない構造体または共用体を使用したときの動作は未定義です。
|
38044
38064
|
従って、予期しない動作を引き起こす可能性があります。
|
38045
38065
|
|
38046
38066
|
<h4 class="subsection">6.669.3 サンプルコード</h4>
|
38047
38067
|
|
38048
|
-
<pre class="verbatim">struct
|
38068
|
+
<pre class="verbatim">struct foo { /* W0801 */
|
38069
|
+
};
|
38070
|
+
|
38071
|
+
struct bar { /* W0801 */
|
38072
|
+
int;
|
38073
|
+
int :1;
|
38074
|
+
long;
|
38075
|
+
double;
|
38049
38076
|
};
|
38050
38077
|
</pre>
|
38051
38078
|
|
@@ -38055,7 +38082,7 @@ Up: <a rel="up" accesskey="u" href="#Messages">Messages</a>
|
|
38055
38082
|
|
38056
38083
|
<h4 class="subsection">6.669.5 対応バージョン</h4>
|
38057
38084
|
|
38058
|
-
<p>
|
38085
|
+
<p>1.4.0
|
38059
38086
|
|
38060
38087
|
<div class="node">
|
38061
38088
|
<a name="W0802"></a>
|
@@ -38228,15 +38255,12 @@ Up: <a rel="up" accesskey="u" href="#Messages">Messages</a>
|
|
38228
38255
|
|
38229
38256
|
<h4 class="subsection">6.674.2 内容</h4>
|
38230
38257
|
|
38231
|
-
<p
|
38232
|
-
|
38233
|
-
<p>ISO C90 で規定されている予約語を定義、再定義、定義解消することは未定義の動作になります。
|
38258
|
+
<p>ISO C90 で規定されている予約語を定義、再定義、定義解消することは未定義の動作になります。
|
38234
38259
|
したがって、予期しない動作を引き起こす可能性あります。
|
38235
38260
|
|
38236
38261
|
<h4 class="subsection">6.674.3 サンプルコード</h4>
|
38237
38262
|
|
38238
|
-
|
38239
|
-
<pre class="verbatim">/* 追記予定 */
|
38263
|
+
<pre class="verbatim">#define defined !defined /* W0806 */
|
38240
38264
|
</pre>
|
38241
38265
|
|
38242
38266
|
<h4 class="subsection">6.674.4 関連メッセージ</h4>
|
@@ -38248,7 +38272,7 @@ Up: <a rel="up" accesskey="u" href="#Messages">Messages</a>
|
|
38248
38272
|
|
38249
38273
|
<h4 class="subsection">6.674.5 対応バージョン</h4>
|
38250
38274
|
|
38251
|
-
<p>
|
38275
|
+
<p>1.4.0
|
38252
38276
|
|
38253
38277
|
<div class="node">
|
38254
38278
|
<a name="W0807"></a>
|
@@ -38709,22 +38733,26 @@ Up: <a rel="up" accesskey="u" href="#Messages">Messages</a>
|
|
38709
38733
|
|
38710
38734
|
<p>long long 型を使っています。
|
38711
38735
|
|
38736
|
+
<h4 class="subsection">6.686.2 内容</h4>
|
38737
|
+
|
38738
|
+
<p><b>このメッセージは AdLint 2.0.0 で出力する予定です。</b>
|
38739
|
+
|
38712
38740
|
<p><code>long long</code> 型は、言語拡張に該当するため、移植性を低下させます。
|
38713
38741
|
|
38714
|
-
<h4 class="subsection">6.686.
|
38742
|
+
<h4 class="subsection">6.686.3 サンプルコード</h4>
|
38715
38743
|
|
38716
38744
|
<pre class="verbatim">long long a = 0; /* W0834 */
|
38717
38745
|
</pre>
|
38718
38746
|
|
38719
|
-
<h4 class="subsection">6.686.
|
38747
|
+
<h4 class="subsection">6.686.4 関連メッセージ</h4>
|
38720
38748
|
|
38721
38749
|
<ul>
|
38722
38750
|
<li><a href="#W0833">W0833</a> 接尾語 LL を使っています。
|
38723
38751
|
</ul>
|
38724
38752
|
|
38725
|
-
<h4 class="subsection">6.686.
|
38753
|
+
<h4 class="subsection">6.686.5 対応バージョン</h4>
|
38726
38754
|
|
38727
|
-
<p>
|
38755
|
+
<p>2.0.0 の予定
|
38728
38756
|
|
38729
38757
|
<div class="node">
|
38730
38758
|
<a name="W0835"></a>
|
@@ -39198,15 +39226,25 @@ Up: <a rel="up" accesskey="u" href="#Messages">Messages</a>
|
|
39198
39226
|
|
39199
39227
|
<h4 class="subsection">6.699.2 内容</h4>
|
39200
39228
|
|
39201
|
-
<p
|
39202
|
-
|
39203
|
-
<p>関数の戻り値の型が、<code>volatile</code> 型の場合の動作は処理系定義です。
|
39229
|
+
<p>関数の戻り値の型が、<code>volatile</code> 型の場合の動作は処理系定義です。
|
39204
39230
|
また、<code>const</code> 型の場合は未定義です。
|
39205
39231
|
|
39206
39232
|
<h4 class="subsection">6.699.3 サンプルコード</h4>
|
39207
39233
|
|
39208
|
-
|
39209
|
-
|
39234
|
+
<pre class="verbatim">extern const int func1(int); /* W1033 */
|
39235
|
+
|
39236
|
+
const int func2(int i) /* W1033 */
|
39237
|
+
{
|
39238
|
+
return i + 1;
|
39239
|
+
}
|
39240
|
+
|
39241
|
+
const int *func3(int i) /* OK */
|
39242
|
+
{
|
39243
|
+
static int j;
|
39244
|
+
|
39245
|
+
j = i;
|
39246
|
+
return &j;
|
39247
|
+
}
|
39210
39248
|
</pre>
|
39211
39249
|
|
39212
39250
|
<h4 class="subsection">6.699.4 関連メッセージ</h4>
|
@@ -39215,7 +39253,7 @@ Up: <a rel="up" accesskey="u" href="#Messages">Messages</a>
|
|
39215
39253
|
|
39216
39254
|
<h4 class="subsection">6.699.5 対応バージョン</h4>
|
39217
39255
|
|
39218
|
-
<p>
|
39256
|
+
<p>1.4.0
|
39219
39257
|
|
39220
39258
|
<div class="node">
|
39221
39259
|
<a name="W1034"></a>
|
@@ -40526,14 +40564,23 @@ Up: <a rel="up" accesskey="u" href="#Messages">Messages</a>
|
|
40526
40564
|
|
40527
40565
|
<h4 class="subsection">6.729.2 内容</h4>
|
40528
40566
|
|
40529
|
-
<p
|
40530
|
-
|
40531
|
-
<p>非列挙型から列挙型への変換が生じています。
|
40567
|
+
<p>非列挙型から列挙型への変換が生じています。
|
40532
40568
|
|
40533
40569
|
<h4 class="subsection">6.729.3 サンプルコード</h4>
|
40534
40570
|
|
40535
|
-
|
40536
|
-
|
40571
|
+
<pre class="verbatim">enum Color { RED, BLUE, GREEN };
|
40572
|
+
|
40573
|
+
int func(enum Color c)
|
40574
|
+
{
|
40575
|
+
switch (c) {
|
40576
|
+
case RED: /* OK */
|
40577
|
+
return 1;
|
40578
|
+
case 1: /* W1064 */
|
40579
|
+
return 2;
|
40580
|
+
}
|
40581
|
+
|
40582
|
+
return 0;
|
40583
|
+
}
|
40537
40584
|
</pre>
|
40538
40585
|
|
40539
40586
|
<h4 class="subsection">6.729.4 関連メッセージ</h4>
|
@@ -40555,7 +40602,7 @@ Up: <a rel="up" accesskey="u" href="#Messages">Messages</a>
|
|
40555
40602
|
|
40556
40603
|
<h4 class="subsection">6.729.5 対応バージョン</h4>
|
40557
40604
|
|
40558
|
-
<p>
|
40605
|
+
<p>1.4.0
|
40559
40606
|
|
40560
40607
|
<div class="node">
|
40561
40608
|
<a name="W1065"></a>
|
@@ -40576,14 +40623,24 @@ Up: <a rel="up" accesskey="u" href="#Messages">Messages</a>
|
|
40576
40623
|
|
40577
40624
|
<h4 class="subsection">6.730.2 内容</h4>
|
40578
40625
|
|
40579
|
-
<p
|
40580
|
-
|
40581
|
-
<p>列挙型から異なる列挙型への変換が生じています。
|
40626
|
+
<p>列挙型から異なる列挙型への変換が生じています。
|
40582
40627
|
|
40583
40628
|
<h4 class="subsection">6.730.3 サンプルコード</h4>
|
40584
40629
|
|
40585
|
-
|
40586
|
-
|
40630
|
+
<pre class="verbatim">enum Color { RED, BLUE, GREEN };
|
40631
|
+
enum Fruits { APPLE, BANANA, ORANGE, GRAPE };
|
40632
|
+
|
40633
|
+
int func(enum Color c)
|
40634
|
+
{
|
40635
|
+
switch (c) {
|
40636
|
+
case RED: /* OK */
|
40637
|
+
return 1;
|
40638
|
+
case ORANGE: /* W1065 */
|
40639
|
+
return 2;
|
40640
|
+
}
|
40641
|
+
|
40642
|
+
return 0;
|
40643
|
+
}
|
40587
40644
|
</pre>
|
40588
40645
|
|
40589
40646
|
<h4 class="subsection">6.730.4 関連メッセージ</h4>
|
@@ -40605,7 +40662,7 @@ Up: <a rel="up" accesskey="u" href="#Messages">Messages</a>
|
|
40605
40662
|
|
40606
40663
|
<h4 class="subsection">6.730.5 対応バージョン</h4>
|
40607
40664
|
|
40608
|
-
<p>
|
40665
|
+
<p>1.4.0
|
40609
40666
|
|
40610
40667
|
<div class="node">
|
40611
40668
|
<a name="W9001"></a>
|