adlint 1.14.0 → 1.16.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 +265 -0
- data/MANIFEST +15 -0
- data/NEWS +30 -4
- data/etc/conf.d/noarch/adlint_all_bat.erb +1 -1
- data/etc/mesg.d/en_US/messages.yml +3 -3
- data/etc/mesg.d/ja_JP/messages.yml +3 -3
- data/features/message_detection/W0001.feature +2 -0
- data/features/message_detection/W0007.feature +8 -0
- data/features/message_detection/W0010.feature +4 -1
- data/features/message_detection/W0013.feature +8 -0
- data/features/message_detection/W0093.feature +3 -0
- data/features/message_detection/W0104.feature +7 -0
- data/features/message_detection/W0643.feature +80 -0
- data/features/message_detection/W0646.feature +115 -0
- data/features/message_detection/W0691.feature +100 -0
- data/features/message_detection/W0692.feature +32 -0
- data/features/message_detection/W0694.feature +128 -0
- data/features/message_detection/W0716.feature +3 -0
- data/features/message_detection/W0717.feature +3 -0
- data/features/message_detection/W0718.feature +3 -0
- data/features/message_detection/W0723.feature +2 -0
- data/features/message_detection/W0732.feature +3 -0
- data/features/message_detection/W0733.feature +3 -0
- data/features/message_detection/W0734.feature +8 -0
- data/features/message_detection/W0735.feature +8 -0
- data/features/message_detection/W0805.feature +92 -0
- data/features/message_detection/W0811.feature +79 -0
- data/features/message_detection/W1031.feature +7 -0
- data/features/message_detection/W1040.feature +89 -0
- data/features/message_detection/W1041.feature +15 -0
- data/features/message_detection/W1046.feature +60 -0
- data/features/message_detection/W1052.feature +3 -0
- data/features/message_detection/W1066.feature +3 -0
- data/features/message_detection/W1067.feature +3 -0
- data/features/message_detection/W1068.feature +3 -0
- data/features/message_detection/W1069.feature +5 -0
- data/features/message_detection/W1070.feature +6 -0
- data/features/message_detection/W1072.feature +1 -0
- data/features/message_detection/W1073.feature +145 -0
- data/features/message_detection/W1074.feature +139 -0
- data/features/message_detection/W1075.feature +86 -0
- data/features/message_detection/W1076.feature +66 -0
- data/features/message_detection/W1077.feature +105 -0
- data/features/message_detection/W9003.feature +4 -0
- data/lib/adlint/c/ctrlexpr.rb +3 -0
- data/lib/adlint/c/interp.rb +11 -5
- data/lib/adlint/c/lexer.rb +14 -3
- data/lib/adlint/c/message.rb +192 -0
- data/lib/adlint/c/parser.rb +19 -3
- data/lib/adlint/c/parser.y +18 -2
- data/lib/adlint/c/phase.rb +19 -6
- data/lib/adlint/c/syntax.rb +6 -0
- data/lib/adlint/c/type.rb +5 -1
- data/lib/adlint/cpp/constexpr.rb +3 -3
- data/lib/adlint/cpp/constexpr.y +3 -3
- data/lib/adlint/cpp/eval.rb +60 -86
- data/lib/adlint/cpp/lexer.rb +82 -28
- data/lib/adlint/cpp/macro.rb +64 -35
- data/lib/adlint/cpp/message.rb +137 -4
- data/lib/adlint/cpp/phase.rb +8 -0
- data/lib/adlint/cpp/syntax.rb +25 -0
- data/lib/adlint/lang.rb +2 -1
- data/lib/adlint/version.rb +2 -2
- data/share/doc/developers_guide_ja.html +3 -3
- data/share/doc/developers_guide_ja.texi +1 -1
- data/share/doc/users_guide_en.html +102 -85
- data/share/doc/users_guide_en.texi +85 -69
- data/share/doc/users_guide_ja.html +102 -94
- data/share/doc/users_guide_ja.texi +85 -77
- metadata +17 -2
data/lib/adlint/cpp/phase.rb
CHANGED
@@ -111,18 +111,26 @@ module Cpp #:nodoc:
|
|
111
111
|
W0632.new(context),
|
112
112
|
W0633.new(context),
|
113
113
|
W0634.new(context),
|
114
|
+
W0643.new(context),
|
114
115
|
W0687.new(context),
|
115
116
|
W0688.new(context),
|
116
117
|
W0689.new(context),
|
117
118
|
W0690.new(context),
|
119
|
+
W0691.new(context),
|
120
|
+
W0692.new(context),
|
118
121
|
W0695.new(context),
|
119
122
|
W0696.new(context),
|
120
123
|
W0804.new(context),
|
124
|
+
W0805.new(context),
|
121
125
|
W0806.new(context),
|
122
126
|
W0807.new(context),
|
123
127
|
W0808.new(context),
|
128
|
+
W0811.new(context),
|
124
129
|
W0831.new(context),
|
125
130
|
W0832.new(context),
|
131
|
+
W1040.new(context),
|
132
|
+
W1041.new(context),
|
133
|
+
W1046.new(context),
|
126
134
|
W9002.new(context)
|
127
135
|
]
|
128
136
|
end
|
data/lib/adlint/cpp/syntax.rb
CHANGED
@@ -497,6 +497,22 @@ module Cpp #:nodoc:
|
|
497
497
|
end
|
498
498
|
end
|
499
499
|
|
500
|
+
class UnknownDirective < GroupPart
|
501
|
+
def initialize(token)
|
502
|
+
@token = token
|
503
|
+
end
|
504
|
+
|
505
|
+
attr_reader :token
|
506
|
+
|
507
|
+
def location
|
508
|
+
@token.location
|
509
|
+
end
|
510
|
+
|
511
|
+
def inspect(indent = 0)
|
512
|
+
" " * indent + "#{short_class_name} (#{@token.inspect})"
|
513
|
+
end
|
514
|
+
end
|
515
|
+
|
500
516
|
class AsmSection < GroupPart
|
501
517
|
def initialize(asm_line, endasm_line)
|
502
518
|
@asm_line = asm_line
|
@@ -1003,6 +1019,9 @@ module Cpp #:nodoc:
|
|
1003
1019
|
def visit_null_directive(node)
|
1004
1020
|
end
|
1005
1021
|
|
1022
|
+
def visit_unknown_directive(node)
|
1023
|
+
end
|
1024
|
+
|
1006
1025
|
def visit_asm_section(node)
|
1007
1026
|
end
|
1008
1027
|
|
@@ -1138,6 +1157,8 @@ module Cpp #:nodoc:
|
|
1138
1157
|
def_plugin :leave_text_line
|
1139
1158
|
def_plugin :enter_null_directive
|
1140
1159
|
def_plugin :leave_null_directive
|
1160
|
+
def_plugin :enter_unknown_directive
|
1161
|
+
def_plugin :leave_unknown_directive
|
1141
1162
|
def_plugin :enter_pp_tokens
|
1142
1163
|
def_plugin :leave_pp_tokens
|
1143
1164
|
def_plugin :enter_error_expression
|
@@ -1271,6 +1292,10 @@ module Cpp #:nodoc:
|
|
1271
1292
|
visit_with_notifying(__method__, node) { super }
|
1272
1293
|
end
|
1273
1294
|
|
1295
|
+
def visit_unknown_directive(node)
|
1296
|
+
visit_with_notifying(__method__, node) { super }
|
1297
|
+
end
|
1298
|
+
|
1274
1299
|
def visit_pp_tokens(node)
|
1275
1300
|
visit_with_notifying(__method__, node) { super }
|
1276
1301
|
end
|
data/lib/adlint/lang.rb
CHANGED
@@ -69,10 +69,10 @@ module AdLint #:nodoc:
|
|
69
69
|
def single_module_phases
|
70
70
|
[
|
71
71
|
AdLint::Cpp::Prepare1Phase,
|
72
|
-
AdLint::C::Prepare1Phase,
|
73
72
|
AdLint::Cpp::Prepare2Phase,
|
74
73
|
AdLint::Cpp::EvalPhase,
|
75
74
|
AdLint::Cpp::SubstPhase,
|
75
|
+
AdLint::C::Prepare1Phase,
|
76
76
|
AdLint::C::ParsePhase,
|
77
77
|
AdLint::C::ResolvePhase,
|
78
78
|
AdLint::C::Prepare2Phase,
|
@@ -89,6 +89,7 @@ module AdLint #:nodoc:
|
|
89
89
|
AdLint::Cpp::Prepare1Phase,
|
90
90
|
AdLint::Cpp::EvalPhase,
|
91
91
|
AdLint::Cpp::SubstPhase,
|
92
|
+
AdLint::C::Prepare1Phase,
|
92
93
|
AdLint::C::ParsePhase
|
93
94
|
].freeze
|
94
95
|
end
|
data/lib/adlint/version.rb
CHANGED
@@ -1,8 +1,8 @@
|
|
1
1
|
<html lang="ja">
|
2
2
|
<head>
|
3
|
-
<title>AdLint 1.
|
3
|
+
<title>AdLint 1.16.0 開発者ガイド</title>
|
4
4
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
5
|
-
<meta name="description" content="AdLint 1.
|
5
|
+
<meta name="description" content="AdLint 1.16.0 開発者ガイド">
|
6
6
|
<meta name="generator" content="makeinfo 4.13">
|
7
7
|
<link title="Top" rel="top" href="#Top">
|
8
8
|
<link href="http://www.gnu.org/software/texinfo/" rel="generator-home" title="Texinfo Homepage">
|
@@ -44,7 +44,7 @@ td { border: 1px solid black; }
|
|
44
44
|
--></style>
|
45
45
|
</head>
|
46
46
|
<body>
|
47
|
-
<h1 class="settitle">AdLint 1.
|
47
|
+
<h1 class="settitle">AdLint 1.16.0 開発者ガイド</h1>
|
48
48
|
<div class="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.16.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.16.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.16.0 User's Guide</h1>
|
48
48
|
<div class="node">
|
49
49
|
<a name="Top"></a>
|
50
50
|
<p><hr>
|
@@ -2654,7 +2654,7 @@ Up: <a rel="up" accesskey="u" href="#Top">Top</a>
|
|
2654
2654
|
<li><a href="#W0689">W0689</a>: #line directive syntax doesn't match `#line integer constant \"string\"'.
|
2655
2655
|
<li><a href="#W0690">W0690</a>: No line number after #line directive.
|
2656
2656
|
<li><a href="#W0691">W0691</a>: The result of `##' operator is not valid preprocessing token.
|
2657
|
-
<li><a href="#W0692">W0692</a>: A function-like macro doesn't given an actual argument.
|
2657
|
+
<li><a href="#W0692">W0692</a>: A function-like macro `%s' doesn't given an actual argument.
|
2658
2658
|
<li><a href="#W0693">W0693</a>: A function-like macro is called by actual argument which its definition is smaller.
|
2659
2659
|
<li><a href="#W0694">W0694</a>: 'assert' macro is inhibited to call the function named `assert'. This result is undefined.
|
2660
2660
|
<li><a href="#W0695">W0695</a>: If #undef the 'assert' macro, and enable to call its name function, the result is undefined.
|
@@ -2790,7 +2790,7 @@ Up: <a rel="up" accesskey="u" href="#Top">Top</a>
|
|
2790
2790
|
<li><a href="#W1037">W1037</a>: `%s' which has external coupling is declared more than one, this is incompatible.
|
2791
2791
|
<li><a href="#W1039">W1039</a>: `ll' is used in conversion specifier.
|
2792
2792
|
<li><a href="#W1040">W1040</a>: An unrecognizable string is described after preprocessing directive.
|
2793
|
-
<li><a href="#W1041">W1041</a>:
|
2793
|
+
<li><a href="#W1041">W1041</a>: `%s' is not official preprocessing directive of ISO C standards.
|
2794
2794
|
<li><a href="#W1042">W1042</a>: 'sizeof' operator is using in preprocessing directive. This is the language extension.
|
2795
2795
|
<li><a href="#W1043">W1043</a>: `@ address' is not supported ISO C standards. It will be considered as language extension.
|
2796
2796
|
<li><a href="#W1044">W1044</a>: An expression which includes the statement is not supported ISO C standards. It will be considered as language extension.
|
@@ -30445,13 +30445,12 @@ Up: <a rel="up" accesskey="u" href="#Messages">Messages</a>
|
|
30445
30445
|
|
30446
30446
|
<h4 class="subsection">6.525.2 Content</h4>
|
30447
30447
|
|
30448
|
-
<p
|
30449
|
-
|
30450
|
-
<p>Under construction.
|
30448
|
+
<p>Under construction.
|
30451
30449
|
|
30452
30450
|
<h4 class="subsection">6.525.3 Sample code</h4>
|
30453
30451
|
|
30454
|
-
<pre class="verbatim"
|
30452
|
+
<pre class="verbatim">#define MACRO(x) #x
|
30453
|
+
const char *str = MACRO(foo\); /* W0643 */
|
30455
30454
|
</pre>
|
30456
30455
|
|
30457
30456
|
<h4 class="subsection">6.525.4 Related message</h4>
|
@@ -30465,7 +30464,7 @@ Up: <a rel="up" accesskey="u" href="#Messages">Messages</a>
|
|
30465
30464
|
|
30466
30465
|
<h4 class="subsection">6.525.5 Since</h4>
|
30467
30466
|
|
30468
|
-
<p>
|
30467
|
+
<p>1.16.0
|
30469
30468
|
|
30470
30469
|
<div class="node">
|
30471
30470
|
<a name="W0644"></a>
|
@@ -30573,13 +30572,11 @@ Up: <a rel="up" accesskey="u" href="#Messages">Messages</a>
|
|
30573
30572
|
|
30574
30573
|
<h4 class="subsection">6.528.2 Content</h4>
|
30575
30574
|
|
30576
|
-
<p
|
30577
|
-
|
30578
|
-
<p>Under construction.
|
30575
|
+
<p>Under construction.
|
30579
30576
|
|
30580
30577
|
<h4 class="subsection">6.528.3 Sample code</h4>
|
30581
30578
|
|
30582
|
-
<pre class="verbatim"
|
30579
|
+
<pre class="verbatim">static const char *str = "foo" L"bar"; /* W0646 */
|
30583
30580
|
</pre>
|
30584
30581
|
|
30585
30582
|
<h4 class="subsection">6.528.4 Related message</h4>
|
@@ -30593,7 +30590,7 @@ Up: <a rel="up" accesskey="u" href="#Messages">Messages</a>
|
|
30593
30590
|
|
30594
30591
|
<h4 class="subsection">6.528.5 Since</h4>
|
30595
30592
|
|
30596
|
-
<p>
|
30593
|
+
<p>1.16.0
|
30597
30594
|
|
30598
30595
|
<div class="node">
|
30599
30596
|
<a name="W0649"></a>
|
@@ -33174,13 +33171,13 @@ Up: <a rel="up" accesskey="u" href="#Messages">Messages</a>
|
|
33174
33171
|
|
33175
33172
|
<h4 class="subsection">6.569.2 Content</h4>
|
33176
33173
|
|
33177
|
-
<p
|
33178
|
-
|
33179
|
-
<p>Under construction.
|
33174
|
+
<p>Under construction.
|
33180
33175
|
|
33181
33176
|
<h4 class="subsection">6.569.3 Sample code</h4>
|
33182
33177
|
|
33183
|
-
<pre class="verbatim"
|
33178
|
+
<pre class="verbatim">#define MACRO(a, b) a ## b
|
33179
|
+
|
33180
|
+
double d = (double) MACRO(-, 123); /* W0691 */
|
33184
33181
|
</pre>
|
33185
33182
|
|
33186
33183
|
<h4 class="subsection">6.569.4 Related message</h4>
|
@@ -33194,7 +33191,7 @@ Up: <a rel="up" accesskey="u" href="#Messages">Messages</a>
|
|
33194
33191
|
|
33195
33192
|
<h4 class="subsection">6.569.5 Since</h4>
|
33196
33193
|
|
33197
|
-
<p>
|
33194
|
+
<p>1.16.0
|
33198
33195
|
|
33199
33196
|
<div class="node">
|
33200
33197
|
<a name="W0692"></a>
|
@@ -33211,17 +33208,17 @@ Up: <a rel="up" accesskey="u" href="#Messages">Messages</a>
|
|
33211
33208
|
|
33212
33209
|
<h4 class="subsection">6.570.1 Message body</h4>
|
33213
33210
|
|
33214
|
-
<p>A function-like macro doesn't given an actual argument.
|
33211
|
+
<p>A function-like macro `%s' doesn't given an actual argument.
|
33215
33212
|
|
33216
33213
|
<h4 class="subsection">6.570.2 Content</h4>
|
33217
33214
|
|
33218
|
-
<p
|
33219
|
-
|
33220
|
-
<p>Under construction.
|
33215
|
+
<p>Under construction.
|
33221
33216
|
|
33222
33217
|
<h4 class="subsection">6.570.3 Sample code</h4>
|
33223
33218
|
|
33224
|
-
<pre class="verbatim"
|
33219
|
+
<pre class="verbatim">#define MACRO(a) #a
|
33220
|
+
|
33221
|
+
const char *s = (char *) MACRO(); /* W0692 */
|
33225
33222
|
</pre>
|
33226
33223
|
|
33227
33224
|
<h4 class="subsection">6.570.4 Related message</h4>
|
@@ -33232,7 +33229,7 @@ Up: <a rel="up" accesskey="u" href="#Messages">Messages</a>
|
|
33232
33229
|
|
33233
33230
|
<h4 class="subsection">6.570.5 Since</h4>
|
33234
33231
|
|
33235
|
-
<p>
|
33232
|
+
<p>1.16.0
|
33236
33233
|
|
33237
33234
|
<div class="node">
|
33238
33235
|
<a name="W0693"></a>
|
@@ -33265,7 +33262,7 @@ Up: <a rel="up" accesskey="u" href="#Messages">Messages</a>
|
|
33265
33262
|
<h4 class="subsection">6.571.4 Related message</h4>
|
33266
33263
|
|
33267
33264
|
<ul>
|
33268
|
-
<li><a href="#W0692">W0692</a> A function-like macro doesn't given an actual argument.
|
33265
|
+
<li><a href="#W0692">W0692</a> A function-like macro `%s' doesn't given an actual argument.
|
33269
33266
|
</ul>
|
33270
33267
|
|
33271
33268
|
<h4 class="subsection">6.571.5 Since</h4>
|
@@ -33291,13 +33288,17 @@ Up: <a rel="up" accesskey="u" href="#Messages">Messages</a>
|
|
33291
33288
|
|
33292
33289
|
<h4 class="subsection">6.572.2 Content</h4>
|
33293
33290
|
|
33294
|
-
<p
|
33295
|
-
|
33296
|
-
<p>Under construction.
|
33291
|
+
<p>Under construction.
|
33297
33292
|
|
33298
33293
|
<h4 class="subsection">6.572.3 Sample code</h4>
|
33299
33294
|
|
33300
|
-
<pre class="verbatim"
|
33295
|
+
<pre class="verbatim">#undef assert
|
33296
|
+
extern void assert(int);
|
33297
|
+
|
33298
|
+
void foo(void)
|
33299
|
+
{
|
33300
|
+
assert("should not be reached" == ""); /* W0694 */
|
33301
|
+
}
|
33301
33302
|
</pre>
|
33302
33303
|
|
33303
33304
|
<h4 class="subsection">6.572.4 Related message</h4>
|
@@ -33306,7 +33307,7 @@ Up: <a rel="up" accesskey="u" href="#Messages">Messages</a>
|
|
33306
33307
|
|
33307
33308
|
<h4 class="subsection">6.572.5 Since</h4>
|
33308
33309
|
|
33309
|
-
<p>
|
33310
|
+
<p>1.16.0
|
33310
33311
|
|
33311
33312
|
<div class="node">
|
33312
33313
|
<a name="W0695"></a>
|
@@ -37886,13 +37887,13 @@ Up: <a rel="up" accesskey="u" href="#Messages">Messages</a>
|
|
37886
37887
|
|
37887
37888
|
<h4 class="subsection">6.673.2 Content</h4>
|
37888
37889
|
|
37889
|
-
<p
|
37890
|
-
|
37891
|
-
<p>Under construction.
|
37890
|
+
<p>Under construction.
|
37892
37891
|
|
37893
37892
|
<h4 class="subsection">6.673.3 Sample code</h4>
|
37894
37893
|
|
37895
|
-
<pre class="verbatim">#if defined
|
37894
|
+
<pre class="verbatim">#if defined "foo" /* W0805 */
|
37895
|
+
int i = 0;
|
37896
|
+
#endif
|
37896
37897
|
</pre>
|
37897
37898
|
|
37898
37899
|
<h4 class="subsection">6.673.4 Related message</h4>
|
@@ -37903,7 +37904,7 @@ Up: <a rel="up" accesskey="u" href="#Messages">Messages</a>
|
|
37903
37904
|
|
37904
37905
|
<h4 class="subsection">6.673.5 Since</h4>
|
37905
37906
|
|
37906
|
-
<p>
|
37907
|
+
<p>1.16.0
|
37907
37908
|
|
37908
37909
|
<div class="node">
|
37909
37910
|
<a name="W0806"></a>
|
@@ -38123,13 +38124,15 @@ Up: <a rel="up" accesskey="u" href="#Messages">Messages</a>
|
|
38123
38124
|
|
38124
38125
|
<h4 class="subsection">6.679.2 Content</h4>
|
38125
38126
|
|
38126
|
-
<p
|
38127
|
-
|
38128
|
-
<p>Under construction.
|
38127
|
+
<p>Under construction.
|
38129
38128
|
|
38130
38129
|
<h4 class="subsection">6.679.3 Sample code</h4>
|
38131
38130
|
|
38132
|
-
<pre class="verbatim"
|
38131
|
+
<pre class="verbatim">#define COND defined(FOO)
|
38132
|
+
|
38133
|
+
#if COND /* W0811 */
|
38134
|
+
int i = 0;
|
38135
|
+
#endif
|
38133
38136
|
</pre>
|
38134
38137
|
|
38135
38138
|
<h4 class="subsection">6.679.4 Related message</h4>
|
@@ -38138,7 +38141,7 @@ Up: <a rel="up" accesskey="u" href="#Messages">Messages</a>
|
|
38138
38141
|
|
38139
38142
|
<h4 class="subsection">6.679.5 Since</h4>
|
38140
38143
|
|
38141
|
-
<p>
|
38144
|
+
<p>1.16.0
|
38142
38145
|
|
38143
38146
|
<div class="node">
|
38144
38147
|
<a name="W0827"></a>
|
@@ -39147,25 +39150,33 @@ Up: <a rel="up" accesskey="u" href="#Messages">Messages</a>
|
|
39147
39150
|
|
39148
39151
|
<h4 class="subsection">6.705.2 Content</h4>
|
39149
39152
|
|
39150
|
-
<p
|
39151
|
-
|
39152
|
-
<p>Under construction.
|
39153
|
+
<p>Under construction.
|
39153
39154
|
|
39154
39155
|
<h4 class="subsection">6.705.3 Sample code</h4>
|
39155
39156
|
|
39156
|
-
<pre class="verbatim"
|
39157
|
+
<pre class="verbatim">#define TEST
|
39158
|
+
|
39159
|
+
#ifdef TEST
|
39160
|
+
#if defined(CASE_1)
|
39161
|
+
int i = 1;
|
39162
|
+
#elif defined(CASE_2)
|
39163
|
+
int i = 2;
|
39164
|
+
#endif CASE /* W1040 */
|
39165
|
+
#else
|
39166
|
+
int i = 0;
|
39167
|
+
#endif TEST /* W1040 */
|
39157
39168
|
</pre>
|
39158
39169
|
|
39159
39170
|
<h4 class="subsection">6.705.4 Related message</h4>
|
39160
39171
|
|
39161
39172
|
<ul>
|
39162
|
-
<li><a href="#W1041">W1041</a>
|
39173
|
+
<li><a href="#W1041">W1041</a> `%s' is not official preprocessing directive of ISO C standards.
|
39163
39174
|
<li><a href="#W1042">W1042</a> 'sizeof' operator is using in preprocessing directive. This is the language extension.
|
39164
39175
|
</ul>
|
39165
39176
|
|
39166
39177
|
<h4 class="subsection">6.705.5 Since</h4>
|
39167
39178
|
|
39168
|
-
<p>
|
39179
|
+
<p>1.16.0
|
39169
39180
|
|
39170
39181
|
<div class="node">
|
39171
39182
|
<a name="W1041"></a>
|
@@ -39182,17 +39193,15 @@ Up: <a rel="up" accesskey="u" href="#Messages">Messages</a>
|
|
39182
39193
|
|
39183
39194
|
<h4 class="subsection">6.706.1 Message body</h4>
|
39184
39195
|
|
39185
|
-
<p
|
39196
|
+
<p>`%s' is not official preprocessing directive of ISO C standards.
|
39186
39197
|
|
39187
39198
|
<h4 class="subsection">6.706.2 Content</h4>
|
39188
39199
|
|
39189
|
-
<p
|
39190
|
-
|
39191
|
-
<p>Under construction.
|
39200
|
+
<p>Under construction.
|
39192
39201
|
|
39193
39202
|
<h4 class="subsection">6.706.3 Sample code</h4>
|
39194
39203
|
|
39195
|
-
<pre class="verbatim"
|
39204
|
+
<pre class="verbatim">#compiler_specific_extension 1 2.3 "4" /* W1041 */
|
39196
39205
|
</pre>
|
39197
39206
|
|
39198
39207
|
<h4 class="subsection">6.706.4 Related message</h4>
|
@@ -39204,7 +39213,7 @@ Up: <a rel="up" accesskey="u" href="#Messages">Messages</a>
|
|
39204
39213
|
|
39205
39214
|
<h4 class="subsection">6.706.5 Since</h4>
|
39206
39215
|
|
39207
|
-
<p>
|
39216
|
+
<p>1.16.0
|
39208
39217
|
|
39209
39218
|
<div class="node">
|
39210
39219
|
<a name="W1042"></a>
|
@@ -39238,7 +39247,7 @@ Up: <a rel="up" accesskey="u" href="#Messages">Messages</a>
|
|
39238
39247
|
|
39239
39248
|
<ul>
|
39240
39249
|
<li><a href="#W1040">W1040</a> An unrecognizable string is described after preprocessing directive.
|
39241
|
-
<li><a href="#W1041">W1041</a>
|
39250
|
+
<li><a href="#W1041">W1041</a> `%s' is not official preprocessing directive of ISO C standards.
|
39242
39251
|
</ul>
|
39243
39252
|
|
39244
39253
|
<h4 class="subsection">6.707.5 Since</h4>
|
@@ -39381,13 +39390,14 @@ Up: <a rel="up" accesskey="u" href="#Messages">Messages</a>
|
|
39381
39390
|
|
39382
39391
|
<h4 class="subsection">6.711.2 Content</h4>
|
39383
39392
|
|
39384
|
-
<p
|
39385
|
-
|
39386
|
-
<p>Under construction.
|
39393
|
+
<p>Under construction.
|
39387
39394
|
|
39388
39395
|
<h4 class="subsection">6.711.3 Sample code</h4>
|
39389
39396
|
|
39390
|
-
<pre class="verbatim"
|
39397
|
+
<pre class="verbatim">#define FOO(a, b) /* OK */ \
|
39398
|
+
( /* W1046 */ \
|
39399
|
+
(a) + (b) /* W1046 */ \
|
39400
|
+
)
|
39391
39401
|
</pre>
|
39392
39402
|
|
39393
39403
|
<h4 class="subsection">6.711.4 Related message</h4>
|
@@ -39396,7 +39406,7 @@ Up: <a rel="up" accesskey="u" href="#Messages">Messages</a>
|
|
39396
39406
|
|
39397
39407
|
<h4 class="subsection">6.711.5 Since</h4>
|
39398
39408
|
|
39399
|
-
<p>
|
39409
|
+
<p>1.16.0
|
39400
39410
|
|
39401
39411
|
<div class="node">
|
39402
39412
|
<a name="W1047"></a>
|
@@ -40683,13 +40693,19 @@ Up: <a rel="up" accesskey="u" href="#Messages">Messages</a>
|
|
40683
40693
|
|
40684
40694
|
<h4 class="subsection">6.738.2 Content</h4>
|
40685
40695
|
|
40686
|
-
<p
|
40687
|
-
|
40688
|
-
<p>Under construction.
|
40696
|
+
<p>Under construction.
|
40689
40697
|
|
40690
40698
|
<h4 class="subsection">6.738.3 Sample code</h4>
|
40691
40699
|
|
40692
|
-
<pre class="verbatim"
|
40700
|
+
<pre class="verbatim">extern int bar(void);
|
40701
|
+
static void foo(void)
|
40702
|
+
{
|
40703
|
+
int i;
|
40704
|
+
int j;
|
40705
|
+
for (i = 0, bar(); i < 10; i++) { /* W1073 */
|
40706
|
+
j = bar(); /* OK */
|
40707
|
+
}
|
40708
|
+
}
|
40693
40709
|
</pre>
|
40694
40710
|
|
40695
40711
|
<h4 class="subsection">6.738.4 Related message</h4>
|
@@ -40698,7 +40714,7 @@ Up: <a rel="up" accesskey="u" href="#Messages">Messages</a>
|
|
40698
40714
|
|
40699
40715
|
<h4 class="subsection">6.738.5 Since</h4>
|
40700
40716
|
|
40701
|
-
<p>
|
40717
|
+
<p>1.16.0
|
40702
40718
|
|
40703
40719
|
<div class="node">
|
40704
40720
|
<a name="W1074"></a>
|
@@ -40719,13 +40735,21 @@ Up: <a rel="up" accesskey="u" href="#Messages">Messages</a>
|
|
40719
40735
|
|
40720
40736
|
<h4 class="subsection">6.739.2 Content</h4>
|
40721
40737
|
|
40722
|
-
<p
|
40723
|
-
|
40724
|
-
<p>Under construction.
|
40738
|
+
<p>Under construction.
|
40725
40739
|
|
40726
40740
|
<h4 class="subsection">6.739.3 Sample code</h4>
|
40727
40741
|
|
40728
|
-
<pre class="verbatim">int
|
40742
|
+
<pre class="verbatim">static int foo(void)
|
40743
|
+
{
|
40744
|
+
int i = 0;
|
40745
|
+
|
40746
|
+
if (sizeof(i++) == 4) { /* W1074 */
|
40747
|
+
return 0;
|
40748
|
+
}
|
40749
|
+
else {
|
40750
|
+
return 1;
|
40751
|
+
}
|
40752
|
+
}
|
40729
40753
|
</pre>
|
40730
40754
|
|
40731
40755
|
<h4 class="subsection">6.739.4 Related message</h4>
|
@@ -40734,7 +40758,7 @@ Up: <a rel="up" accesskey="u" href="#Messages">Messages</a>
|
|
40734
40758
|
|
40735
40759
|
<h4 class="subsection">6.739.5 Since</h4>
|
40736
40760
|
|
40737
|
-
<p>
|
40761
|
+
<p>1.16.0
|
40738
40762
|
|
40739
40763
|
<div class="node">
|
40740
40764
|
<a name="W1075"></a>
|
@@ -40755,9 +40779,7 @@ Up: <a rel="up" accesskey="u" href="#Messages">Messages</a>
|
|
40755
40779
|
|
40756
40780
|
<h4 class="subsection">6.740.2 Content</h4>
|
40757
40781
|
|
40758
|
-
<p
|
40759
|
-
|
40760
|
-
<p>Under construction.
|
40782
|
+
<p>Under construction.
|
40761
40783
|
|
40762
40784
|
<h4 class="subsection">6.740.3 Sample code</h4>
|
40763
40785
|
|
@@ -40774,7 +40796,7 @@ int func(void) /* W1075 */
|
|
40774
40796
|
|
40775
40797
|
<h4 class="subsection">6.740.5 Since</h4>
|
40776
40798
|
|
40777
|
-
<p>
|
40799
|
+
<p>1.16.0
|
40778
40800
|
|
40779
40801
|
<div class="node">
|
40780
40802
|
<a name="W1076"></a>
|
@@ -40795,16 +40817,13 @@ Up: <a rel="up" accesskey="u" href="#Messages">Messages</a>
|
|
40795
40817
|
|
40796
40818
|
<h4 class="subsection">6.741.2 Content</h4>
|
40797
40819
|
|
40798
|
-
<p
|
40799
|
-
|
40800
|
-
<p>Under construction.
|
40820
|
+
<p>Under construction.
|
40801
40821
|
|
40802
40822
|
<h4 class="subsection">6.741.3 Sample code</h4>
|
40803
40823
|
|
40804
40824
|
<pre class="verbatim">static int func(void) /* W1076 */
|
40805
40825
|
{
|
40806
|
-
|
40807
|
-
return ret;
|
40826
|
+
return 0;
|
40808
40827
|
}
|
40809
40828
|
</pre>
|
40810
40829
|
|
@@ -40814,7 +40833,7 @@ Up: <a rel="up" accesskey="u" href="#Messages">Messages</a>
|
|
40814
40833
|
|
40815
40834
|
<h4 class="subsection">6.741.5 Since</h4>
|
40816
40835
|
|
40817
|
-
<p>
|
40836
|
+
<p>1.16.0
|
40818
40837
|
|
40819
40838
|
<div class="node">
|
40820
40839
|
<a name="W1077"></a>
|
@@ -40835,13 +40854,11 @@ Up: <a rel="up" accesskey="u" href="#Messages">Messages</a>
|
|
40835
40854
|
|
40836
40855
|
<h4 class="subsection">6.742.2 Content</h4>
|
40837
40856
|
|
40838
|
-
<p
|
40839
|
-
|
40840
|
-
<p>Under construction.
|
40857
|
+
<p>Under construction.
|
40841
40858
|
|
40842
40859
|
<h4 class="subsection">6.742.3 Sample code</h4>
|
40843
40860
|
|
40844
|
-
<pre class="verbatim">extern int
|
40861
|
+
<pre class="verbatim">extern int a[]; /* W1077 */
|
40845
40862
|
</pre>
|
40846
40863
|
|
40847
40864
|
<h4 class="subsection">6.742.4 Related message</h4>
|
@@ -40850,7 +40867,7 @@ Up: <a rel="up" accesskey="u" href="#Messages">Messages</a>
|
|
40850
40867
|
|
40851
40868
|
<h4 class="subsection">6.742.5 Since</h4>
|
40852
40869
|
|
40853
|
-
<p>
|
40870
|
+
<p>1.16.0
|
40854
40871
|
|
40855
40872
|
<div class="node">
|
40856
40873
|
<a name="W9001"></a>
|