adlint 1.2.0 → 1.4.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/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
@@ -18,6 +18,8 @@ static int a6[3]();
|
|
18
18
|
static int a7[3](int);
|
19
19
|
static int (*a8[3])(long);
|
20
20
|
|
21
|
+
extern enum Baz baz1;
|
22
|
+
|
21
23
|
void foo(const union Bar *p1, const union Bar * const p2)
|
22
24
|
{
|
23
25
|
*p1 = *p2;
|
@@ -46,4 +48,5 @@ void baz(void)
|
|
46
48
|
const void v2;
|
47
49
|
int i1;
|
48
50
|
const int i2;
|
51
|
+
const enum Baz baz2;
|
49
52
|
}
|
@@ -1,7 +1,6 @@
|
|
1
|
-
extern
|
2
|
-
extern unsigned long bar(void);
|
1
|
+
extern int rand(void);
|
3
2
|
|
4
|
-
static void
|
3
|
+
static void foo(void)
|
5
4
|
{
|
6
5
|
const int i = rand();
|
7
6
|
|
@@ -28,10 +27,65 @@ static void baz(void)
|
|
28
27
|
}
|
29
28
|
}
|
30
29
|
|
30
|
+
extern void *alloc(void);
|
31
|
+
|
32
|
+
static void bar(void)
|
33
|
+
{
|
34
|
+
const signed char sc1 = (signed char) 127.5;
|
35
|
+
const signed char sc2 = (signed char) 128.5;
|
36
|
+
|
37
|
+
const signed char sc3 = (signed char) -128.5;
|
38
|
+
const signed char sc4 = (signed char) -129.5;
|
39
|
+
|
40
|
+
const unsigned char uc1 = (unsigned char) 255.5;
|
41
|
+
const unsigned char uc2 = (unsigned char) 256.5;
|
42
|
+
|
43
|
+
const unsigned char uc3 = (unsigned char) 0.5;
|
44
|
+
const unsigned char uc4 = (unsigned char) -1.5;
|
45
|
+
|
46
|
+
const int si1 = (int) 1.5e9;
|
47
|
+
const int si2 = (int) 1.5e10;
|
48
|
+
|
49
|
+
const int si3 = (int) -1.5e9;
|
50
|
+
const int si3 = (int) -1.5e10;
|
51
|
+
|
52
|
+
int *data_ptr = (int *) alloc();
|
53
|
+
int (*func_ptr)(void) = (int (*)(void)) alloc();
|
54
|
+
|
55
|
+
const unsigned char uc5 = (unsigned char) data_ptr;
|
56
|
+
const unsigned char uc6 = (unsigned char) func_ptr;
|
57
|
+
|
58
|
+
const unsigned short us1 = (unsigned short) data_ptr;
|
59
|
+
const unsigned short us2 = (unsigned short) func_ptr;
|
60
|
+
|
61
|
+
const unsigned int ui1 = (unsigned int) data_ptr;
|
62
|
+
const unsigned int ui2 = (unsigned int) func_ptr;
|
63
|
+
|
64
|
+
const unsigned long ul1 = (unsigned long) data_ptr;
|
65
|
+
const unsigned long ul2 = (unsigned long) func_ptr;
|
66
|
+
|
67
|
+
const unsigned char uc7 = 255;
|
68
|
+
const unsigned char uc8 = 256;
|
69
|
+
|
70
|
+
const unsigned int ui3 = 4294967295;
|
71
|
+
const unsigned int ui4 = 4294967296;
|
72
|
+
|
73
|
+
const unsigned char a[] = { 255, 256 };
|
74
|
+
|
75
|
+
const signed char sc5 = 127;
|
76
|
+
const signed char sc6 = 128;
|
77
|
+
|
78
|
+
const int si4 = 2147483647;
|
79
|
+
const int si5 = 2147483648;
|
80
|
+
}
|
81
|
+
|
82
|
+
extern long baz(void);
|
83
|
+
extern unsigned long qux(void);
|
84
|
+
|
31
85
|
int main(void)
|
32
86
|
{
|
33
|
-
const long l =
|
34
|
-
const unsigned long ul =
|
87
|
+
const long l = baz();
|
88
|
+
const unsigned long ul = qux();
|
35
89
|
long r;
|
36
90
|
|
37
91
|
r = 0x1FFFFFFFL << 1;
|
@@ -34,3 +34,46 @@ qux
|
|
34
34
|
{
|
35
35
|
return (struct hoge *) i;
|
36
36
|
}
|
37
|
+
|
38
|
+
extern const int ansi_qualified_func_1(const int);
|
39
|
+
const int ansi_qualified_func_1(const int i)
|
40
|
+
{
|
41
|
+
return i * 2;
|
42
|
+
}
|
43
|
+
|
44
|
+
extern const int kandr_qualified_func_1();
|
45
|
+
const int kandr_qualified_func_1(i)
|
46
|
+
const int i;
|
47
|
+
{
|
48
|
+
return i * 2;
|
49
|
+
}
|
50
|
+
|
51
|
+
static volatile ansi_qualified_func_2(const int);
|
52
|
+
static volatile ansi_qualified_func_2(const int i)
|
53
|
+
{
|
54
|
+
return i * 2;
|
55
|
+
}
|
56
|
+
|
57
|
+
static volatile kandr_qualified_func_2();
|
58
|
+
static volatile kandr_qualified_func_2(i)
|
59
|
+
const int i;
|
60
|
+
{
|
61
|
+
return i * 2;
|
62
|
+
}
|
63
|
+
|
64
|
+
const int *ansi_func(const int);
|
65
|
+
const int *ansi_func(const int i)
|
66
|
+
{
|
67
|
+
static int j;
|
68
|
+
j = i;
|
69
|
+
return &j;
|
70
|
+
}
|
71
|
+
|
72
|
+
const int *kandr_func();
|
73
|
+
const int *kandr_func(i)
|
74
|
+
const int i;
|
75
|
+
{
|
76
|
+
static int j;
|
77
|
+
j = i;
|
78
|
+
return &j;
|
79
|
+
}
|
@@ -1,38 +1,112 @@
|
|
1
|
-
static void foo(const unsigned int ui)
|
1
|
+
static void foo(const int i, const unsigned int ui)
|
2
2
|
{
|
3
|
-
|
3
|
+
{
|
4
|
+
int r;
|
4
5
|
|
5
|
-
|
6
|
-
|
7
|
-
|
6
|
+
if (i > 2000000000) {
|
7
|
+
r = i * 5;
|
8
|
+
r = i + i;
|
9
|
+
}
|
8
10
|
}
|
9
|
-
|
10
|
-
|
11
|
+
|
12
|
+
{
|
13
|
+
unsigned int r;
|
14
|
+
|
15
|
+
if (ui > 3000000000U) {
|
16
|
+
r = ui * 5U;
|
17
|
+
r = ui + ui;
|
18
|
+
}
|
19
|
+
else {
|
20
|
+
r = ui - 4000000000U;
|
21
|
+
}
|
11
22
|
}
|
12
23
|
}
|
13
24
|
|
14
|
-
static void bar(const unsigned int ui)
|
25
|
+
static void bar(const int i, const unsigned int ui)
|
15
26
|
{
|
16
|
-
|
27
|
+
{
|
28
|
+
int r;
|
17
29
|
|
18
|
-
|
19
|
-
|
20
|
-
|
30
|
+
if (i > 1000) {
|
31
|
+
r = i * 5;
|
32
|
+
r = i + i;
|
33
|
+
}
|
21
34
|
}
|
22
|
-
|
23
|
-
|
35
|
+
|
36
|
+
{
|
37
|
+
unsigned int r;
|
38
|
+
|
39
|
+
if (ui > 1000U) {
|
40
|
+
r = ui * 5U;
|
41
|
+
r = ui + ui;
|
42
|
+
}
|
43
|
+
else {
|
44
|
+
r = ui - 1000U;
|
45
|
+
}
|
24
46
|
}
|
25
47
|
}
|
26
48
|
|
27
|
-
static void baz(const char uc)
|
49
|
+
static void baz(const signed char c, const unsigned char uc)
|
28
50
|
{
|
29
|
-
|
51
|
+
{
|
52
|
+
signed char r;
|
53
|
+
|
54
|
+
if (c > 125) {
|
55
|
+
r = c * 5;
|
56
|
+
r = c + c;
|
57
|
+
}
|
58
|
+
}
|
30
59
|
|
31
|
-
|
32
|
-
|
33
|
-
|
60
|
+
{
|
61
|
+
unsigned char r;
|
62
|
+
|
63
|
+
if (uc > 128U) {
|
64
|
+
r = uc * 5U;
|
65
|
+
r = uc + uc;
|
66
|
+
}
|
67
|
+
else {
|
68
|
+
r = uc - 128U;
|
69
|
+
}
|
34
70
|
}
|
35
|
-
|
36
|
-
|
71
|
+
}
|
72
|
+
|
73
|
+
static void qux(const unsigned int ui)
|
74
|
+
{
|
75
|
+
{
|
76
|
+
const unsigned int ui1 = 3U - 1U;
|
77
|
+
const unsigned int ui2 = 3U - 3U;
|
78
|
+
const unsigned int ui3 = 3U - 5U;
|
79
|
+
|
80
|
+
unsigned int ui4;
|
81
|
+
|
82
|
+
ui4 = 3U - 1U;
|
83
|
+
ui4 = 3U - 3U;
|
84
|
+
ui4 = 3U - 5U;
|
85
|
+
|
86
|
+
ui4 = ui - 1U;
|
87
|
+
}
|
88
|
+
|
89
|
+
{
|
90
|
+
const unsigned int ui1 = 4294967294U + 1U;
|
91
|
+
const unsigned int ui2 = 4294967295U + 1U;
|
92
|
+
|
93
|
+
unsigned int ui3;
|
94
|
+
|
95
|
+
ui3 = 4294967294U + 1U;
|
96
|
+
ui3 = 4294967295U + 1U;
|
97
|
+
|
98
|
+
ui3 = ui + 1U;
|
99
|
+
}
|
100
|
+
|
101
|
+
{
|
102
|
+
const unsigned int ui1 = 2000000000U * 2U;
|
103
|
+
const unsigned int ui2 = 3000000000U * 2U;
|
104
|
+
|
105
|
+
unsigned int ui3;
|
106
|
+
|
107
|
+
ui3 = 2000000000U * 2U;
|
108
|
+
ui3 = 3000000000U * 2U;
|
109
|
+
|
110
|
+
ui3 = ui * 2U;
|
37
111
|
}
|
38
112
|
}
|
@@ -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="contents">
|
49
49
|
<h2>Table of Contents</h2>
|
50
50
|
<ul>
|
@@ -1,8 +1,8 @@
|
|
1
1
|
<html lang="en">
|
2
2
|
<head>
|
3
|
-
<title>AdLint 1.
|
3
|
+
<title>AdLint 1.4.0 User's Guide</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 User's Guide">
|
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 User's Guide</h1>
|
48
48
|
<div class="node">
|
49
49
|
<a name="Top"></a>
|
50
50
|
<p><hr>
|
@@ -2682,7 +2682,7 @@ Up: <a rel="up" accesskey="u" href="#Top">Top</a>
|
|
2682
2682
|
<li><a href="#W0722">W0722</a>: A value of signed statement is overflow.
|
2683
2683
|
<li><a href="#W0723">W0723</a>: A value of signed statement might be overflow.
|
2684
2684
|
<li><a href="#W0724">W0724</a>: An unrecognized preprocessing directive is ignored by conditional include directive.
|
2685
|
-
<li><a href="#W0726">W0726</a>: A function `%s()' which return value is declared as qualified void type
|
2685
|
+
<li><a href="#W0726">W0726</a>: A function `%s()' which return value is declared as qualified void type, `return expression;' is found.
|
2686
2686
|
<li><a href="#W0727">W0727</a>: The value not part of the enumeration type is used.
|
2687
2687
|
<li><a href="#W0728">W0728</a>: Other enumeration literal of enumeration type is passed to enumeration literal of formal argument as actual argument.
|
2688
2688
|
<li><a href="#W0729">W0729</a>: An enumeration literal of the other enumeration type is substituted for enumeration type object.
|
@@ -29240,13 +29240,14 @@ Up: <a rel="up" accesskey="u" href="#Messages">Messages</a>
|
|
29240
29240
|
|
29241
29241
|
<h4 class="subsection">6.497.2 Content</h4>
|
29242
29242
|
|
29243
|
-
<p
|
29244
|
-
|
29245
|
-
<p>Under construction.
|
29243
|
+
<p>Under construction.
|
29246
29244
|
|
29247
29245
|
<h4 class="subsection">6.497.3 Sample code</h4>
|
29248
29246
|
|
29249
|
-
<pre class="verbatim"
|
29247
|
+
<pre class="verbatim">union UNI { /* W0606 */
|
29248
|
+
float a;
|
29249
|
+
int b;
|
29250
|
+
};
|
29250
29251
|
</pre>
|
29251
29252
|
|
29252
29253
|
<h4 class="subsection">6.497.4 Related message</h4>
|
@@ -29255,7 +29256,7 @@ Up: <a rel="up" accesskey="u" href="#Messages">Messages</a>
|
|
29255
29256
|
|
29256
29257
|
<h4 class="subsection">6.497.5 Since</h4>
|
29257
29258
|
|
29258
|
-
<p>
|
29259
|
+
<p>1.4.0
|
29259
29260
|
|
29260
29261
|
<div class="node">
|
29261
29262
|
<a name="W0607"></a>
|
@@ -32975,9 +32976,7 @@ Up: <a rel="up" accesskey="u" href="#Messages">Messages</a>
|
|
32975
32976
|
|
32976
32977
|
<h4 class="subsection">6.565.2 Content</h4>
|
32977
32978
|
|
32978
|
-
<p
|
32979
|
-
|
32980
|
-
<p>Under construction.
|
32979
|
+
<p>Under construction.
|
32981
32980
|
|
32982
32981
|
<h4 class="subsection">6.565.3 Sample code</h4>
|
32983
32982
|
|
@@ -32995,7 +32994,7 @@ Up: <a rel="up" accesskey="u" href="#Messages">Messages</a>
|
|
32995
32994
|
|
32996
32995
|
<h4 class="subsection">6.565.5 Since</h4>
|
32997
32996
|
|
32998
|
-
<p>
|
32997
|
+
<p>1.4.0
|
32999
32998
|
|
33000
32999
|
<div class="node">
|
33001
33000
|
<a name="W0688"></a>
|
@@ -33290,16 +33289,12 @@ Up: <a rel="up" accesskey="u" href="#Messages">Messages</a>
|
|
33290
33289
|
|
33291
33290
|
<h4 class="subsection">6.573.2 Content</h4>
|
33292
33291
|
|
33293
|
-
<p
|
33294
|
-
|
33295
|
-
<p>Under construction.
|
33292
|
+
<p>Under construction.
|
33296
33293
|
|
33297
33294
|
<h4 class="subsection">6.573.3 Sample code</h4>
|
33298
33295
|
|
33299
33296
|
<pre class="verbatim">#undef assert /* W0695 */
|
33300
|
-
void assert(int a)
|
33301
|
-
{
|
33302
|
-
}
|
33297
|
+
extern void assert(int a);
|
33303
33298
|
</pre>
|
33304
33299
|
|
33305
33300
|
<h4 class="subsection">6.573.4 Related message</h4>
|
@@ -33308,7 +33303,7 @@ void assert(int a)
|
|
33308
33303
|
|
33309
33304
|
<h4 class="subsection">6.573.5 Since</h4>
|
33310
33305
|
|
33311
|
-
<p>
|
33306
|
+
<p>1.4.0
|
33312
33307
|
|
33313
33308
|
<div class="node">
|
33314
33309
|
<a name="W0696"></a>
|
@@ -33419,13 +33414,14 @@ Up: <a rel="up" accesskey="u" href="#Messages">Messages</a>
|
|
33419
33414
|
|
33420
33415
|
<h4 class="subsection">6.576.2 Content</h4>
|
33421
33416
|
|
33422
|
-
<p
|
33423
|
-
|
33424
|
-
<p>Under construction.
|
33417
|
+
<p>Under construction.
|
33425
33418
|
|
33426
33419
|
<h4 class="subsection">6.576.3 Sample code</h4>
|
33427
33420
|
|
33428
|
-
<pre class="verbatim"
|
33421
|
+
<pre class="verbatim">int func(void)
|
33422
|
+
{
|
33423
|
+
return; /* W0698 */
|
33424
|
+
}
|
33429
33425
|
</pre>
|
33430
33426
|
|
33431
33427
|
<h4 class="subsection">6.576.4 Related message</h4>
|
@@ -33438,7 +33434,7 @@ Up: <a rel="up" accesskey="u" href="#Messages">Messages</a>
|
|
33438
33434
|
|
33439
33435
|
<h4 class="subsection">6.576.5 Since</h4>
|
33440
33436
|
|
33441
|
-
<p>
|
33437
|
+
<p>1.4.0
|
33442
33438
|
|
33443
33439
|
<div class="node">
|
33444
33440
|
<a name="W0699"></a>
|
@@ -33459,13 +33455,14 @@ Up: <a rel="up" accesskey="u" href="#Messages">Messages</a>
|
|
33459
33455
|
|
33460
33456
|
<h4 class="subsection">6.577.2 Content</h4>
|
33461
33457
|
|
33462
|
-
<p
|
33463
|
-
|
33464
|
-
<p>Under construction.
|
33458
|
+
<p>Under construction.
|
33465
33459
|
|
33466
33460
|
<h4 class="subsection">6.577.3 Sample code</h4>
|
33467
33461
|
|
33468
|
-
<pre class="verbatim"
|
33462
|
+
<pre class="verbatim">extern func(void)
|
33463
|
+
{
|
33464
|
+
return; /* W0699 */
|
33465
|
+
}
|
33469
33466
|
</pre>
|
33470
33467
|
|
33471
33468
|
<h4 class="subsection">6.577.4 Related message</h4>
|
@@ -33478,7 +33475,7 @@ Up: <a rel="up" accesskey="u" href="#Messages">Messages</a>
|
|
33478
33475
|
|
33479
33476
|
<h4 class="subsection">6.577.5 Since</h4>
|
33480
33477
|
|
33481
|
-
<p>
|
33478
|
+
<p>1.4.0
|
33482
33479
|
|
33483
33480
|
<div class="node">
|
33484
33481
|
<a name="W0700"></a>
|
@@ -34105,13 +34102,15 @@ Up: <a rel="up" accesskey="u" href="#Messages">Messages</a>
|
|
34105
34102
|
|
34106
34103
|
<h4 class="subsection">6.593.2 Content</h4>
|
34107
34104
|
|
34108
|
-
<p
|
34109
|
-
|
34110
|
-
<p>Under construction.
|
34105
|
+
<p>Under construction.
|
34111
34106
|
|
34112
34107
|
<h4 class="subsection">6.593.3 Sample code</h4>
|
34113
34108
|
|
34114
|
-
<pre class="verbatim"
|
34109
|
+
<pre class="verbatim">signed char sc1 = (signed char) 127.5; /* OK */
|
34110
|
+
signed char sc2 = (signed char) 128.5; /* W0720 */
|
34111
|
+
|
34112
|
+
signed char sc3 = (signed char) -128.5; /* OK */
|
34113
|
+
signed char sc4 = (signed char) -129.5; /* W0720 */
|
34115
34114
|
</pre>
|
34116
34115
|
|
34117
34116
|
<h4 class="subsection">6.593.4 Related message</h4>
|
@@ -34120,7 +34119,7 @@ Up: <a rel="up" accesskey="u" href="#Messages">Messages</a>
|
|
34120
34119
|
|
34121
34120
|
<h4 class="subsection">6.593.5 Since</h4>
|
34122
34121
|
|
34123
|
-
<p>
|
34122
|
+
<p>1.4.0
|
34124
34123
|
|
34125
34124
|
<div class="node">
|
34126
34125
|
<a name="W0721"></a>
|
@@ -34141,14 +34140,15 @@ Up: <a rel="up" accesskey="u" href="#Messages">Messages</a>
|
|
34141
34140
|
|
34142
34141
|
<h4 class="subsection">6.594.2 Content</h4>
|
34143
34142
|
|
34144
|
-
<p
|
34145
|
-
|
34146
|
-
<p>Under construction.
|
34143
|
+
<p>Under construction.
|
34147
34144
|
|
34148
34145
|
<h4 class="subsection">6.594.3 Sample code</h4>
|
34149
34146
|
|
34150
|
-
<pre class="verbatim">
|
34151
|
-
|
34147
|
+
<pre class="verbatim">void func(int *p)
|
34148
|
+
{
|
34149
|
+
/* when short is 16 bit long and pointer is 32 bit long */
|
34150
|
+
unsigned short us = (unsigned short) p; /* W0721 */
|
34151
|
+
}
|
34152
34152
|
</pre>
|
34153
34153
|
|
34154
34154
|
<h4 class="subsection">6.594.4 Related message</h4>
|
@@ -34157,7 +34157,7 @@ unsigned short us = (unsigned short) p; /* W0721 */
|
|
34157
34157
|
|
34158
34158
|
<h4 class="subsection">6.594.5 Since</h4>
|
34159
34159
|
|
34160
|
-
<p>
|
34160
|
+
<p>1.4.0
|
34161
34161
|
|
34162
34162
|
<div class="node">
|
34163
34163
|
<a name="W0722"></a>
|
@@ -34178,16 +34178,18 @@ Up: <a rel="up" accesskey="u" href="#Messages">Messages</a>
|
|
34178
34178
|
|
34179
34179
|
<h4 class="subsection">6.595.2 Content</h4>
|
34180
34180
|
|
34181
|
-
<p
|
34182
|
-
|
34183
|
-
<p>Under construction.
|
34181
|
+
<p>Under construction.
|
34184
34182
|
|
34185
34183
|
<h4 class="subsection">6.595.3 Sample code</h4>
|
34186
34184
|
|
34187
|
-
<pre class="verbatim">int func(int a)
|
34185
|
+
<pre class="verbatim">int func(int a)
|
34188
34186
|
{
|
34189
|
-
|
34190
|
-
|
34187
|
+
/* when int is 32 bit long */
|
34188
|
+
if (a < 0) {
|
34189
|
+
return a + 1; /* OK */
|
34190
|
+
}
|
34191
|
+
else if (a < 2147483647) {
|
34192
|
+
return a + 1; /* OK */
|
34191
34193
|
}
|
34192
34194
|
|
34193
34195
|
return a + 1; /* W0722 */
|
@@ -34202,7 +34204,7 @@ Up: <a rel="up" accesskey="u" href="#Messages">Messages</a>
|
|
34202
34204
|
|
34203
34205
|
<h4 class="subsection">6.595.5 Since</h4>
|
34204
34206
|
|
34205
|
-
<p>
|
34207
|
+
<p>1.4.0
|
34206
34208
|
|
34207
34209
|
<div class="node">
|
34208
34210
|
<a name="W0723"></a>
|
@@ -34223,13 +34225,22 @@ Up: <a rel="up" accesskey="u" href="#Messages">Messages</a>
|
|
34223
34225
|
|
34224
34226
|
<h4 class="subsection">6.596.2 Content</h4>
|
34225
34227
|
|
34226
|
-
<p
|
34227
|
-
|
34228
|
-
<p>Under construction.
|
34228
|
+
<p>Under construction.
|
34229
34229
|
|
34230
34230
|
<h4 class="subsection">6.596.3 Sample code</h4>
|
34231
34231
|
|
34232
|
-
<pre class="verbatim"
|
34232
|
+
<pre class="verbatim">int func(int a)
|
34233
|
+
{
|
34234
|
+
/* when int is 32 bit long */
|
34235
|
+
if (a < 0) {
|
34236
|
+
return a + 1; /* OK */
|
34237
|
+
}
|
34238
|
+
else if (a < 2000000000) {
|
34239
|
+
return a + 1; /* OK */
|
34240
|
+
}
|
34241
|
+
|
34242
|
+
return a + 1; /* W0723 */
|
34243
|
+
}
|
34233
34244
|
</pre>
|
34234
34245
|
|
34235
34246
|
<h4 class="subsection">6.596.4 Related message</h4>
|
@@ -34240,7 +34251,7 @@ Up: <a rel="up" accesskey="u" href="#Messages">Messages</a>
|
|
34240
34251
|
|
34241
34252
|
<h4 class="subsection">6.596.5 Since</h4>
|
34242
34253
|
|
34243
|
-
<p>
|
34254
|
+
<p>1.4.0
|
34244
34255
|
|
34245
34256
|
<div class="node">
|
34246
34257
|
<a name="W0724"></a>
|
@@ -34293,19 +34304,17 @@ Up: <a rel="up" accesskey="u" href="#Messages">Messages</a>
|
|
34293
34304
|
|
34294
34305
|
<h4 class="subsection">6.598.1 Message body</h4>
|
34295
34306
|
|
34296
|
-
<p>A function `%s()' which return value is declared as qualified void type
|
34307
|
+
<p>A function `%s()' which return value is declared as qualified void type, `return expression;' is found.
|
34297
34308
|
|
34298
34309
|
<h4 class="subsection">6.598.2 Content</h4>
|
34299
34310
|
|
34300
|
-
<p
|
34301
|
-
|
34302
|
-
<p>Under construction.
|
34311
|
+
<p>Under construction.
|
34303
34312
|
|
34304
34313
|
<h4 class="subsection">6.598.3 Sample code</h4>
|
34305
34314
|
|
34306
|
-
<pre class="verbatim">void func(int a)
|
34315
|
+
<pre class="verbatim">const void func(int a)
|
34307
34316
|
{
|
34308
|
-
if(a == 0) {
|
34317
|
+
if (a == 0) {
|
34309
34318
|
return 0; /* W0726 */
|
34310
34319
|
}
|
34311
34320
|
}
|
@@ -34317,7 +34326,7 @@ Up: <a rel="up" accesskey="u" href="#Messages">Messages</a>
|
|
34317
34326
|
|
34318
34327
|
<h4 class="subsection">6.598.5 Since</h4>
|
34319
34328
|
|
34320
|
-
<p>
|
34329
|
+
<p>1.4.0
|
34321
34330
|
|
34322
34331
|
<div class="node">
|
34323
34332
|
<a name="W0727"></a>
|
@@ -34338,17 +34347,17 @@ Up: <a rel="up" accesskey="u" href="#Messages">Messages</a>
|
|
34338
34347
|
|
34339
34348
|
<h4 class="subsection">6.599.2 Content</h4>
|
34340
34349
|
|
34341
|
-
<p
|
34342
|
-
|
34343
|
-
<p>Under construction.
|
34350
|
+
<p>Under construction.
|
34344
34351
|
|
34345
34352
|
<h4 class="subsection">6.599.3 Sample code</h4>
|
34346
34353
|
|
34347
34354
|
<pre class="verbatim">enum Fruits {
|
34348
|
-
|
34349
|
-
|
34350
|
-
|
34355
|
+
APPLE = 1,
|
34356
|
+
BANANA,
|
34357
|
+
ORANGE
|
34351
34358
|
};
|
34359
|
+
|
34360
|
+
enum Fruits fruit = 5; /* W0727 */
|
34352
34361
|
</pre>
|
34353
34362
|
|
34354
34363
|
<h4 class="subsection">6.599.4 Related message</h4>
|
@@ -34362,7 +34371,7 @@ Up: <a rel="up" accesskey="u" href="#Messages">Messages</a>
|
|
34362
34371
|
|
34363
34372
|
<h4 class="subsection">6.599.5 Since</h4>
|
34364
34373
|
|
34365
|
-
<p>
|
34374
|
+
<p>1.4.0
|
34366
34375
|
|
34367
34376
|
<div class="node">
|
34368
34377
|
<a name="W0728"></a>
|
@@ -34383,13 +34392,19 @@ Up: <a rel="up" accesskey="u" href="#Messages">Messages</a>
|
|
34383
34392
|
|
34384
34393
|
<h4 class="subsection">6.600.2 Content</h4>
|
34385
34394
|
|
34386
|
-
<p
|
34387
|
-
|
34388
|
-
<p>Under construction.
|
34395
|
+
<p>Under construction.
|
34389
34396
|
|
34390
34397
|
<h4 class="subsection">6.600.3 Sample code</h4>
|
34391
34398
|
|
34392
|
-
<pre class="verbatim"
|
34399
|
+
<pre class="verbatim">enum Color { RED, BLUE, GREEN };
|
34400
|
+
enum Fruits { APPLE, BANANA, ORANGE };
|
34401
|
+
|
34402
|
+
extern void func1(enum Color);
|
34403
|
+
|
34404
|
+
void func2(void)
|
34405
|
+
{
|
34406
|
+
func1(ORANGE); /* W0728 */
|
34407
|
+
}
|
34393
34408
|
</pre>
|
34394
34409
|
|
34395
34410
|
<h4 class="subsection">6.600.4 Related message</h4>
|
@@ -34403,7 +34418,7 @@ Up: <a rel="up" accesskey="u" href="#Messages">Messages</a>
|
|
34403
34418
|
|
34404
34419
|
<h4 class="subsection">6.600.5 Since</h4>
|
34405
34420
|
|
34406
|
-
<p>
|
34421
|
+
<p>1.4.0
|
34407
34422
|
|
34408
34423
|
<div class="node">
|
34409
34424
|
<a name="W0729"></a>
|
@@ -34424,13 +34439,19 @@ Up: <a rel="up" accesskey="u" href="#Messages">Messages</a>
|
|
34424
34439
|
|
34425
34440
|
<h4 class="subsection">6.601.2 Content</h4>
|
34426
34441
|
|
34427
|
-
<p
|
34428
|
-
|
34429
|
-
<p>Under construction.
|
34442
|
+
<p>Under construction.
|
34430
34443
|
|
34431
34444
|
<h4 class="subsection">6.601.3 Sample code</h4>
|
34432
34445
|
|
34433
|
-
<pre class="verbatim"
|
34446
|
+
<pre class="verbatim">enum Color { RED, BLUE, GREEN };
|
34447
|
+
enum Fruits { APPLE, BANANA, ORANGE };
|
34448
|
+
|
34449
|
+
void func(void)
|
34450
|
+
{
|
34451
|
+
enum Color c;
|
34452
|
+
|
34453
|
+
c = ORANGE; /* W0729 */
|
34454
|
+
}
|
34434
34455
|
</pre>
|
34435
34456
|
|
34436
34457
|
<h4 class="subsection">6.601.4 Related message</h4>
|
@@ -34444,7 +34465,7 @@ Up: <a rel="up" accesskey="u" href="#Messages">Messages</a>
|
|
34444
34465
|
|
34445
34466
|
<h4 class="subsection">6.601.5 Since</h4>
|
34446
34467
|
|
34447
|
-
<p>
|
34468
|
+
<p>1.4.0
|
34448
34469
|
|
34449
34470
|
<div class="node">
|
34450
34471
|
<a name="W0730"></a>
|
@@ -34465,13 +34486,17 @@ Up: <a rel="up" accesskey="u" href="#Messages">Messages</a>
|
|
34465
34486
|
|
34466
34487
|
<h4 class="subsection">6.602.2 Content</h4>
|
34467
34488
|
|
34468
|
-
<p
|
34469
|
-
|
34470
|
-
<p>Under construction.
|
34489
|
+
<p>Under construction.
|
34471
34490
|
|
34472
34491
|
<h4 class="subsection">6.602.3 Sample code</h4>
|
34473
34492
|
|
34474
|
-
<pre class="verbatim"
|
34493
|
+
<pre class="verbatim">enum Color { RED, BLUE, GREEN };
|
34494
|
+
enum Fruits { APPLE, BANANA, ORANGE };
|
34495
|
+
|
34496
|
+
enum Color func(void)
|
34497
|
+
{
|
34498
|
+
return ORANGE; /* W0730 */
|
34499
|
+
}
|
34475
34500
|
</pre>
|
34476
34501
|
|
34477
34502
|
<h4 class="subsection">6.602.4 Related message</h4>
|
@@ -34485,7 +34510,7 @@ Up: <a rel="up" accesskey="u" href="#Messages">Messages</a>
|
|
34485
34510
|
|
34486
34511
|
<h4 class="subsection">6.602.5 Since</h4>
|
34487
34512
|
|
34488
|
-
<p>
|
34513
|
+
<p>1.4.0
|
34489
34514
|
|
34490
34515
|
<div class="node">
|
34491
34516
|
<a name="W0731"></a>
|
@@ -34506,13 +34531,24 @@ Up: <a rel="up" accesskey="u" href="#Messages">Messages</a>
|
|
34506
34531
|
|
34507
34532
|
<h4 class="subsection">6.603.2 Content</h4>
|
34508
34533
|
|
34509
|
-
<p
|
34510
|
-
|
34511
|
-
<p>Under construction.
|
34534
|
+
<p>Under construction.
|
34512
34535
|
|
34513
34536
|
<h4 class="subsection">6.603.3 Sample code</h4>
|
34514
34537
|
|
34515
|
-
<pre class="verbatim"
|
34538
|
+
<pre class="verbatim">enum Color { RED, BLUE, GREEN };
|
34539
|
+
enum Fruits { APPLE, BANANA, ORANGE, GRAPE };
|
34540
|
+
|
34541
|
+
int func(enum Color c)
|
34542
|
+
{
|
34543
|
+
switch (c) {
|
34544
|
+
case RED:
|
34545
|
+
return 1;
|
34546
|
+
case GRAPE: /* W0731 */
|
34547
|
+
return 2;
|
34548
|
+
}
|
34549
|
+
|
34550
|
+
return 0;
|
34551
|
+
}
|
34516
34552
|
</pre>
|
34517
34553
|
|
34518
34554
|
<h4 class="subsection">6.603.4 Related message</h4>
|
@@ -34526,7 +34562,7 @@ Up: <a rel="up" accesskey="u" href="#Messages">Messages</a>
|
|
34526
34562
|
|
34527
34563
|
<h4 class="subsection">6.603.5 Since</h4>
|
34528
34564
|
|
34529
|
-
<p>
|
34565
|
+
<p>1.4.0
|
34530
34566
|
|
34531
34567
|
<div class="node">
|
34532
34568
|
<a name="W0732"></a>
|
@@ -34751,13 +34787,11 @@ Up: <a rel="up" accesskey="u" href="#Messages">Messages</a>
|
|
34751
34787
|
|
34752
34788
|
<h4 class="subsection">6.609.2 Content</h4>
|
34753
34789
|
|
34754
|
-
<p
|
34755
|
-
|
34756
|
-
<p>Under construction.
|
34790
|
+
<p>Under construction.
|
34757
34791
|
|
34758
34792
|
<h4 class="subsection">6.609.3 Sample code</h4>
|
34759
34793
|
|
34760
|
-
<pre class="verbatim"
|
34794
|
+
<pre class="verbatim">extern enum Foo foo; /* W0737 */
|
34761
34795
|
</pre>
|
34762
34796
|
|
34763
34797
|
<h4 class="subsection">6.609.4 Related message</h4>
|
@@ -34766,7 +34800,7 @@ Up: <a rel="up" accesskey="u" href="#Messages">Messages</a>
|
|
34766
34800
|
|
34767
34801
|
<h4 class="subsection">6.609.5 Since</h4>
|
34768
34802
|
|
34769
|
-
<p>
|
34803
|
+
<p>1.4.0
|
34770
34804
|
|
34771
34805
|
<div class="node">
|
34772
34806
|
<a name="W0738"></a>
|
@@ -34787,13 +34821,17 @@ Up: <a rel="up" accesskey="u" href="#Messages">Messages</a>
|
|
34787
34821
|
|
34788
34822
|
<h4 class="subsection">6.610.2 Content</h4>
|
34789
34823
|
|
34790
|
-
<p
|
34791
|
-
|
34792
|
-
<p>Under construction.
|
34824
|
+
<p>Under construction.
|
34793
34825
|
|
34794
34826
|
<h4 class="subsection">6.610.3 Sample code</h4>
|
34795
34827
|
|
34796
|
-
<pre class="verbatim"
|
34828
|
+
<pre class="verbatim">/* when char is 8 bit long */
|
34829
|
+
const unsigned char uc1 = 255; /* OK */
|
34830
|
+
const unsigned char uc2 = 256; /* W0738 */
|
34831
|
+
|
34832
|
+
/* when int is 32 bit long */
|
34833
|
+
const unsigned int ui1 = 4294967295; /* OK */
|
34834
|
+
const unsigned int ui2 = 4294967296; /* W0738 */
|
34797
34835
|
</pre>
|
34798
34836
|
|
34799
34837
|
<h4 class="subsection">6.610.4 Related message</h4>
|
@@ -34802,7 +34840,7 @@ Up: <a rel="up" accesskey="u" href="#Messages">Messages</a>
|
|
34802
34840
|
|
34803
34841
|
<h4 class="subsection">6.610.5 Since</h4>
|
34804
34842
|
|
34805
|
-
<p>
|
34843
|
+
<p>1.4.0
|
34806
34844
|
|
34807
34845
|
<div class="node">
|
34808
34846
|
<a name="W0739"></a>
|
@@ -34823,13 +34861,12 @@ Up: <a rel="up" accesskey="u" href="#Messages">Messages</a>
|
|
34823
34861
|
|
34824
34862
|
<h4 class="subsection">6.611.2 Content</h4>
|
34825
34863
|
|
34826
|
-
<p
|
34827
|
-
|
34828
|
-
<p>Under construction.
|
34864
|
+
<p>Under construction.
|
34829
34865
|
|
34830
34866
|
<h4 class="subsection">6.611.3 Sample code</h4>
|
34831
34867
|
|
34832
|
-
<pre class="verbatim">unsigned int
|
34868
|
+
<pre class="verbatim">const unsigned int ui1 = 3U - 3U; /* OK */
|
34869
|
+
const unsigned int ui2 = 3U - 5U; /* W0739 */
|
34833
34870
|
</pre>
|
34834
34871
|
|
34835
34872
|
<h4 class="subsection">6.611.4 Related message</h4>
|
@@ -34841,7 +34878,7 @@ Up: <a rel="up" accesskey="u" href="#Messages">Messages</a>
|
|
34841
34878
|
|
34842
34879
|
<h4 class="subsection">6.611.5 Since</h4>
|
34843
34880
|
|
34844
|
-
<p>
|
34881
|
+
<p>1.4.0
|
34845
34882
|
|
34846
34883
|
<div class="node">
|
34847
34884
|
<a name="W0740"></a>
|
@@ -34862,15 +34899,13 @@ Up: <a rel="up" accesskey="u" href="#Messages">Messages</a>
|
|
34862
34899
|
|
34863
34900
|
<h4 class="subsection">6.612.2 Content</h4>
|
34864
34901
|
|
34865
|
-
<p
|
34866
|
-
|
34867
|
-
<p>Under construction.
|
34902
|
+
<p>Under construction.
|
34868
34903
|
|
34869
34904
|
<h4 class="subsection">6.612.3 Sample code</h4>
|
34870
34905
|
|
34871
|
-
<pre class="verbatim"
|
34872
|
-
|
34873
|
-
unsigned
|
34906
|
+
<pre class="verbatim">/* when int is 32 bit long */
|
34907
|
+
const unsigned int ui1 = 4294967294U + 1U; /* OK */
|
34908
|
+
const unsigned int ui2 = 4294967295U + 1U; /* W0740 */
|
34874
34909
|
</pre>
|
34875
34910
|
|
34876
34911
|
<h4 class="subsection">6.612.4 Related message</h4>
|
@@ -34882,7 +34917,7 @@ unsigned char uc = MACRO + 10; /* W0740 */
|
|
34882
34917
|
|
34883
34918
|
<h4 class="subsection">6.612.5 Since</h4>
|
34884
34919
|
|
34885
|
-
<p>
|
34920
|
+
<p>1.4.0
|
34886
34921
|
|
34887
34922
|
<div class="node">
|
34888
34923
|
<a name="W0741"></a>
|
@@ -34903,13 +34938,13 @@ Up: <a rel="up" accesskey="u" href="#Messages">Messages</a>
|
|
34903
34938
|
|
34904
34939
|
<h4 class="subsection">6.613.2 Content</h4>
|
34905
34940
|
|
34906
|
-
<p
|
34907
|
-
|
34908
|
-
<p>Under construction.
|
34941
|
+
<p>Under construction.
|
34909
34942
|
|
34910
34943
|
<h4 class="subsection">6.613.3 Sample code</h4>
|
34911
34944
|
|
34912
|
-
<pre class="verbatim">/*
|
34945
|
+
<pre class="verbatim">/* when int is 32 bit long */
|
34946
|
+
const unsigned int ui1 = 2000000000U * 2U; /* OK */
|
34947
|
+
const unsigned int ui2 = 3000000000U * 2U; /* W0741 */
|
34913
34948
|
</pre>
|
34914
34949
|
|
34915
34950
|
<h4 class="subsection">6.613.4 Related message</h4>
|
@@ -34921,7 +34956,7 @@ Up: <a rel="up" accesskey="u" href="#Messages">Messages</a>
|
|
34921
34956
|
|
34922
34957
|
<h4 class="subsection">6.613.5 Since</h4>
|
34923
34958
|
|
34924
|
-
<p>
|
34959
|
+
<p>1.4.0
|
34925
34960
|
|
34926
34961
|
<div class="node">
|
34927
34962
|
<a name="W0742"></a>
|
@@ -34980,17 +35015,17 @@ Up: <a rel="up" accesskey="u" href="#Messages">Messages</a>
|
|
34980
35015
|
|
34981
35016
|
<h4 class="subsection">6.615.2 Content</h4>
|
34982
35017
|
|
34983
|
-
<p
|
34984
|
-
|
34985
|
-
<p>Under construction.
|
35018
|
+
<p>Under construction.
|
34986
35019
|
|
34987
35020
|
<h4 class="subsection">6.615.3 Sample code</h4>
|
34988
35021
|
|
34989
|
-
<pre class="verbatim"
|
35022
|
+
<pre class="verbatim">/* when char is 8 bit long */
|
35023
|
+
const signed char sc1 = 127; /* OK */
|
35024
|
+
const signed char sc2 = 128; /* W0743 */
|
34990
35025
|
|
34991
|
-
|
34992
|
-
|
34993
|
-
|
35026
|
+
/* when int is 32 bit long */
|
35027
|
+
const int si1 = 2147483647; /* OK */
|
35028
|
+
const int si2 = 2147483648; /* W0743 */
|
34994
35029
|
</pre>
|
34995
35030
|
|
34996
35031
|
<h4 class="subsection">6.615.4 Related message</h4>
|
@@ -34999,7 +35034,7 @@ sc = MACRO + 150; /* W0743 */
|
|
34999
35034
|
|
35000
35035
|
<h4 class="subsection">6.615.5 Since</h4>
|
35001
35036
|
|
35002
|
-
<p>
|
35037
|
+
<p>1.4.0
|
35003
35038
|
|
35004
35039
|
<div class="node">
|
35005
35040
|
<a name="W0744"></a>
|
@@ -37590,13 +37625,18 @@ Up: <a rel="up" accesskey="u" href="#Messages">Messages</a>
|
|
37590
37625
|
|
37591
37626
|
<h4 class="subsection">6.669.2 Content</h4>
|
37592
37627
|
|
37593
|
-
<p
|
37594
|
-
|
37595
|
-
<p>Under construction.
|
37628
|
+
<p>Under construction.
|
37596
37629
|
|
37597
37630
|
<h4 class="subsection">6.669.3 Sample code</h4>
|
37598
37631
|
|
37599
|
-
<pre class="verbatim">struct
|
37632
|
+
<pre class="verbatim">struct foo { /* W0801 */
|
37633
|
+
};
|
37634
|
+
|
37635
|
+
struct bar { /* W0801 */
|
37636
|
+
int;
|
37637
|
+
int :1;
|
37638
|
+
long;
|
37639
|
+
double;
|
37600
37640
|
};
|
37601
37641
|
</pre>
|
37602
37642
|
|
@@ -37606,7 +37646,7 @@ Up: <a rel="up" accesskey="u" href="#Messages">Messages</a>
|
|
37606
37646
|
|
37607
37647
|
<h4 class="subsection">6.669.5 Since</h4>
|
37608
37648
|
|
37609
|
-
<p>
|
37649
|
+
<p>1.4.0
|
37610
37650
|
|
37611
37651
|
<div class="node">
|
37612
37652
|
<a name="W0802"></a>
|
@@ -37777,13 +37817,11 @@ Up: <a rel="up" accesskey="u" href="#Messages">Messages</a>
|
|
37777
37817
|
|
37778
37818
|
<h4 class="subsection">6.674.2 Content</h4>
|
37779
37819
|
|
37780
|
-
<p
|
37781
|
-
|
37782
|
-
<p>Under construction.
|
37820
|
+
<p>Under construction.
|
37783
37821
|
|
37784
37822
|
<h4 class="subsection">6.674.3 Sample code</h4>
|
37785
37823
|
|
37786
|
-
<pre class="verbatim"
|
37824
|
+
<pre class="verbatim">#define defined !defined /* W0806 */
|
37787
37825
|
</pre>
|
37788
37826
|
|
37789
37827
|
<h4 class="subsection">6.674.4 Related message</h4>
|
@@ -37795,7 +37833,7 @@ Up: <a rel="up" accesskey="u" href="#Messages">Messages</a>
|
|
37795
37833
|
|
37796
37834
|
<h4 class="subsection">6.674.5 Since</h4>
|
37797
37835
|
|
37798
|
-
<p>
|
37836
|
+
<p>1.4.0
|
37799
37837
|
|
37800
37838
|
<div class="node">
|
37801
37839
|
<a name="W0807"></a>
|
@@ -38248,7 +38286,9 @@ Up: <a rel="up" accesskey="u" href="#Messages">Messages</a>
|
|
38248
38286
|
|
38249
38287
|
<h4 class="subsection">6.686.2 Content</h4>
|
38250
38288
|
|
38251
|
-
<p>
|
38289
|
+
<p><b>This message will be supported in AdLint 2.0.0</b>
|
38290
|
+
|
38291
|
+
<p>Under construction.
|
38252
38292
|
|
38253
38293
|
<h4 class="subsection">6.686.3 Sample code</h4>
|
38254
38294
|
|
@@ -38263,7 +38303,7 @@ Up: <a rel="up" accesskey="u" href="#Messages">Messages</a>
|
|
38263
38303
|
|
38264
38304
|
<h4 class="subsection">6.686.5 Since</h4>
|
38265
38305
|
|
38266
|
-
<p>
|
38306
|
+
<p>2.0.0 (planned)
|
38267
38307
|
|
38268
38308
|
<div class="node">
|
38269
38309
|
<a name="W0835"></a>
|
@@ -38734,13 +38774,24 @@ Up: <a rel="up" accesskey="u" href="#Messages">Messages</a>
|
|
38734
38774
|
|
38735
38775
|
<h4 class="subsection">6.699.2 Content</h4>
|
38736
38776
|
|
38737
|
-
<p
|
38738
|
-
|
38739
|
-
<p>Under construction.
|
38777
|
+
<p>Under construction.
|
38740
38778
|
|
38741
38779
|
<h4 class="subsection">6.699.3 Sample code</h4>
|
38742
38780
|
|
38743
|
-
<pre class="verbatim"
|
38781
|
+
<pre class="verbatim">extern const int func1(int); /* W1033 */
|
38782
|
+
|
38783
|
+
const int func2(int i) /* W1033 */
|
38784
|
+
{
|
38785
|
+
return i + 1;
|
38786
|
+
}
|
38787
|
+
|
38788
|
+
const int *func3(int i) /* OK */
|
38789
|
+
{
|
38790
|
+
static int j;
|
38791
|
+
|
38792
|
+
j = i;
|
38793
|
+
return &j;
|
38794
|
+
}
|
38744
38795
|
</pre>
|
38745
38796
|
|
38746
38797
|
<h4 class="subsection">6.699.4 Related message</h4>
|
@@ -38749,7 +38800,7 @@ Up: <a rel="up" accesskey="u" href="#Messages">Messages</a>
|
|
38749
38800
|
|
38750
38801
|
<h4 class="subsection">6.699.5 Since</h4>
|
38751
38802
|
|
38752
|
-
<p>
|
38803
|
+
<p>1.4.0
|
38753
38804
|
|
38754
38805
|
<div class="node">
|
38755
38806
|
<a name="W1034"></a>
|
@@ -40033,13 +40084,24 @@ Up: <a rel="up" accesskey="u" href="#Messages">Messages</a>
|
|
40033
40084
|
|
40034
40085
|
<h4 class="subsection">6.729.2 Content</h4>
|
40035
40086
|
|
40036
|
-
<p
|
40037
|
-
|
40038
|
-
<p>Under construction.
|
40087
|
+
<p>Under construction.
|
40039
40088
|
|
40040
40089
|
<h4 class="subsection">6.729.3 Sample code</h4>
|
40041
40090
|
|
40042
|
-
<
|
40091
|
+
<pre class="verbatim">enum Color { RED, BLUE, GREEN };
|
40092
|
+
|
40093
|
+
int func(enum Color c)
|
40094
|
+
{
|
40095
|
+
switch (c) {
|
40096
|
+
case RED: /* OK */
|
40097
|
+
return 1;
|
40098
|
+
case 1: /* W1064 */
|
40099
|
+
return 2;
|
40100
|
+
}
|
40101
|
+
|
40102
|
+
return 0;
|
40103
|
+
}
|
40104
|
+
</pre>
|
40043
40105
|
|
40044
40106
|
<h4 class="subsection">6.729.4 Related message</h4>
|
40045
40107
|
|
@@ -40060,7 +40122,7 @@ Up: <a rel="up" accesskey="u" href="#Messages">Messages</a>
|
|
40060
40122
|
|
40061
40123
|
<h4 class="subsection">6.729.5 Since</h4>
|
40062
40124
|
|
40063
|
-
<p>
|
40125
|
+
<p>1.4.0
|
40064
40126
|
|
40065
40127
|
<div class="node">
|
40066
40128
|
<a name="W1065"></a>
|
@@ -40081,13 +40143,24 @@ Up: <a rel="up" accesskey="u" href="#Messages">Messages</a>
|
|
40081
40143
|
|
40082
40144
|
<h4 class="subsection">6.730.2 Content</h4>
|
40083
40145
|
|
40084
|
-
<p
|
40085
|
-
|
40086
|
-
<p>Under construction.
|
40146
|
+
<p>Under construction.
|
40087
40147
|
|
40088
40148
|
<h4 class="subsection">6.730.3 Sample code</h4>
|
40089
40149
|
|
40090
|
-
<pre class="verbatim"
|
40150
|
+
<pre class="verbatim">enum Color { RED, BLUE, GREEN };
|
40151
|
+
enum Fruits { APPLE, BANANA, ORANGE, GRAPE };
|
40152
|
+
|
40153
|
+
int func(enum Color c)
|
40154
|
+
{
|
40155
|
+
switch (c) {
|
40156
|
+
case RED: /* OK */
|
40157
|
+
return 1;
|
40158
|
+
case ORANGE: /* W1065 */
|
40159
|
+
return 2;
|
40160
|
+
}
|
40161
|
+
|
40162
|
+
return 0;
|
40163
|
+
}
|
40091
40164
|
</pre>
|
40092
40165
|
|
40093
40166
|
<h4 class="subsection">6.730.4 Related message</h4>
|
@@ -40109,7 +40182,7 @@ Up: <a rel="up" accesskey="u" href="#Messages">Messages</a>
|
|
40109
40182
|
|
40110
40183
|
<h4 class="subsection">6.730.5 Since</h4>
|
40111
40184
|
|
40112
|
-
<p>
|
40185
|
+
<p>1.4.0
|
40113
40186
|
|
40114
40187
|
<div class="node">
|
40115
40188
|
<a name="W9001"></a>
|