adlint 3.0.4 → 3.0.8
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 +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
data/ChangeLog
CHANGED
@@ -1,3 +1,364 @@
|
|
1
|
+
Fri May 31 10:54:11 2013 Yutaka Yanoh <yanoh@users.sourceforge.net>
|
2
|
+
|
3
|
+
* release.ga : 3.0.8
|
4
|
+
- Fix abend problem of preprocessor when a block comment is not
|
5
|
+
terminated in the translation-unit.
|
6
|
+
- Fix block comment handling in order not to dive into nested part
|
7
|
+
when a single slash character appears before the comment
|
8
|
+
terminator.
|
9
|
+
- Fix infinite-loop problem of preprocessor when the #include
|
10
|
+
directive appears with undefined macro.
|
11
|
+
- Fix bad expression-constancy check in order to treat an expression
|
12
|
+
derives an address-constant as a constant-expression.
|
13
|
+
- Fix bad variable defining behavor in order to correctly evaluate
|
14
|
+
sizeof-expression that refers defining variable in the initializer.
|
15
|
+
- Revise specification of W0642 code check in order to warn about all
|
16
|
+
the illegal address derivation from the object declared as
|
17
|
+
`register'.
|
18
|
+
- Fix abend problem in parsing unnamed bit-field declaration.
|
19
|
+
- Fix W0786 code check in order not to warn when a typedefed type
|
20
|
+
which is same as signed or unsigned int is specified as a base of
|
21
|
+
the bit-field.
|
22
|
+
- Fix incomplete object cross-reference extraction in order to record
|
23
|
+
object references within global scope in case of global function
|
24
|
+
table initialization.
|
25
|
+
- Fix incomplete object cross-reference graph and function call graph
|
26
|
+
in order to correctly warn about useless objects.
|
27
|
+
- Fix bad `##' operator evaluation in order to comply with the ISO
|
28
|
+
C99 standard.
|
29
|
+
|
30
|
+
Thu May 30 21:05:44 2013 Yutaka Yanoh <yanoh@users.sourceforge.net>
|
31
|
+
|
32
|
+
* release.rc : 3.0.7
|
33
|
+
- Fix function call extraction in order to output function calls
|
34
|
+
within the global scope.
|
35
|
+
- Improve performance of FN_CALL metric measurement.
|
36
|
+
- Fix bad function call graph calculation.
|
37
|
+
- Fix bad expression-constancy check in order not to misunderstand
|
38
|
+
that an expression contains object-specifier which designates a
|
39
|
+
variable is constant-expression when a function of the same name
|
40
|
+
has been declared.
|
41
|
+
|
42
|
+
Thu May 30 20:07:56 2013 Yutaka Yanoh <yanoh@users.sourceforge.net>
|
43
|
+
|
44
|
+
* lib/adlint/cc1/syntax.rb : Fix bad expression-constancy check in
|
45
|
+
order not to misunderstand that an expression contains
|
46
|
+
object-specifier which designates a variable is constant-expression
|
47
|
+
when a function of the same name has been declared.
|
48
|
+
* lib/adlint/cc1/mediator.rb : Ditto.
|
49
|
+
* lib/adlint/cc1/object.rb : Ditto.
|
50
|
+
|
51
|
+
* features/code_check/W0422.feature : Add scenario to reproduce a known
|
52
|
+
bug.
|
53
|
+
|
54
|
+
Thu May 30 13:54:20 2013 Yutaka Yanoh <yanoh@users.sourceforge.net>
|
55
|
+
|
56
|
+
* lib/adlint/exam/c_builtin/cc1_code.rb : Fix function call extraction
|
57
|
+
in order to output function calls within the global scope.
|
58
|
+
|
59
|
+
* lib/adlint/exam/c_builtin/ld_metric.rb : Improve performance of
|
60
|
+
FN_CALL metric measurement.
|
61
|
+
|
62
|
+
* lib/adlint/ld/object.rb : Fix bad function call graph calculation.
|
63
|
+
|
64
|
+
* lib/adlint/exam/c_builtin.rb : Fix bad abbreviations of class names.
|
65
|
+
* lib/adlint/code.rb : Ditto.
|
66
|
+
* lib/adlint/report.rb : Ditto.
|
67
|
+
|
68
|
+
Wed May 29 18:48:01 2013 Yutaka Yanoh <yanoh@users.sourceforge.net>
|
69
|
+
|
70
|
+
* release.rc : 3.0.5
|
71
|
+
- Fix abend problem of preprocessor when a block comment is not
|
72
|
+
terminated in the translation-unit.
|
73
|
+
- Fix block comment handling in order not to dive into nested part
|
74
|
+
when a single slash character appears before the comment
|
75
|
+
terminator.
|
76
|
+
- Fix infinite-loop problem of preprocessor when the #include
|
77
|
+
directive appears with undefined macro.
|
78
|
+
- Fix bad expression-constancy check in order to treat an expression
|
79
|
+
derives an address-constant as a constant-expression.
|
80
|
+
- Fix bad variable defining behavor in order to correctly evaluate
|
81
|
+
sizeof-expression that refers defining variable in the initializer.
|
82
|
+
- Revise specification of W0642 code check in order to warn about all
|
83
|
+
the illegal address derivation from the object declared as
|
84
|
+
`register'.
|
85
|
+
- Fix abend problem in parsing unnamed bit-field declaration.
|
86
|
+
- Fix W0786 code check in order not to warn when a typedefed type
|
87
|
+
which is same as signed or unsigned int is specified as a base of
|
88
|
+
the bit-field.
|
89
|
+
- Fix incomplete object cross-reference extraction in order to record
|
90
|
+
object references within global scope in case of global function
|
91
|
+
table initialization.
|
92
|
+
- Fix incomplete object cross-reference graph and function call graph
|
93
|
+
in order to correctly warn about useless objects.
|
94
|
+
- Fix bad `##' operator evaluation in order to comply with the ISO
|
95
|
+
C99 standard.
|
96
|
+
|
97
|
+
Wed May 29 18:31:55 2013 Yutaka Yanoh <yanoh@users.sourceforge.net>
|
98
|
+
|
99
|
+
* features/code_check/W0422.feature : Add scenario to reproduce a known
|
100
|
+
bug.
|
101
|
+
|
102
|
+
* lib/adlint/cc1/ctrlexpr.rb : Fix controlling expression evaluation in
|
103
|
+
order not to install implicit functions when the effective
|
104
|
+
controlling expression is not a regular one and the controlling
|
105
|
+
variable is declared in the iteration body.
|
106
|
+
|
107
|
+
Wed May 29 13:26:20 2013 Yutaka Yanoh <yanoh@users.sourceforge.net>
|
108
|
+
|
109
|
+
* features/code_check/W0830.feature : Add scenario to reproduce bad
|
110
|
+
macro replacement problem.
|
111
|
+
|
112
|
+
* lib/adlint/cpp/macro.rb : Fix bad `##' operator evaluation in order
|
113
|
+
to comply with the ISO C99 standard.
|
114
|
+
|
115
|
+
Tue May 28 21:47:56 2013 Yutaka Yanoh <yanoh@users.sourceforge.net>
|
116
|
+
|
117
|
+
* lib/adlint/exam/c_builtin/ld_metric.rb : Fix FN_CALL measurement to
|
118
|
+
count a number of caller functions instead of a number of function
|
119
|
+
calls.
|
120
|
+
|
121
|
+
Tue May 28 20:59:27 2013 Yutaka Yanoh <yanoh@users.sourceforge.net>
|
122
|
+
|
123
|
+
* lib/adlint/exam/c_builtin/ld_check.rb : Fix W0589 code check in order
|
124
|
+
to warn when only one function which is defined in the same
|
125
|
+
translation-unit refers to the object but the function refers to that
|
126
|
+
twice or more.
|
127
|
+
|
128
|
+
Tue May 28 19:08:41 2013 Yutaka Yanoh <yanoh@users.sourceforge.net>
|
129
|
+
|
130
|
+
* lib/adlint/exam/c_builtin/ld_check.rb : Fix incomplete object
|
131
|
+
cross-reference graph and function call graph in order to correctly
|
132
|
+
warn about useless objects.
|
133
|
+
* lib/adlint/exam/c_builtin/ld_metric.rb : Ditto.
|
134
|
+
* lib/adlint/ld/phase.rb : Ditto.
|
135
|
+
* lib/adlint/ld/util.rb : Ditto.
|
136
|
+
|
137
|
+
Tue May 28 16:28:11 2013 Yutaka Yanoh <yanoh@users.sourceforge.net>
|
138
|
+
|
139
|
+
* lib/adlint/ld/object.rb : Rewrite object cross-reference graph and
|
140
|
+
function call graph management.
|
141
|
+
* lib/adlint/ld/typedef.rb : Ditto.
|
142
|
+
* lib/adlint/analyzer.rb : Ditto.
|
143
|
+
|
144
|
+
Tue May 28 11:31:54 2013 Yutaka Yanoh <yanoh@users.sourceforge.net>
|
145
|
+
|
146
|
+
* lib/adlint/cpp/phase.rb : Refine inner object names of phase context.
|
147
|
+
* lib/adlint/cc1/phase.rb : Ditto.
|
148
|
+
* lib/adlint/exam/c_builtin/cpp_check.rb : Ditto.
|
149
|
+
* lib/adlint/exam/c_builtin/cpp_check_shima.rb : Ditto.
|
150
|
+
* lib/adlint/exam/c_builtin/cpp_code.rb : Ditto.
|
151
|
+
* lib/adlint/exam/c_builtin/cc1_check.rb : Ditto.
|
152
|
+
* lib/adlint/exam/c_builtin/cc1_check_shima.rb : Ditto.
|
153
|
+
* lib/adlint/exam/c_builtin/cc1_metric.rb : Ditto.
|
154
|
+
* lib/adlint/cc1/util.rb : Ditto.
|
155
|
+
|
156
|
+
Mon May 27 15:21:14 2013 Yutaka Yanoh <yanoh@users.sourceforge.net>
|
157
|
+
|
158
|
+
* lib/adlint/exam/c_builtin/cc1_code.rb : Fix incomplete object
|
159
|
+
cross-reference extraction in order to record object references
|
160
|
+
within global scope in case of global function table initialization.
|
161
|
+
* lib/adlint/code.rb : Ditto.
|
162
|
+
|
163
|
+
Fri May 24 19:11:52 2013 Yutaka Yanoh <yanoh@users.sourceforge.net>
|
164
|
+
|
165
|
+
* lib/adlint/cc1/parser.y : Remove useless state management of the
|
166
|
+
identifier translation in `struct_declaration'.
|
167
|
+
|
168
|
+
Fri May 24 16:05:07 2013 Yutaka Yanoh <yanoh@users.sourceforge.net>
|
169
|
+
|
170
|
+
* features/code_check/W0491.feature : Add scenario to reproduce abend
|
171
|
+
problem of parser.
|
172
|
+
|
173
|
+
* lib/adlint/cc1/parser.y : Fix bad state management of the identifier
|
174
|
+
translation again and again.
|
175
|
+
|
176
|
+
Fri May 24 15:09:25 2013 Yutaka Yanoh <yanoh@users.sourceforge.net>
|
177
|
+
|
178
|
+
* features/code_check/W0542.feature : Add scenario to reproduce abend
|
179
|
+
problem of parser.
|
180
|
+
|
181
|
+
* lib/adlint/cc1/parser.y : Fix bad state management of the identifier
|
182
|
+
translation again.
|
183
|
+
|
184
|
+
Fri May 24 13:47:47 2013 Yutaka Yanoh <yanoh@users.sourceforge.net>
|
185
|
+
|
186
|
+
* features/code_check/W0491.feature : Add scenario to reproduce abend
|
187
|
+
problem of parser.
|
188
|
+
|
189
|
+
* lib/adlint/cc1/parser.y : Fix bad state management of the identifier
|
190
|
+
translation.
|
191
|
+
|
192
|
+
Fri May 24 12:32:54 2013 Yutaka Yanoh <yanoh@users.sourceforge.net>
|
193
|
+
|
194
|
+
* features/code_check/W0491.feature : Add scenario to reproduce abend
|
195
|
+
problem of parsing the same name in different namespaces.
|
196
|
+
|
197
|
+
* lib/adlint/cc1/parser.y : Fix incomplete identifier to typedef-name
|
198
|
+
translation.
|
199
|
+
|
200
|
+
Thu May 23 19:10:38 2013 Yutaka Yanoh <yanoh@users.sourceforge.net>
|
201
|
+
|
202
|
+
* features/code_check/W0492.feature : Add scenario to reproduce abend
|
203
|
+
problem of parsing the same name in different namespaces.
|
204
|
+
|
205
|
+
* lib/adlint/cc1/parser.y : Fix incomplete identifier to typedef-name
|
206
|
+
translation.
|
207
|
+
|
208
|
+
* lib/adlint/cc1/lexer.rb : Add note about namespaces of identifiers.
|
209
|
+
|
210
|
+
Wed May 22 13:12:48 2013 Yutaka Yanoh <yanoh@users.sourceforge.net>
|
211
|
+
|
212
|
+
* features/code_check/W0786.feature : Add scenario to reproduce a known
|
213
|
+
bug.
|
214
|
+
|
215
|
+
* lib/adlint/exam/c_builtin/cc1_check.rb : Fix W0786 code check in
|
216
|
+
order not to warn when a typedefed type which is same as signed or
|
217
|
+
unsigned int is specified as a base of the bit-field.
|
218
|
+
|
219
|
+
Tue May 21 19:34:10 2013 Yutaka Yanoh <yanoh@users.sourceforge.net>
|
220
|
+
|
221
|
+
* lib/adlint/cc1/parser.y : Fix abend problem in parsing unnamed
|
222
|
+
bit-field declaration.
|
223
|
+
|
224
|
+
Sat May 18 15:25:51 2013 Yutaka Yanoh <yanoh@users.sourceforge.net>
|
225
|
+
|
226
|
+
* features/code_check/W1047.feature : Add scenario to reproduce a known
|
227
|
+
bug.
|
228
|
+
|
229
|
+
* lib/adlint/cc1/syntax.rb : Fix bad expression-constancy check in
|
230
|
+
order to treat an address-expression as a constant-expression.
|
231
|
+
|
232
|
+
* lib/adlint/exam/c_builtin/cc1_check.rb : Fix W1047 code check to
|
233
|
+
check expression constancy by the newly added unified interface.
|
234
|
+
|
235
|
+
Fri May 17 17:42:35 2013 Yutaka Yanoh <yanoh@users.sourceforge.net>
|
236
|
+
|
237
|
+
* features/code_check/W0610.feature : Add scenario to reproduce a known
|
238
|
+
bug.
|
239
|
+
|
240
|
+
* lib/adlint/cc1/interp.rb : Fix bad value domain management of the
|
241
|
+
variable whose storage duration is static.
|
242
|
+
|
243
|
+
Fri May 17 15:42:42 2013 Yutaka Yanoh <yanoh@users.sourceforge.net>
|
244
|
+
|
245
|
+
* share/doc/users_guide_ja.texi : Revise description of W0642 message.
|
246
|
+
* share/doc/users_guide_en.texi : Ditto.
|
247
|
+
|
248
|
+
Fri May 17 15:00:25 2013 Yutaka Yanoh <yanoh@users.sourceforge.net>
|
249
|
+
|
250
|
+
* features/code_check/W9003.feature : Add scenario to reproduce a known
|
251
|
+
bug.
|
252
|
+
|
253
|
+
* lib/adlint/exam/c_builtin/cc1_check.rb : Revise specification of
|
254
|
+
W0642 code check in order to warn about all the illegal address
|
255
|
+
derivation from the object declared as `register'.
|
256
|
+
* etc/mesg.d/c_builtin/ja_JP/messages.yml : Ditto.
|
257
|
+
* etc/mesg.d/c_builtin/en_US/messages.yml : Ditto.
|
258
|
+
|
259
|
+
* lib/adlint/exam/c_builtin/cc1_check.rb : Add notification about
|
260
|
+
object address derivation.
|
261
|
+
|
262
|
+
Fri May 17 12:55:38 2013 Yutaka Yanoh <yanoh@users.sourceforge.net>
|
263
|
+
|
264
|
+
* features/code_check/W0642.feature : Add scenario to reproduce a known
|
265
|
+
bug.
|
266
|
+
|
267
|
+
* lib/adlint/exam/c_builtin/cc1_check.rb : Fix W0642 code check in
|
268
|
+
order to warn only when the original object of implicit conversion is
|
269
|
+
an array.
|
270
|
+
|
271
|
+
* lib/adlint/cc1/mediator.rb : Add implicit conversion notification in
|
272
|
+
object conversion methods to notify illegal conversions.
|
273
|
+
* lib/adlint/cc1/interp.rb : Ditto.
|
274
|
+
* lib/adlint/cc1/expr.rb : Ditto.
|
275
|
+
* lib/adlint/cc1/ctrlexpr.rb : Ditto.
|
276
|
+
|
277
|
+
* lib/adlint/cc1/object.rb : Fix argument to parameter assignment
|
278
|
+
behavior in order to notify illegal conversions correctly.
|
279
|
+
|
280
|
+
Fri May 17 09:35:36 2013 Yutaka Yanoh <yanoh@users.sourceforge.net>
|
281
|
+
|
282
|
+
* lib/adlint/cc1/interp.rb : Fix bad variable defining behavor in order
|
283
|
+
not to predefine a variable of incomplete type.
|
284
|
+
|
285
|
+
Thu May 16 18:38:40 2013 Yutaka Yanoh <yanoh@users.sourceforge.net>
|
286
|
+
|
287
|
+
* features/code_check/W0580.feature : Add scenario to reproduce a known
|
288
|
+
bug.
|
289
|
+
|
290
|
+
Thu May 16 17:08:41 2013 Yutaka Yanoh <yanoh@users.sourceforge.net>
|
291
|
+
|
292
|
+
* features/code_check/W0422.feature : Add scenario to reproduce a known
|
293
|
+
bug.
|
294
|
+
|
295
|
+
* lib/adlint/cc1/interp.rb : Fix bad variable defining behavor in order
|
296
|
+
to correctly evaluate sizeof-expression that refers defining variable
|
297
|
+
in the initializer.
|
298
|
+
|
299
|
+
Thu May 16 11:00:07 2013 Yutaka Yanoh <yanoh@users.sourceforge.net>
|
300
|
+
|
301
|
+
* features/code_check/W1047.feature : Add scenario to reproduce a known
|
302
|
+
bug.
|
303
|
+
|
304
|
+
* lib/adlint/cc1/syntax.rb : Fix bad expression-constancy check in
|
305
|
+
order to treat an expression derives an address-constant as a
|
306
|
+
constant-expression.
|
307
|
+
|
308
|
+
* lib/adlint/cc1/interp.rb : Move runtime object manipulation interface
|
309
|
+
to InterpreterMediator.
|
310
|
+
Fix over-notification of implicit conversion in order not to check
|
311
|
+
the natural conversions suck as function to function-pointer
|
312
|
+
conversion.
|
313
|
+
|
314
|
+
* lib/adlint/cc1/mediator.rb : Add convenient interface for
|
315
|
+
expression-constancy check and runtime object manipulations.
|
316
|
+
* lib/adlint/cc1/expr.rb : Ditto.
|
317
|
+
* lib/adlint/exam/c_builtin/cc1_check.rb : Ditto.
|
318
|
+
|
319
|
+
* lib/adlint/cc1/enum.rb : Add enumerator name extraction interface for
|
320
|
+
expression-constancy check.
|
321
|
+
|
322
|
+
* lib/adlint/cc1/object.rb : Move object conversion responsibilities
|
323
|
+
from Interpreter to TypedObject.
|
324
|
+
Add function name extraction interface for expression-constancy
|
325
|
+
check.
|
326
|
+
|
327
|
+
Mon May 13 19:19:31 2013 Yutaka Yanoh <yanoh@users.sourceforge.net>
|
328
|
+
|
329
|
+
* lib/adlint/cpp/eval.rb : Fix infinite-loop problem of preprocessor
|
330
|
+
when the #include directive appears with undefined macro.
|
331
|
+
* lib/adlint/error.rb : Ditto.
|
332
|
+
* etc/mesg.d/core/ja_JP/messages.yml : Ditto.
|
333
|
+
* etc/mesg.d/core/en_US/messages.yml : Ditto.
|
334
|
+
|
335
|
+
Mon May 13 17:41:41 2013 Yutaka Yanoh <yanoh@users.sourceforge.net>
|
336
|
+
|
337
|
+
* lib/adlint/cpp/lexer.rb : Fix block comment handling in order not to
|
338
|
+
dive into nested part when a single slash character appears before
|
339
|
+
the comment terminator.
|
340
|
+
|
341
|
+
Mon May 13 16:29:47 2013 Yutaka Yanoh <yanoh@users.sourceforge.net>
|
342
|
+
|
343
|
+
* lib/adlint/cpp/lexer.rb : Fix bad handling of block comments in order
|
344
|
+
not to assume comment terminator as a part of comment content.
|
345
|
+
|
346
|
+
* lib/adlint/cpp/eval.rb : Fix abend problem of preprocessor when a
|
347
|
+
block comment is not terminated in the translation-unit.
|
348
|
+
|
349
|
+
Sun May 12 21:26:44 2013 Yutaka Yanoh <yanoh@users.sourceforge.net>
|
350
|
+
|
351
|
+
* lib/adlint/memo.rb : Revise cache name generation rule by the example
|
352
|
+
of Lisp naming conventions.
|
353
|
+
|
354
|
+
Sat May 4 01:29:26 2013 Yutaka Yanoh <yanoh@users.sourceforge.net>
|
355
|
+
|
356
|
+
* lib/adlint/memo.rb : Add `force_nullary' option to Memoizable#memoize
|
357
|
+
and improve performance of memoized unary method.
|
358
|
+
* lib/adlint/cc1/domain.rb : Ditto.
|
359
|
+
* lib/adlint/ld/object.rb : Ditto.
|
360
|
+
* lib/adlint/location.rb : Ditto.
|
361
|
+
|
1
362
|
Fri Apr 12 13:06:31 2013 Yutaka Yanoh <yanoh@users.sourceforge.net>
|
2
363
|
|
3
364
|
* release.ga : 3.0.4
|
@@ -15,9 +376,9 @@ Fri Apr 12 11:56:59 2013 Yutaka Yanoh <yanoh@users.sourceforge.net>
|
|
15
376
|
Thu Apr 12 10:48:11 2013 Yutaka Yanoh <yanoh@users.sourceforge.net>
|
16
377
|
|
17
378
|
* release.ga : 3.0.2
|
18
|
-
- Add missing transparency between a pointer to
|
19
|
-
|
20
|
-
- Add missing transparency between a
|
379
|
+
- Add missing transparency between an array and a pointer to its
|
380
|
+
first element in expression evaluation.
|
381
|
+
- Add missing transparency between a function and a function pointer
|
21
382
|
in expression evaluation.
|
22
383
|
- Clarify W0100 message text.
|
23
384
|
- Refactor memoizing utility in preparation for performance tuning.
|
@@ -30,9 +391,9 @@ Wed Apr 10 17:18:42 2013 Yutaka Yanoh <yanoh@users.sourceforge.net>
|
|
30
391
|
Tue Apr 2 17:22:02 2013 Yutaka Yanoh <yanoh@users.sourceforge.net>
|
31
392
|
|
32
393
|
* release.rc : 3.0.1
|
33
|
-
- Add missing transparency between a pointer to
|
34
|
-
|
35
|
-
- Add missing transparency between a
|
394
|
+
- Add missing transparency between an array and a pointer to its
|
395
|
+
first element in expression evaluation.
|
396
|
+
- Add missing transparency between a function and a function pointer
|
36
397
|
in expression evaluation.
|
37
398
|
- Clarify W0100 message text.
|
38
399
|
|
@@ -43,14 +404,14 @@ Tue Apr 2 16:50:12 2013 Yutaka Yanoh <yanoh@users.sourceforge.net>
|
|
43
404
|
|
44
405
|
Mon Apr 1 15:55:03 2013 Yutaka Yanoh <yanoh@users.sourceforge.net>
|
45
406
|
|
46
|
-
* lib/adlint/cc1/expr.rb : Add missing transparency between a
|
47
|
-
|
407
|
+
* lib/adlint/cc1/expr.rb : Add missing transparency between a function
|
408
|
+
and a function pointer in expression evaluation.
|
48
409
|
* lib/adlint/cc1/interp.rb : Ditto.
|
49
410
|
|
50
411
|
Thu Apr 1 10:08:45 2013 Yutaka Yanoh <yanoh@users.sourceforge.net>
|
51
412
|
|
52
|
-
* lib/adlint/cc1/expr.rb : Add missing transparency between
|
53
|
-
|
413
|
+
* lib/adlint/cc1/expr.rb : Add missing transparency between an array
|
414
|
+
and a pointer to its first element in expression evaluation.
|
54
415
|
* lib/adlint/cc1/interp.rb : Ditto.
|
55
416
|
|
56
417
|
Tue Mar 26 17:01:16 2013 Yutaka Yanoh <yanoh@users.sourceforge.net>
|
@@ -100,7 +461,7 @@ Tue Mar 26 17:01:16 2013 Yutaka Yanoh <yanoh@users.sourceforge.net>
|
|
100
461
|
correctly with consecutive case and default labels.
|
101
462
|
- Fix normalized controlling-expression derivation logic of
|
102
463
|
switch-statement's case and default clause in order to work
|
103
|
-
correctly with consecutive case and default labels.
|
464
|
+
correctly with consecutive case and default labels.
|
104
465
|
- Fix W0003 code check not to misunderstand that the switch-statement
|
105
466
|
has no default clause when the switch-statement contains
|
106
467
|
consecutive case and default labels.
|
@@ -145,7 +506,7 @@ Tue Mar 19 11:30:46 2013 Yutaka Yanoh <yanoh@users.sourceforge.net>
|
|
145
506
|
correctly with consecutive case and default labels.
|
146
507
|
- Fix normalized controlling-expression derivation logic of
|
147
508
|
switch-statement's case and default clause in order to work
|
148
|
-
correctly with consecutive case and default labels.
|
509
|
+
correctly with consecutive case and default labels.
|
149
510
|
- Fix W0003 code check not to misunderstand that the switch-statement
|
150
511
|
has no default clause when the switch-statement contains
|
151
512
|
consecutive case and default labels.
|
@@ -157,7 +518,7 @@ Mon Mar 18 16:05:49 2013 Yutaka Yanoh <yanoh@users.sourceforge.net>
|
|
157
518
|
|
158
519
|
* lib/adlint/cc1/syntax.rb : Fix normalized controlling-expression
|
159
520
|
derivation logic of switch-statement's case and default clause in
|
160
|
-
order to work correctly with consecutive case and default labels.
|
521
|
+
order to work correctly with consecutive case and default labels.
|
161
522
|
|
162
523
|
* lib/adlint/exam/c_builtin/cc1_check.rb : Fix W0003 code check not to
|
163
524
|
misunderstand that the switch-statement has no default clause when
|
data/INSTALL
CHANGED
@@ -21,7 +21,7 @@
|
|
21
21
|
|
22
22
|
++
|
23
23
|
|
24
|
-
===
|
24
|
+
=== Prerequisites
|
25
25
|
|
26
26
|
* Ruby 1.9.3-p0 or later for normal use [*mandatory*]
|
27
27
|
* GNU Make 3 or later to use adlintized Makefile [optional but recommended]
|
@@ -33,8 +33,6 @@ Setup your Ruby interpreter.
|
|
33
33
|
Then, you can install \AdLint by following instruction.
|
34
34
|
|
35
35
|
% gem install adlint
|
36
|
-
or
|
37
|
-
% sudo gem install adlint
|
38
36
|
|
39
37
|
=== Evaluation
|
40
38
|
|
data/MANIFEST
CHANGED
@@ -190,6 +190,7 @@ features/code_check/W0251.feature
|
|
190
190
|
features/code_check/W0252.feature
|
191
191
|
features/code_check/W0253.feature
|
192
192
|
features/code_check/W0254.feature
|
193
|
+
features/code_check/W0422.feature
|
193
194
|
features/code_check/W0425.feature
|
194
195
|
features/code_check/W0431.feature
|
195
196
|
features/code_check/W0432.feature
|
@@ -204,6 +205,8 @@ features/code_check/W0483.feature
|
|
204
205
|
features/code_check/W0488.feature
|
205
206
|
features/code_check/W0489.feature
|
206
207
|
features/code_check/W0490.feature
|
208
|
+
features/code_check/W0491.feature
|
209
|
+
features/code_check/W0492.feature
|
207
210
|
features/code_check/W0495.feature
|
208
211
|
features/code_check/W0496.feature
|
209
212
|
features/code_check/W0497.feature
|
@@ -213,16 +216,20 @@ features/code_check/W0500.feature
|
|
213
216
|
features/code_check/W0501.feature
|
214
217
|
features/code_check/W0502.feature
|
215
218
|
features/code_check/W0534.feature
|
219
|
+
features/code_check/W0542.feature
|
216
220
|
features/code_check/W0573.feature
|
221
|
+
features/code_check/W0580.feature
|
217
222
|
features/code_check/W0582.feature
|
218
223
|
features/code_check/W0583.feature
|
219
224
|
features/code_check/W0584.feature
|
220
225
|
features/code_check/W0585.feature
|
221
226
|
features/code_check/W0599.feature
|
222
227
|
features/code_check/W0606.feature
|
228
|
+
features/code_check/W0610.feature
|
223
229
|
features/code_check/W0611.feature
|
224
230
|
features/code_check/W0635.feature
|
225
231
|
features/code_check/W0641.feature
|
232
|
+
features/code_check/W0642.feature
|
226
233
|
features/code_check/W0643.feature
|
227
234
|
features/code_check/W0644.feature
|
228
235
|
features/code_check/W0645.feature
|
@@ -291,6 +298,7 @@ features/code_check/W0769.feature
|
|
291
298
|
features/code_check/W0780.feature
|
292
299
|
features/code_check/W0781.feature
|
293
300
|
features/code_check/W0783.feature
|
301
|
+
features/code_check/W0786.feature
|
294
302
|
features/code_check/W0787.feature
|
295
303
|
features/code_check/W0792.feature
|
296
304
|
features/code_check/W0793.feature
|
@@ -337,6 +345,8 @@ features/code_check/W1076.feature
|
|
337
345
|
features/code_check/W1077.feature
|
338
346
|
features/code_check/W9001.feature
|
339
347
|
features/code_check/W9003.feature
|
348
|
+
features/code_extraction/TODO
|
349
|
+
features/metric_measurement/TODO
|
340
350
|
features/step_definitions/code_check_steps.rb
|
341
351
|
features/support/env.rb
|
342
352
|
lib/adlint.rb
|
@@ -553,6 +563,8 @@ share/doc/adlint_on_eclipse_en.png
|
|
553
563
|
share/doc/adlint_on_eclipse_ja.png
|
554
564
|
share/doc/adlint_on_vim_en.png
|
555
565
|
share/doc/adlint_on_vim_ja.png
|
566
|
+
share/doc/c99gram.dot
|
567
|
+
share/doc/c99gram.pdf
|
556
568
|
share/doc/developers_guide_ja.html
|
557
569
|
share/doc/developers_guide_ja.texi
|
558
570
|
share/doc/gen_mesg_sections.rb
|
data/NEWS
CHANGED
@@ -21,16 +21,42 @@
|
|
21
21
|
|
22
22
|
++
|
23
23
|
|
24
|
+
=== \AdLint 3.0.8 is released (2013-05-31)
|
25
|
+
|
26
|
+
==== Changes since the 3.0.4 release
|
27
|
+
|
28
|
+
* Fix abend problem of preprocessor when a block comment is not terminated in
|
29
|
+
the translation-unit
|
30
|
+
* Fix block comment handling in order not to dive into nested part when a
|
31
|
+
single slash character appears before the comment terminator
|
32
|
+
* Fix infinite-loop problem of preprocessor when the #include directive appears
|
33
|
+
with undefined macro
|
34
|
+
* Fix bad expression-constancy check in order to treat an expression derives an
|
35
|
+
address-constant as a constant-expression
|
36
|
+
* Fix bad variable defining behavor in order to correctly evaluate
|
37
|
+
sizeof-expression that refers defining variable in the initializer
|
38
|
+
* Revise specification of W0642 code check in order to warn about all the
|
39
|
+
illegal address derivation from the object declared as `register'
|
40
|
+
* Fix abend problem in parsing unnamed bit-field declaration
|
41
|
+
* Fix W0786 code check in order not to warn when a typedefed type which is same
|
42
|
+
as signed or unsigned int is specified as a base of the bit-field
|
43
|
+
* Fix incomplete object cross-reference extraction in order to record object
|
44
|
+
references within global scope in case of global function table
|
45
|
+
initialization
|
46
|
+
* Fix incomplete object cross-reference graph and function call graph in order
|
47
|
+
to correctly warn about useless objects
|
48
|
+
* Fix bad `##' operator evaluation in order to comply with the ISO C99 standard
|
49
|
+
|
50
|
+
See the file
|
51
|
+
{ChangeLog}[http://adlint.sourceforge.net/pmwiki/upload.d/Main/ChangeLog]
|
52
|
+
for more details.
|
53
|
+
|
24
54
|
=== \AdLint 3.0.4 is released (2013-04-12)
|
25
55
|
|
26
56
|
==== Changes since the 3.0.2 release
|
27
57
|
|
28
58
|
* Fix abend problem of adlint_chk command
|
29
59
|
|
30
|
-
See the file
|
31
|
-
{ChangeLog}[http://adlint.sourceforge.net/pmwiki/upload.d/Main/ChangeLog]
|
32
|
-
for more details.
|
33
|
-
|
34
60
|
=== \AdLint 3.0.2 is released (2013-04-12)
|
35
61
|
|
36
62
|
==== Changes since the 3.0.0 release
|
data/README
CHANGED
data/TODO
CHANGED
@@ -49,7 +49,7 @@
|
|
49
49
|
# - "ERR:X99"
|
50
50
|
# format: "Your custom message for the error of E9999."
|
51
51
|
|
52
|
-
version: "3.0.
|
52
|
+
version: "3.0.8"
|
53
53
|
|
54
54
|
message_definition:
|
55
55
|
W0001:
|
@@ -2107,7 +2107,7 @@ message_definition:
|
|
2107
2107
|
W0642:
|
2108
2108
|
classes:
|
2109
2109
|
- "UNC:X99"
|
2110
|
-
format: "
|
2110
|
+
format: "Address derivation from the object declared as `register' is prohibited."
|
2111
2111
|
W0643:
|
2112
2112
|
classes:
|
2113
2113
|
- "UNC:X99"
|
@@ -49,7 +49,7 @@
|
|
49
49
|
# - "ERR:X99"
|
50
50
|
# format: "Your custom message for the error of E9999."
|
51
51
|
|
52
|
-
version: "3.0.
|
52
|
+
version: "3.0.8"
|
53
53
|
|
54
54
|
message_definition:
|
55
55
|
W0001:
|
@@ -2107,7 +2107,7 @@ message_definition:
|
|
2107
2107
|
W0642:
|
2108
2108
|
classes:
|
2109
2109
|
- "UNC:X99"
|
2110
|
-
format: "register
|
2110
|
+
format: "register 指定で宣言されたオブジェクトのアドレスを得ることは不可能です。"
|
2111
2111
|
W0643:
|
2112
2112
|
classes:
|
2113
2113
|
- "UNC:X99"
|
@@ -49,7 +49,7 @@
|
|
49
49
|
# - "ERR:X99"
|
50
50
|
# format: "Your custom message for the error of E9999."
|
51
51
|
|
52
|
-
version: "3.0.
|
52
|
+
version: "3.0.8"
|
53
53
|
|
54
54
|
message_definition:
|
55
55
|
X0001:
|
@@ -132,3 +132,7 @@ message_definition:
|
|
132
132
|
classes:
|
133
133
|
- "ERR:X99"
|
134
134
|
format: "Unfinished comment block is found."
|
135
|
+
E0017:
|
136
|
+
classes:
|
137
|
+
- "ERR:X99"
|
138
|
+
format: "#include expects \"filename\" or <filename>."
|
@@ -49,7 +49,7 @@
|
|
49
49
|
# - "ERR:X99"
|
50
50
|
# format: "Your custom message for the error of E9999."
|
51
51
|
|
52
|
-
version: "3.0.
|
52
|
+
version: "3.0.8"
|
53
53
|
|
54
54
|
message_definition:
|
55
55
|
X0001:
|
@@ -132,3 +132,7 @@ message_definition:
|
|
132
132
|
classes:
|
133
133
|
- "ERR:X99"
|
134
134
|
format: "終了しないコメントブロックが見つかりました。"
|
135
|
+
E0017:
|
136
|
+
classes:
|
137
|
+
- "ERR:X99"
|
138
|
+
format: "#include ディレクティブに \"ファイル名\" または <ファイル名> が見つかりません。"
|