adlint 3.0.4 → 3.0.8
Sign up to get free protection for your applications and to get access to all the features.
- data/ChangeLog +374 -13
- data/INSTALL +1 -3
- data/MANIFEST +12 -0
- data/NEWS +30 -4
- data/README +0 -4
- data/TODO +2 -1
- data/etc/mesg.d/c_builtin/en_US/messages.yml +2 -2
- data/etc/mesg.d/c_builtin/ja_JP/messages.yml +2 -2
- data/etc/mesg.d/core/en_US/messages.yml +5 -1
- data/etc/mesg.d/core/ja_JP/messages.yml +5 -1
- data/features/code_check/W0422.feature +128 -0
- data/features/code_check/W0491.feature +57 -0
- data/features/code_check/W0492.feature +80 -0
- data/features/code_check/W0542.feature +20 -0
- data/features/code_check/W0580.feature +25 -0
- data/features/code_check/W0610.feature +36 -0
- data/features/code_check/W0642.feature +67 -0
- data/features/code_check/W0786.feature +39 -0
- data/features/code_check/W0830.feature +27 -0
- data/features/code_check/W1047.feature +72 -0
- data/features/code_check/W9003.feature +22 -0
- data/features/code_extraction/TODO +1 -0
- data/features/metric_measurement/TODO +1 -0
- data/lib/adlint/analyzer.rb +2 -2
- data/lib/adlint/cc1/ctrlexpr.rb +27 -6
- data/lib/adlint/cc1/domain.rb +72 -12
- data/lib/adlint/cc1/enum.rb +4 -0
- data/lib/adlint/cc1/expr.rb +31 -29
- data/lib/adlint/cc1/interp.rb +45 -56
- data/lib/adlint/cc1/lexer.rb +26 -5
- data/lib/adlint/cc1/mediator.rb +35 -6
- data/lib/adlint/cc1/object.rb +62 -19
- data/lib/adlint/cc1/parser.rb +948 -904
- data/lib/adlint/cc1/parser.y +59 -29
- data/lib/adlint/cc1/phase.rb +6 -8
- data/lib/adlint/cc1/syntax.rb +70 -17
- data/lib/adlint/cc1/util.rb +4 -4
- data/lib/adlint/code.rb +16 -6
- data/lib/adlint/cpp/eval.rb +31 -25
- data/lib/adlint/cpp/lexer.rb +11 -5
- data/lib/adlint/cpp/macro.rb +34 -7
- data/lib/adlint/cpp/phase.rb +8 -8
- data/lib/adlint/error.rb +6 -0
- data/lib/adlint/exam/c_builtin/cc1_check.rb +557 -594
- data/lib/adlint/exam/c_builtin/cc1_check_shima.rb +72 -72
- data/lib/adlint/exam/c_builtin/cc1_code.rb +72 -52
- data/lib/adlint/exam/c_builtin/cc1_metric.rb +131 -131
- data/lib/adlint/exam/c_builtin/cpp_check.rb +48 -48
- data/lib/adlint/exam/c_builtin/cpp_check_shima.rb +2 -2
- data/lib/adlint/exam/c_builtin/cpp_code.rb +21 -21
- data/lib/adlint/exam/c_builtin/ld_check.rb +88 -87
- data/lib/adlint/exam/c_builtin/ld_metric.rb +4 -5
- data/lib/adlint/exam/c_builtin.rb +6 -6
- data/lib/adlint/ld/object.rb +269 -186
- data/lib/adlint/ld/phase.rb +19 -19
- data/lib/adlint/ld/typedef.rb +7 -7
- data/lib/adlint/ld/util.rb +25 -17
- data/lib/adlint/location.rb +6 -1
- data/lib/adlint/memo.rb +66 -13
- data/lib/adlint/prelude.rb +2 -2
- data/lib/adlint/report.rb +13 -14
- data/lib/adlint/util.rb +1 -1
- data/lib/adlint/version.rb +2 -2
- data/share/doc/Makefile +6 -2
- data/share/doc/c99gram.dot +502 -0
- data/share/doc/c99gram.pdf +0 -0
- data/share/doc/developers_guide_ja.html +4 -3
- data/share/doc/developers_guide_ja.texi +2 -1
- data/share/doc/users_guide_en.html +9 -9
- data/share/doc/users_guide_en.texi +7 -7
- data/share/doc/users_guide_ja.html +9 -9
- data/share/doc/users_guide_ja.texi +7 -7
- metadata +14 -2
@@ -0,0 +1,502 @@
|
|
1
|
+
strict digraph "ISO C99 Grammer" {
|
2
|
+
//
|
3
|
+
// terminal nodes
|
4
|
+
//
|
5
|
+
node [shape=box];
|
6
|
+
IDENTIFIER;
|
7
|
+
TYPEDEF_NAME;
|
8
|
+
CONSTANT;
|
9
|
+
STRING_LITERAL;
|
10
|
+
SIZEOF;
|
11
|
+
TYPEDEF;
|
12
|
+
EXTERN;
|
13
|
+
STATIC;
|
14
|
+
AUTO;
|
15
|
+
REGISTER;
|
16
|
+
INLINE;
|
17
|
+
RESTRICT;
|
18
|
+
CHAR;
|
19
|
+
SHORT;
|
20
|
+
INT;
|
21
|
+
LONG;
|
22
|
+
SIGNED;
|
23
|
+
UNSIGNED;
|
24
|
+
FLOAT;
|
25
|
+
DOUBLE;
|
26
|
+
CONST;
|
27
|
+
VOLATILE;
|
28
|
+
VOID;
|
29
|
+
BOOL;
|
30
|
+
COMPLEX;
|
31
|
+
IMAGINARY;
|
32
|
+
STRUCT;
|
33
|
+
UNION;
|
34
|
+
ENUM;
|
35
|
+
CASE;
|
36
|
+
DEFAULT;
|
37
|
+
IF;
|
38
|
+
ELSE;
|
39
|
+
SWITCH;
|
40
|
+
WHILE;
|
41
|
+
DO;
|
42
|
+
FOR;
|
43
|
+
GOTO;
|
44
|
+
CONTINUE;
|
45
|
+
BREAK;
|
46
|
+
RETURN;
|
47
|
+
NULL;
|
48
|
+
TYPEOF;
|
49
|
+
ALIGNOF;
|
50
|
+
"!";
|
51
|
+
"!=";
|
52
|
+
"%";
|
53
|
+
"%=";
|
54
|
+
"&";
|
55
|
+
"&&";
|
56
|
+
"&=";
|
57
|
+
"(";
|
58
|
+
")";
|
59
|
+
"*";
|
60
|
+
"*=";
|
61
|
+
"+";
|
62
|
+
"++";
|
63
|
+
"+=";
|
64
|
+
",";
|
65
|
+
"-";
|
66
|
+
"--";
|
67
|
+
"-=";
|
68
|
+
"->";
|
69
|
+
".";
|
70
|
+
"...";
|
71
|
+
"/";
|
72
|
+
"/=";
|
73
|
+
":";
|
74
|
+
";";
|
75
|
+
"<";
|
76
|
+
"<<";
|
77
|
+
"<<=";
|
78
|
+
"<=";
|
79
|
+
"=";
|
80
|
+
"==";
|
81
|
+
">";
|
82
|
+
">=";
|
83
|
+
">>";
|
84
|
+
">>=";
|
85
|
+
"?";
|
86
|
+
"[";
|
87
|
+
"]";
|
88
|
+
"^";
|
89
|
+
"^=";
|
90
|
+
"{";
|
91
|
+
"|";
|
92
|
+
"|=";
|
93
|
+
"||";
|
94
|
+
"}";
|
95
|
+
"~";
|
96
|
+
|
97
|
+
//
|
98
|
+
// non-terminal nodes
|
99
|
+
//
|
100
|
+
node [shape=ellipse];
|
101
|
+
primary_expression;
|
102
|
+
postfix_expression;
|
103
|
+
argument_expression_list;
|
104
|
+
unary_expression;
|
105
|
+
unary_arithmetic_operator;
|
106
|
+
cast_expression;
|
107
|
+
multiplicative_expression;
|
108
|
+
additive_expression;
|
109
|
+
shift_expression;
|
110
|
+
relational_expression;
|
111
|
+
equality_expression;
|
112
|
+
and_expression;
|
113
|
+
exclusive_or_expression;
|
114
|
+
inclusive_or_expression;
|
115
|
+
logical_and_expression;
|
116
|
+
logical_or_expression;
|
117
|
+
conditional_expression;
|
118
|
+
assignment_expression;
|
119
|
+
compound_assignment_operator;
|
120
|
+
expression;
|
121
|
+
constant_expression;
|
122
|
+
declaration;
|
123
|
+
global_declaration;
|
124
|
+
declaration_specifiers;
|
125
|
+
init_declarator_list;
|
126
|
+
init_declarator;
|
127
|
+
storage_class_specifier;
|
128
|
+
type_specifier;
|
129
|
+
struct_or_union_specifier;
|
130
|
+
struct_declaration_list;
|
131
|
+
struct_declaration;
|
132
|
+
specifier_qualifier_list;
|
133
|
+
struct_declarator_list;
|
134
|
+
struct_declarator;
|
135
|
+
enum_specifier;
|
136
|
+
enumerator_list;
|
137
|
+
enumerator;
|
138
|
+
type_qualifier;
|
139
|
+
function_specifier;
|
140
|
+
declarator;
|
141
|
+
direct_declarator;
|
142
|
+
pointer;
|
143
|
+
type_qualifier_list;
|
144
|
+
parameter_type_list;
|
145
|
+
parameter_list;
|
146
|
+
parameter_declaration;
|
147
|
+
identifier_list;
|
148
|
+
type_name;
|
149
|
+
abstract_declarator;
|
150
|
+
direct_abstract_declarator;
|
151
|
+
initializer;
|
152
|
+
initializer_list;
|
153
|
+
designation;
|
154
|
+
designator_list;
|
155
|
+
designator;
|
156
|
+
statement;
|
157
|
+
labeled_statement;
|
158
|
+
compound_statement;
|
159
|
+
block_item_list;
|
160
|
+
block_item;
|
161
|
+
expression_statement;
|
162
|
+
selection_statement;
|
163
|
+
iteration_statement;
|
164
|
+
jump_statement;
|
165
|
+
translation_unit;
|
166
|
+
external_declaration;
|
167
|
+
function_definition;
|
168
|
+
local_function_definition;
|
169
|
+
declaration_list;
|
170
|
+
|
171
|
+
//
|
172
|
+
// edges
|
173
|
+
//
|
174
|
+
primary_expression -> IDENTIFIER;
|
175
|
+
primary_expression -> CONSTANT;
|
176
|
+
primary_expression -> STRING_LITERAL;
|
177
|
+
primary_expression -> NULL;
|
178
|
+
primary_expression -> "("; primary_expression -> expression; primary_expression -> ")";
|
179
|
+
primary_expression -> "("; primary_expression -> compound_statement; primary_expression -> ")";
|
180
|
+
|
181
|
+
postfix_expression -> primary_expression;
|
182
|
+
postfix_expression -> postfix_expression; postfix_expression -> "["; postfix_expression -> expression; postfix_expression -> "]";
|
183
|
+
postfix_expression -> postfix_expression; postfix_expression -> "("; postfix_expression -> ")";
|
184
|
+
postfix_expression -> postfix_expression; postfix_expression -> "("; postfix_expression -> argument_expression_list; postfix_expression -> ")";
|
185
|
+
postfix_expression -> postfix_expression; postfix_expression -> "."; postfix_expression -> IDENTIFIER;
|
186
|
+
postfix_expression -> postfix_expression; postfix_expression -> "->"; postfix_expression -> IDENTIFIER;
|
187
|
+
postfix_expression -> postfix_expression; postfix_expression -> "."; postfix_expression -> CONSTANT;
|
188
|
+
postfix_expression -> postfix_expression; postfix_expression -> "->"; postfix_expression -> CONSTANT;
|
189
|
+
postfix_expression -> postfix_expression; postfix_expression -> "++";
|
190
|
+
postfix_expression -> postfix_expression; postfix_expression -> "--";
|
191
|
+
postfix_expression -> "("; postfix_expression -> type_name; postfix_expression -> ")"; postfix_expression -> "{"; postfix_expression -> initializer_list; postfix_expression -> "}";
|
192
|
+
postfix_expression -> "("; postfix_expression -> type_name; postfix_expression -> ")"; postfix_expression -> "{"; postfix_expression -> initializer_list; postfix_expression -> ","; postfix_expression -> "}";
|
193
|
+
|
194
|
+
argument_expression_list -> assignment_expression;
|
195
|
+
argument_expression_list -> argument_expression_list; argument_expression_list -> ","; argument_expression_list -> assignment_expression;
|
196
|
+
|
197
|
+
unary_expression -> postfix_expression;
|
198
|
+
unary_expression -> "++"; unary_expression -> unary_expression;
|
199
|
+
unary_expression -> "--"; unary_expression -> unary_expression;
|
200
|
+
unary_expression -> "&"; unary_expression -> cast_expression;
|
201
|
+
unary_expression -> "*"; unary_expression -> cast_expression;
|
202
|
+
unary_expression -> unary_arithmetic_operator; unary_expression -> cast_expression;
|
203
|
+
unary_expression -> SIZEOF; unary_expression -> unary_expression;
|
204
|
+
unary_expression -> SIZEOF; unary_expression -> "("; unary_expression -> type_name; unary_expression -> ")";
|
205
|
+
unary_expression -> ALIGNOF; unary_expression -> unary_expression;
|
206
|
+
unary_expression -> ALIGNOF; unary_expression -> "("; unary_expression -> type_name; unary_expression -> ")";
|
207
|
+
unary_expression -> "&&"; unary_expression -> unary_expression;
|
208
|
+
|
209
|
+
unary_arithmetic_operator -> "+";
|
210
|
+
unary_arithmetic_operator -> "-";
|
211
|
+
unary_arithmetic_operator -> "~";
|
212
|
+
unary_arithmetic_operator -> "!";
|
213
|
+
|
214
|
+
cast_expression -> unary_expression;
|
215
|
+
cast_expression -> "("; cast_expression -> type_name; cast_expression -> ")"; cast_expression -> cast_expression;
|
216
|
+
|
217
|
+
multiplicative_expression -> cast_expression;
|
218
|
+
multiplicative_expression -> multiplicative_expression; multiplicative_expression -> "*"; multiplicative_expression -> cast_expression;
|
219
|
+
multiplicative_expression -> multiplicative_expression; multiplicative_expression -> "/"; multiplicative_expression -> cast_expression;
|
220
|
+
multiplicative_expression -> multiplicative_expression; multiplicative_expression -> "%"; multiplicative_expression -> cast_expression;
|
221
|
+
|
222
|
+
additive_expression -> multiplicative_expression;
|
223
|
+
additive_expression -> additive_expression; additive_expression -> "+"; additive_expression -> multiplicative_expression;
|
224
|
+
additive_expression -> additive_expression; additive_expression -> "-"; additive_expression -> multiplicative_expression;
|
225
|
+
|
226
|
+
shift_expression -> additive_expression;
|
227
|
+
shift_expression -> shift_expression; shift_expression -> "<<"; shift_expression -> additive_expression;
|
228
|
+
shift_expression -> shift_expression; shift_expression -> ">>"; shift_expression -> additive_expression;
|
229
|
+
|
230
|
+
relational_expression -> shift_expression;
|
231
|
+
relational_expression -> relational_expression; relational_expression -> "<"; relational_expression -> shift_expression;
|
232
|
+
relational_expression -> relational_expression; relational_expression -> ">"; relational_expression -> shift_expression;
|
233
|
+
relational_expression -> relational_expression; relational_expression -> "<="; relational_expression -> shift_expression;
|
234
|
+
relational_expression -> relational_expression; relational_expression -> ">="; relational_expression -> shift_expression;
|
235
|
+
|
236
|
+
equality_expression -> relational_expression;
|
237
|
+
equality_expression -> equality_expression; equality_expression -> "=="; equality_expression -> relational_expression;
|
238
|
+
equality_expression -> equality_expression; equality_expression -> "!="; equality_expression -> relational_expression;
|
239
|
+
|
240
|
+
and_expression -> equality_expression;
|
241
|
+
and_expression -> and_expression; and_expression -> "&"; and_expression -> equality_expression;
|
242
|
+
|
243
|
+
exclusive_or_expression -> and_expression;
|
244
|
+
exclusive_or_expression -> exclusive_or_expression; exclusive_or_expression -> "^"; exclusive_or_expression -> and_expression;
|
245
|
+
|
246
|
+
inclusive_or_expression -> exclusive_or_expression;
|
247
|
+
inclusive_or_expression -> inclusive_or_expression; inclusive_or_expression -> "|"; inclusive_or_expression -> exclusive_or_expression;
|
248
|
+
|
249
|
+
logical_and_expression -> inclusive_or_expression;
|
250
|
+
logical_and_expression -> logical_and_expression; logical_and_expression -> "&&"; logical_and_expression -> inclusive_or_expression;
|
251
|
+
|
252
|
+
logical_or_expression -> logical_and_expression;
|
253
|
+
logical_or_expression -> logical_or_expression; logical_or_expression -> "||"; logical_or_expression -> logical_and_expression;
|
254
|
+
|
255
|
+
conditional_expression -> logical_or_expression;
|
256
|
+
conditional_expression -> logical_or_expression; conditional_expression -> "?"; conditional_expression -> expression; conditional_expression -> ":"; conditional_expression -> conditional_expression;
|
257
|
+
|
258
|
+
assignment_expression -> conditional_expression;
|
259
|
+
assignment_expression -> cast_expression; assignment_expression -> "="; assignment_expression -> assignment_expression;
|
260
|
+
assignment_expression -> cast_expression; assignment_expression -> compound_assignment_operator; assignment_expression -> assignment_expression;
|
261
|
+
|
262
|
+
compound_assignment_operator -> "*=";
|
263
|
+
compound_assignment_operator -> "/=";
|
264
|
+
compound_assignment_operator -> "%=";
|
265
|
+
compound_assignment_operator -> "+=";
|
266
|
+
compound_assignment_operator -> "-=";
|
267
|
+
compound_assignment_operator -> "<<=";
|
268
|
+
compound_assignment_operator -> ">>=";
|
269
|
+
compound_assignment_operator -> "&=";
|
270
|
+
compound_assignment_operator -> "^=";
|
271
|
+
compound_assignment_operator -> "|=";
|
272
|
+
|
273
|
+
expression -> assignment_expression;
|
274
|
+
expression -> expression; expression -> ","; expression -> assignment_expression;
|
275
|
+
|
276
|
+
constant_expression -> conditional_expression;
|
277
|
+
|
278
|
+
declaration -> declaration_specifiers; declaration -> ";";
|
279
|
+
declaration -> declaration_specifiers; declaration -> init_declarator_list; declaration -> ";";
|
280
|
+
|
281
|
+
global_declaration -> declaration;
|
282
|
+
global_declaration -> init_declarator_list; global_declaration -> ";";
|
283
|
+
|
284
|
+
declaration_specifiers -> storage_class_specifier;
|
285
|
+
declaration_specifiers -> declaration_specifiers; declaration_specifiers -> storage_class_specifier;
|
286
|
+
declaration_specifiers -> type_specifier;
|
287
|
+
declaration_specifiers -> declaration_specifiers; declaration_specifiers -> type_specifier;
|
288
|
+
declaration_specifiers -> type_qualifier;
|
289
|
+
declaration_specifiers -> declaration_specifiers; declaration_specifiers -> type_qualifier;
|
290
|
+
declaration_specifiers -> function_specifier;
|
291
|
+
declaration_specifiers -> declaration_specifiers; declaration_specifiers -> function_specifier;
|
292
|
+
|
293
|
+
init_declarator_list -> init_declarator;
|
294
|
+
init_declarator_list -> init_declarator_list; init_declarator_list -> ","; init_declarator_list -> init_declarator;
|
295
|
+
|
296
|
+
init_declarator -> declarator;
|
297
|
+
init_declarator -> declarator; init_declarator -> "="; init_declarator -> initializer;
|
298
|
+
|
299
|
+
storage_class_specifier -> TYPEDEF;
|
300
|
+
storage_class_specifier -> EXTERN;
|
301
|
+
storage_class_specifier -> STATIC;
|
302
|
+
storage_class_specifier -> AUTO;
|
303
|
+
storage_class_specifier -> REGISTER;
|
304
|
+
|
305
|
+
type_specifier -> VOID;
|
306
|
+
type_specifier -> CHAR;
|
307
|
+
type_specifier -> SHORT;
|
308
|
+
type_specifier -> INT;
|
309
|
+
type_specifier -> LONG;
|
310
|
+
type_specifier -> FLOAT;
|
311
|
+
type_specifier -> DOUBLE;
|
312
|
+
type_specifier -> SIGNED;
|
313
|
+
type_specifier -> UNSIGNED;
|
314
|
+
type_specifier -> BOOL;
|
315
|
+
type_specifier -> COMPLEX;
|
316
|
+
type_specifier -> IMAGINARY;
|
317
|
+
type_specifier -> TYPEDEF_NAME;
|
318
|
+
type_specifier -> struct_or_union_specifier;
|
319
|
+
type_specifier -> enum_specifier;
|
320
|
+
type_specifier -> TYPEOF; type_specifier -> "("; type_specifier -> constant_expression; type_specifier -> ")";
|
321
|
+
type_specifier -> TYPEOF; type_specifier -> "("; type_specifier -> type_name; type_specifier -> ")";
|
322
|
+
|
323
|
+
struct_or_union_specifier -> STRUCT; struct_or_union_specifier -> IDENTIFIER; struct_or_union_specifier -> "{"; struct_or_union_specifier -> struct_declaration_list; struct_or_union_specifier -> "}";
|
324
|
+
struct_or_union_specifier -> STRUCT; struct_or_union_specifier -> IDENTIFIER; struct_or_union_specifier -> "{"; struct_or_union_specifier -> "}";
|
325
|
+
struct_or_union_specifier -> UNION; struct_or_union_specifier -> IDENTIFIER; struct_or_union_specifier -> "{"; struct_or_union_specifier -> struct_declaration_list; struct_or_union_specifier -> "}";
|
326
|
+
struct_or_union_specifier -> UNION; struct_or_union_specifier -> IDENTIFIER; struct_or_union_specifier -> "{"; struct_or_union_specifier -> "}";
|
327
|
+
struct_or_union_specifier -> STRUCT; struct_or_union_specifier -> "{"; struct_or_union_specifier -> struct_declaration_list; struct_or_union_specifier -> "}";
|
328
|
+
struct_or_union_specifier -> STRUCT; struct_or_union_specifier -> "{"; struct_or_union_specifier -> "}";
|
329
|
+
struct_or_union_specifier -> UNION; struct_or_union_specifier -> "{"; struct_or_union_specifier -> struct_declaration_list; struct_or_union_specifier -> "}";
|
330
|
+
struct_or_union_specifier -> UNION; struct_or_union_specifier -> "{"; struct_or_union_specifier -> "}";
|
331
|
+
struct_or_union_specifier -> STRUCT; struct_or_union_specifier -> IDENTIFIER;
|
332
|
+
struct_or_union_specifier -> UNION; struct_or_union_specifier -> IDENTIFIER;
|
333
|
+
|
334
|
+
struct_declaration_list -> struct_declaration;
|
335
|
+
struct_declaration_list -> struct_declaration_list; struct_declaration_list -> struct_declaration;
|
336
|
+
|
337
|
+
struct_declaration -> specifier_qualifier_list; struct_declaration -> ";";
|
338
|
+
struct_declaration -> specifier_qualifier_list; struct_declaration -> struct_declarator_list; struct_declarator_list -> ";";
|
339
|
+
|
340
|
+
specifier_qualifier_list -> specifier_qualifier_list; specifier_qualifier_list -> type_specifier;
|
341
|
+
specifier_qualifier_list -> type_specifier;
|
342
|
+
specifier_qualifier_list -> specifier_qualifier_list; specifier_qualifier_list -> type_qualifier;
|
343
|
+
specifier_qualifier_list -> type_qualifier;
|
344
|
+
|
345
|
+
struct_declarator_list -> struct_declarator;
|
346
|
+
struct_declarator_list -> struct_declarator_list; struct_declarator_list -> ","; struct_declarator_list -> struct_declarator;
|
347
|
+
|
348
|
+
struct_declarator -> declarator;
|
349
|
+
struct_declarator -> ":"; struct_declarator -> constant_expression;
|
350
|
+
struct_declarator -> declarator; struct_declarator -> ":"; struct_declarator -> constant_expression;
|
351
|
+
|
352
|
+
enum_specifier -> ENUM; enum_specifier -> "{"; enum_specifier -> enumerator_list; enum_specifier -> "}";
|
353
|
+
enum_specifier -> ENUM; enum_specifier -> IDENTIFIER; enum_specifier -> "{"; enum_specifier -> enumerator_list; enum_specifier -> "}";
|
354
|
+
enum_specifier -> ENUM; enum_specifier -> "{"; enum_specifier -> enumerator_list; enum_specifier -> ","; enum_specifier -> "}";
|
355
|
+
enum_specifier -> ENUM; enum_specifier -> IDENTIFIER; enum_specifier -> "{"; enum_specifier -> enumerator_list; enum_specifier -> ","; enum_specifier -> "}";
|
356
|
+
enum_specifier -> ENUM; enum_specifier -> IDENTIFIER;
|
357
|
+
|
358
|
+
enumerator_list -> enumerator;
|
359
|
+
enumerator_list -> enumerator_list; enumerator_list -> ","; enumerator_list -> enumerator;
|
360
|
+
|
361
|
+
enumerator -> IDENTIFIER;
|
362
|
+
enumerator -> IDENTIFIER; enumerator -> "="; enumerator -> constant_expression;
|
363
|
+
|
364
|
+
type_qualifier -> CONST;
|
365
|
+
type_qualifier -> VOLATILE;
|
366
|
+
type_qualifier -> RESTRICT;
|
367
|
+
|
368
|
+
function_specifier -> INLINE;
|
369
|
+
|
370
|
+
declarator -> pointer; declarator -> direct_declarator;
|
371
|
+
declarator -> direct_declarator;
|
372
|
+
|
373
|
+
direct_declarator -> IDENTIFIER;
|
374
|
+
direct_declarator -> "("; direct_declarator -> declarator; direct_declarator -> ")";
|
375
|
+
direct_declarator -> direct_declarator; direct_declarator -> "["; direct_declarator -> type_qualifier_list; direct_declarator -> assignment_expression; direct_declarator -> "]";
|
376
|
+
direct_declarator -> direct_declarator; direct_declarator -> "["; direct_declarator -> type_qualifier_list; direct_declarator -> "]";
|
377
|
+
direct_declarator -> direct_declarator; direct_declarator -> "["; direct_declarator -> assignment_expression; direct_declarator -> "]";
|
378
|
+
direct_declarator -> direct_declarator; direct_declarator -> "["; direct_declarator -> STATIC; direct_declarator -> type_qualifier_list; direct_declarator -> assignment_expression; direct_declarator -> "]";
|
379
|
+
direct_declarator -> direct_declarator; direct_declarator -> "["; direct_declarator -> type_qualifier_list; direct_declarator -> STATIC; direct_declarator -> assignment_expression; direct_declarator -> "]";
|
380
|
+
direct_declarator -> direct_declarator; direct_declarator -> "["; direct_declarator -> type_qualifier_list; direct_declarator -> "*"; direct_declarator -> "]";
|
381
|
+
direct_declarator -> direct_declarator; direct_declarator -> "["; direct_declarator -> "*"; direct_declarator -> "]";
|
382
|
+
direct_declarator -> direct_declarator; direct_declarator -> "["; direct_declarator -> "]";
|
383
|
+
direct_declarator -> direct_declarator; direct_declarator -> "("; direct_declarator -> parameter_type_list; direct_declarator -> ")";
|
384
|
+
direct_declarator -> direct_declarator; direct_declarator -> "("; direct_declarator -> identifier_list; direct_declarator -> ")";
|
385
|
+
direct_declarator -> direct_declarator; direct_declarator -> "("; direct_declarator -> ")";
|
386
|
+
|
387
|
+
pointer -> "*";
|
388
|
+
pointer -> "*"; pointer -> type_qualifier_list;
|
389
|
+
pointer -> "*"; pointer -> pointer;
|
390
|
+
pointer -> "*"; pointer -> type_qualifier_list; pointer -> pointer;
|
391
|
+
|
392
|
+
type_qualifier_list -> type_qualifier;
|
393
|
+
type_qualifier_list -> type_qualifier_list; type_qualifier_list -> type_qualifier;
|
394
|
+
|
395
|
+
parameter_type_list -> parameter_list;
|
396
|
+
parameter_type_list -> parameter_list; parameter_type_list -> ","; parameter_type_list -> "...";
|
397
|
+
|
398
|
+
parameter_list -> parameter_declaration;
|
399
|
+
parameter_list -> parameter_list; parameter_list -> ","; parameter_list -> parameter_declaration;
|
400
|
+
|
401
|
+
parameter_declaration -> declaration_specifiers; parameter_declaration -> declarator;
|
402
|
+
parameter_declaration -> declaration_specifiers; parameter_declaration -> abstract_declarator;
|
403
|
+
parameter_declaration -> declaration_specifiers;
|
404
|
+
|
405
|
+
identifier_list -> IDENTIFIER;
|
406
|
+
identifier_list -> identifier_list; identifier_list -> ","; identifier_list -> IDENTIFIER;
|
407
|
+
|
408
|
+
type_name -> specifier_qualifier_list;
|
409
|
+
type_name -> specifier_qualifier_list; type_name -> abstract_declarator;
|
410
|
+
|
411
|
+
abstract_declarator -> pointer;
|
412
|
+
abstract_declarator -> pointer; abstract_declarator -> direct_abstract_declarator;
|
413
|
+
abstract_declarator -> direct_abstract_declarator;
|
414
|
+
|
415
|
+
direct_abstract_declarator -> "("; direct_abstract_declarator -> abstract_declarator; direct_abstract_declarator -> ")";
|
416
|
+
direct_abstract_declarator -> "["; direct_abstract_declarator -> "]";
|
417
|
+
direct_abstract_declarator -> "["; direct_abstract_declarator -> assignment_expression; direct_abstract_declarator -> "]";
|
418
|
+
direct_abstract_declarator -> direct_abstract_declarator; direct_abstract_declarator -> "["; direct_abstract_declarator -> "]";
|
419
|
+
direct_abstract_declarator -> direct_abstract_declarator; direct_abstract_declarator -> "["; direct_abstract_declarator -> assignment_expression; direct_abstract_declarator -> "]";
|
420
|
+
direct_abstract_declarator -> "["; direct_abstract_declarator -> "*"; direct_abstract_declarator -> "]";
|
421
|
+
direct_abstract_declarator -> direct_abstract_declarator; direct_abstract_declarator -> "["; direct_abstract_declarator -> "*"; direct_abstract_declarator -> "]";
|
422
|
+
direct_abstract_declarator -> "("; direct_abstract_declarator -> ")";
|
423
|
+
direct_abstract_declarator -> "("; direct_abstract_declarator -> parameter_type_list; direct_abstract_declarator -> ")";
|
424
|
+
direct_abstract_declarator -> direct_abstract_declarator; direct_abstract_declarator -> "("; direct_abstract_declarator -> ")";
|
425
|
+
direct_abstract_declarator -> direct_abstract_declarator; direct_abstract_declarator -> "("; direct_abstract_declarator -> parameter_type_list; direct_abstract_declarator -> ")";
|
426
|
+
|
427
|
+
initializer -> assignment_expression;
|
428
|
+
initializer -> "{"; initializer -> "}";
|
429
|
+
initializer -> "{"; initializer -> initializer_list; initializer -> "}";
|
430
|
+
initializer -> "{"; initializer -> initializer_list; initializer -> ","; initializer -> "}";
|
431
|
+
|
432
|
+
initializer_list -> initializer;
|
433
|
+
initializer_list -> designation; initializer_list -> initializer;
|
434
|
+
initializer_list -> initializer_list; initializer_list -> ","; initializer_list -> initializer;
|
435
|
+
initializer_list -> initializer_list; initializer_list -> ","; initializer_list -> designation; initializer_list -> initializer;
|
436
|
+
|
437
|
+
designation -> designator_list; designation -> "=";
|
438
|
+
|
439
|
+
designator_list -> designator;
|
440
|
+
designator_list -> designator_list; designator_list -> designator;
|
441
|
+
|
442
|
+
designator -> "["; designator -> constant_expression; designator -> "]";
|
443
|
+
designator -> "."; designator -> IDENTIFIER;
|
444
|
+
|
445
|
+
statement -> labeled_statement;
|
446
|
+
statement -> compound_statement;
|
447
|
+
statement -> expression_statement;
|
448
|
+
statement -> selection_statement;
|
449
|
+
statement -> iteration_statement;
|
450
|
+
statement -> jump_statement;
|
451
|
+
|
452
|
+
labeled_statement -> IDENTIFIER; labeled_statement -> ":"; labeled_statement -> statement;
|
453
|
+
labeled_statement -> CASE; labeled_statement -> constant_expression; labeled_statement -> ":"; labeled_statement -> statement;
|
454
|
+
labeled_statement -> DEFAULT; labeled_statement -> ":"; labeled_statement -> statement;
|
455
|
+
|
456
|
+
compound_statement -> "{"; compound_statement -> "}";
|
457
|
+
compound_statement -> "{"; compound_statement -> block_item_list; compound_statement -> "}";
|
458
|
+
|
459
|
+
block_item_list -> block_item;
|
460
|
+
block_item_list -> block_item_list; block_item_list -> block_item;
|
461
|
+
|
462
|
+
block_item -> declaration;
|
463
|
+
block_item -> statement;
|
464
|
+
block_item -> local_function_definition;
|
465
|
+
|
466
|
+
expression_statement -> ";";
|
467
|
+
expression_statement -> expression; expression_statement -> ";";
|
468
|
+
|
469
|
+
selection_statement -> IF; selection_statement -> "("; selection_statement -> expression; selection_statement -> ")"; selection_statement -> statement;
|
470
|
+
selection_statement -> IF; selection_statement -> "("; selection_statement -> expression; selection_statement -> ")"; selection_statement -> statement; selection_statement -> ELSE; selection_statement -> statement;
|
471
|
+
selection_statement -> SWITCH; selection_statement -> "("; selection_statement -> expression; selection_statement -> ")"; selection_statement -> statement;
|
472
|
+
|
473
|
+
iteration_statement -> WHILE; iteration_statement -> "("; iteration_statement -> expression; iteration_statement -> ")"; iteration_statement -> statement;
|
474
|
+
iteration_statement -> DO; iteration_statement -> statement; iteration_statement -> WHILE; iteration_statement -> "("; iteration_statement -> expression; iteration_statement -> ")"; iteration_statement -> ";";
|
475
|
+
iteration_statement -> FOR; iteration_statement -> "("; iteration_statement -> expression_statement; iteration_statement -> expression_statement; iteration_statement -> ")"; iteration_statement -> statement;
|
476
|
+
iteration_statement -> FOR; iteration_statement -> "("; iteration_statement -> expression_statement; iteration_statement -> expression_statement; iteration_statement -> expression; iteration_statement -> ")"; iteration_statement -> statement;
|
477
|
+
iteration_statement -> FOR; iteration_statement -> "("; iteration_statement -> declaration; iteration_statement -> expression_statement; iteration_statement -> ")"; iteration_statement -> statement;
|
478
|
+
iteration_statement -> FOR; iteration_statement -> "("; iteration_statement -> declaration; iteration_statement -> expression_statement; iteration_statement -> expression; iteration_statement -> ")"; iteration_statement -> statement;
|
479
|
+
|
480
|
+
jump_statement -> GOTO; jump_statement -> IDENTIFIER; jump_statement -> ";";
|
481
|
+
jump_statement -> GOTO; jump_statement -> "*"; jump_statement -> expression; jump_statement -> ";";
|
482
|
+
jump_statement -> CONTINUE; jump_statement -> ";";
|
483
|
+
jump_statement -> BREAK; jump_statement -> ";";
|
484
|
+
jump_statement -> RETURN; jump_statement -> ";";
|
485
|
+
jump_statement -> RETURN; jump_statement -> expression; jump_statement -> ";";
|
486
|
+
|
487
|
+
translation_unit -> translation_unit; translation_unit -> external_declaration;
|
488
|
+
|
489
|
+
external_declaration -> function_definition;
|
490
|
+
external_declaration -> global_declaration;
|
491
|
+
|
492
|
+
function_definition -> declaration_specifiers; function_definition -> declarator; function_definition -> declaration_list; function_definition -> compound_statement;
|
493
|
+
function_definition -> declaration_specifiers; function_definition -> declarator; function_definition -> compound_statement;
|
494
|
+
function_definition -> declarator; function_definition -> declaration_list; function_definition -> compound_statement;
|
495
|
+
function_definition -> declarator; function_definition -> compound_statement;
|
496
|
+
|
497
|
+
local_function_definition -> declaration_specifiers; local_function_definition -> declarator; local_function_definition -> declaration_list; local_function_definition -> compound_statement;
|
498
|
+
local_function_definition -> declaration_specifiers; local_function_definition -> declarator; local_function_definition -> compound_statement;
|
499
|
+
|
500
|
+
declaration_list -> declaration;
|
501
|
+
declaration_list -> declaration_list; declaration_list -> declaration;
|
502
|
+
}
|
Binary file
|
@@ -1,8 +1,8 @@
|
|
1
1
|
<html lang="ja">
|
2
2
|
<head>
|
3
|
-
<title>AdLint 3.0.
|
3
|
+
<title>AdLint 3.0.8 開発者ガイド</title>
|
4
4
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
5
|
-
<meta name="description" content="AdLint 3.0.
|
5
|
+
<meta name="description" content="AdLint 3.0.8 開発者ガイド">
|
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 3.0.
|
47
|
+
<h1 class="settitle">AdLint 3.0.8 開発者ガイド</h1>
|
48
48
|
<div class="contents">
|
49
49
|
<h2>Table of Contents</h2>
|
50
50
|
<ul>
|
@@ -282,6 +282,7 @@ qualified -> qualed
|
|
282
282
|
error -> err
|
283
283
|
project -> proj
|
284
284
|
temporary -> tmp
|
285
|
+
referrer-function -> ref_fun
|
285
286
|
</pre>
|
286
287
|
|
287
288
|
<div class="node">
|
@@ -2,7 +2,7 @@
|
|
2
2
|
@setfilename developers_guide_ja.info
|
3
3
|
@documentlanguage ja
|
4
4
|
@documentencoding utf-8
|
5
|
-
@settitle AdLint 3.0.
|
5
|
+
@settitle AdLint 3.0.8 開発者ガイド
|
6
6
|
|
7
7
|
@copying
|
8
8
|
Copyright (C) 2010-2013, OGIS-RI Co.,Ltd.
|
@@ -211,6 +211,7 @@ qualified -> qualed
|
|
211
211
|
error -> err
|
212
212
|
project -> proj
|
213
213
|
temporary -> tmp
|
214
|
+
referrer-function -> ref_fun
|
214
215
|
@end verbatim
|
215
216
|
|
216
217
|
|
@@ -1,8 +1,8 @@
|
|
1
1
|
<html lang="en">
|
2
2
|
<head>
|
3
|
-
<title>AdLint 3.0.
|
3
|
+
<title>AdLint 3.0.8 User's Guide</title>
|
4
4
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
5
|
-
<meta name="description" content="AdLint 3.0.
|
5
|
+
<meta name="description" content="AdLint 3.0.8 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 3.0.
|
47
|
+
<h1 class="settitle">AdLint 3.0.8 User's Guide</h1>
|
48
48
|
<div class="node">
|
49
49
|
<a name="Top"></a>
|
50
50
|
<p><hr>
|
@@ -2861,7 +2861,7 @@ Up: <a rel="up" accesskey="u" href="#Top">Top</a>
|
|
2861
2861
|
<li><a href="#W0639">W0639</a>: %sth conversion specifier doesn't match with corresponding type of actual argument.
|
2862
2862
|
<li><a href="#W0640">W0640</a>: The actual argument of scanf function have to pass the object pointer to store the data.
|
2863
2863
|
<li><a href="#W0641">W0641</a>: Floating-point number type cast to pointer to object and vice versa.
|
2864
|
-
<li><a href="#W0642">W0642</a>:
|
2864
|
+
<li><a href="#W0642">W0642</a>: Address derivation from the object declared as `register' is prohibited.
|
2865
2865
|
<li><a href="#W0643">W0643</a>: This string literal constituted by a macro is illegal form unenclosed by `"'. `#'operator may apply to actual argument which has '\' at the end.
|
2866
2866
|
<li><a href="#W0644">W0644</a>: A value in void statement is going to use. 'void' statement doesn't have a value.
|
2867
2867
|
<li><a href="#W0645">W0645</a>: 'void' type cannot use in the type of formal argument.
|
@@ -30664,7 +30664,7 @@ Up: <a rel="up" accesskey="u" href="#Messages">Messages</a>
|
|
30664
30664
|
|
30665
30665
|
<h4 class="subsection">6.524.1 Message body</h4>
|
30666
30666
|
|
30667
|
-
<p>
|
30667
|
+
<p>Address derivation from the object declared as `register' is prohibited.
|
30668
30668
|
|
30669
30669
|
<h4 class="subsection">6.524.2 Content</h4>
|
30670
30670
|
|
@@ -30724,7 +30724,7 @@ const char *str = MACRO(foo\); /* W0643 */
|
|
30724
30724
|
<h4 class="subsection">6.525.4 Related message</h4>
|
30725
30725
|
|
30726
30726
|
<ul>
|
30727
|
-
<li><a href="#W0642">W0642</a>
|
30727
|
+
<li><a href="#W0642">W0642</a> Address derivation from the object declared as `register' is prohibited.
|
30728
30728
|
<li><a href="#W0644">W0644</a> A value in void statement is going to use. 'void' statement doesn't have a value.
|
30729
30729
|
<li><a href="#W0645">W0645</a> 'void' type cannot use in the type of formal argument.
|
30730
30730
|
<li><a href="#W0646">W0646</a> A normal string literal and a wide string literal are contiguous.
|
@@ -30768,7 +30768,7 @@ int bar(void)
|
|
30768
30768
|
<h4 class="subsection">6.526.4 Related message</h4>
|
30769
30769
|
|
30770
30770
|
<ul>
|
30771
|
-
<li><a href="#W0642">W0642</a>
|
30771
|
+
<li><a href="#W0642">W0642</a> Address derivation from the object declared as `register' is prohibited.
|
30772
30772
|
<li><a href="#W0643">W0643</a> This string literal constituted by a macro is illegal form unenclosed by `"'. `#'operator may apply to actual argument which has '\' at the end.
|
30773
30773
|
<li><a href="#W0645">W0645</a> 'void' type cannot use in the type of formal argument.
|
30774
30774
|
<li><a href="#W0646">W0646</a> A normal string literal and a wide string literal are contiguous.
|
@@ -30810,7 +30810,7 @@ void a;
|
|
30810
30810
|
<h4 class="subsection">6.527.4 Related message</h4>
|
30811
30811
|
|
30812
30812
|
<ul>
|
30813
|
-
<li><a href="#W0642">W0642</a>
|
30813
|
+
<li><a href="#W0642">W0642</a> Address derivation from the object declared as `register' is prohibited.
|
30814
30814
|
<li><a href="#W0643">W0643</a> This string literal constituted by a macro is illegal form unenclosed by `"'. `#'operator may apply to actual argument which has '\' at the end.
|
30815
30815
|
<li><a href="#W0644">W0644</a> A value in void statement is going to use. 'void' statement doesn't have a value.
|
30816
30816
|
<li><a href="#W0646">W0646</a> A normal string literal and a wide string literal are contiguous.
|
@@ -30849,7 +30849,7 @@ Up: <a rel="up" accesskey="u" href="#Messages">Messages</a>
|
|
30849
30849
|
<h4 class="subsection">6.528.4 Related message</h4>
|
30850
30850
|
|
30851
30851
|
<ul>
|
30852
|
-
<li><a href="#W0642">W0642</a>
|
30852
|
+
<li><a href="#W0642">W0642</a> Address derivation from the object declared as `register' is prohibited.
|
30853
30853
|
<li><a href="#W0643">W0643</a> This string literal constituted by a macro is illegal form unenclosed by `"'. `#'operator may apply to actual argument which has '\' at the end.
|
30854
30854
|
<li><a href="#W0644">W0644</a> A value in void statement is going to use. 'void' statement doesn't have a value.
|
30855
30855
|
<li><a href="#W0645">W0645</a> 'void' type cannot use in the type of formal argument.
|