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.
Files changed (73) hide show
  1. data/ChangeLog +374 -13
  2. data/INSTALL +1 -3
  3. data/MANIFEST +12 -0
  4. data/NEWS +30 -4
  5. data/README +0 -4
  6. data/TODO +2 -1
  7. data/etc/mesg.d/c_builtin/en_US/messages.yml +2 -2
  8. data/etc/mesg.d/c_builtin/ja_JP/messages.yml +2 -2
  9. data/etc/mesg.d/core/en_US/messages.yml +5 -1
  10. data/etc/mesg.d/core/ja_JP/messages.yml +5 -1
  11. data/features/code_check/W0422.feature +128 -0
  12. data/features/code_check/W0491.feature +57 -0
  13. data/features/code_check/W0492.feature +80 -0
  14. data/features/code_check/W0542.feature +20 -0
  15. data/features/code_check/W0580.feature +25 -0
  16. data/features/code_check/W0610.feature +36 -0
  17. data/features/code_check/W0642.feature +67 -0
  18. data/features/code_check/W0786.feature +39 -0
  19. data/features/code_check/W0830.feature +27 -0
  20. data/features/code_check/W1047.feature +72 -0
  21. data/features/code_check/W9003.feature +22 -0
  22. data/features/code_extraction/TODO +1 -0
  23. data/features/metric_measurement/TODO +1 -0
  24. data/lib/adlint/analyzer.rb +2 -2
  25. data/lib/adlint/cc1/ctrlexpr.rb +27 -6
  26. data/lib/adlint/cc1/domain.rb +72 -12
  27. data/lib/adlint/cc1/enum.rb +4 -0
  28. data/lib/adlint/cc1/expr.rb +31 -29
  29. data/lib/adlint/cc1/interp.rb +45 -56
  30. data/lib/adlint/cc1/lexer.rb +26 -5
  31. data/lib/adlint/cc1/mediator.rb +35 -6
  32. data/lib/adlint/cc1/object.rb +62 -19
  33. data/lib/adlint/cc1/parser.rb +948 -904
  34. data/lib/adlint/cc1/parser.y +59 -29
  35. data/lib/adlint/cc1/phase.rb +6 -8
  36. data/lib/adlint/cc1/syntax.rb +70 -17
  37. data/lib/adlint/cc1/util.rb +4 -4
  38. data/lib/adlint/code.rb +16 -6
  39. data/lib/adlint/cpp/eval.rb +31 -25
  40. data/lib/adlint/cpp/lexer.rb +11 -5
  41. data/lib/adlint/cpp/macro.rb +34 -7
  42. data/lib/adlint/cpp/phase.rb +8 -8
  43. data/lib/adlint/error.rb +6 -0
  44. data/lib/adlint/exam/c_builtin/cc1_check.rb +557 -594
  45. data/lib/adlint/exam/c_builtin/cc1_check_shima.rb +72 -72
  46. data/lib/adlint/exam/c_builtin/cc1_code.rb +72 -52
  47. data/lib/adlint/exam/c_builtin/cc1_metric.rb +131 -131
  48. data/lib/adlint/exam/c_builtin/cpp_check.rb +48 -48
  49. data/lib/adlint/exam/c_builtin/cpp_check_shima.rb +2 -2
  50. data/lib/adlint/exam/c_builtin/cpp_code.rb +21 -21
  51. data/lib/adlint/exam/c_builtin/ld_check.rb +88 -87
  52. data/lib/adlint/exam/c_builtin/ld_metric.rb +4 -5
  53. data/lib/adlint/exam/c_builtin.rb +6 -6
  54. data/lib/adlint/ld/object.rb +269 -186
  55. data/lib/adlint/ld/phase.rb +19 -19
  56. data/lib/adlint/ld/typedef.rb +7 -7
  57. data/lib/adlint/ld/util.rb +25 -17
  58. data/lib/adlint/location.rb +6 -1
  59. data/lib/adlint/memo.rb +66 -13
  60. data/lib/adlint/prelude.rb +2 -2
  61. data/lib/adlint/report.rb +13 -14
  62. data/lib/adlint/util.rb +1 -1
  63. data/lib/adlint/version.rb +2 -2
  64. data/share/doc/Makefile +6 -2
  65. data/share/doc/c99gram.dot +502 -0
  66. data/share/doc/c99gram.pdf +0 -0
  67. data/share/doc/developers_guide_ja.html +4 -3
  68. data/share/doc/developers_guide_ja.texi +2 -1
  69. data/share/doc/users_guide_en.html +9 -9
  70. data/share/doc/users_guide_en.texi +7 -7
  71. data/share/doc/users_guide_ja.html +9 -9
  72. data/share/doc/users_guide_ja.texi +7 -7
  73. 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 array and an array
19
- variable in expression evaluation.
20
- - Add missing transparency between a pointer function and a function
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 array and an array
34
- variable in expression evaluation.
35
- - Add missing transparency between a pointer function and a function
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 pointer
47
- function and a function in expression evaluation.
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 a pointer
53
- to array and an array variable in expression evaluation.
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
- === Requirement
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
@@ -34,10 +34,6 @@ partly ISO C99.
34
34
  For more details, visit our project homepage at
35
35
  <{http\://adlint.sourceforge.net/}[http://adlint.sourceforge.net/]>.
36
36
 
37
- == News
38
-
39
- :include:NEWS
40
-
41
37
  == How to Install
42
38
 
43
39
  :include:INSTALL
data/TODO CHANGED
@@ -21,8 +21,9 @@
21
21
 
22
22
  ++
23
23
 
24
+ * Support C++ analysis
25
+ * Improve accuracy of code checks
24
26
  * Support many more preset build environments
25
27
  * Implement automatic traits files generator
26
- * Improve accuracy of code checks
27
28
 
28
29
  Any contributions are welcome!
@@ -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.4"
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: "It is impossible to get the array's address which declared with 'register'."
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.4"
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.4"
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.4"
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 ディレクティブに \"ファイル名\" または <ファイル名> が見つかりません。"