adlint 3.0.8 → 3.0.10
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 +295 -0
- data/MANIFEST +9 -0
- data/NEWS +25 -4
- data/etc/mesg.d/c_builtin/en_US/messages.yml +1 -1
- data/etc/mesg.d/c_builtin/ja_JP/messages.yml +1 -1
- data/etc/mesg.d/core/en_US/messages.yml +1 -1
- data/etc/mesg.d/core/ja_JP/messages.yml +1 -1
- data/features/code_check/E0008.feature +20 -0
- data/features/code_check/W0093.feature +1 -1
- data/features/code_check/W0097.feature +30 -0
- data/features/code_check/W0100.feature +66 -0
- data/features/code_check/W0422.feature +157 -0
- data/features/code_check/W0459.feature +118 -0
- data/features/code_check/W0461.feature +115 -0
- data/features/code_check/W0610.feature +59 -0
- data/features/code_check/W0612.feature +29 -0
- data/features/code_check/W0613.feature +33 -0
- data/features/code_check/W0704.feature +25 -0
- data/features/code_check/W0705.feature +33 -0
- data/features/code_check/W1050.feature +43 -0
- data/features/code_check/W1071.feature +30 -0
- data/features/code_check/W9001.feature +24 -0
- data/lib/adlint/cc1/branch.rb +32 -9
- data/lib/adlint/cc1/builtin.rb +2 -2
- data/lib/adlint/cc1/conv.rb +33 -33
- data/lib/adlint/cc1/ctrlexpr.rb +30 -30
- data/lib/adlint/cc1/domain.rb +12 -4
- data/lib/adlint/cc1/environ.rb +2 -1
- data/lib/adlint/cc1/expr.rb +135 -125
- data/lib/adlint/cc1/format.rb +3 -3
- data/lib/adlint/cc1/interp.rb +123 -109
- data/lib/adlint/cc1/lexer.rb +44 -40
- data/lib/adlint/cc1/mediator.rb +2 -2
- data/lib/adlint/cc1/object.rb +121 -36
- data/lib/adlint/cc1/option.rb +1 -0
- data/lib/adlint/cc1/parser.rb +874 -845
- data/lib/adlint/cc1/parser.y +22 -2
- data/lib/adlint/cc1/syntax.rb +37 -18
- data/lib/adlint/cc1/type.rb +3 -3
- data/lib/adlint/cc1/value.rb +58 -50
- data/lib/adlint/cpp/lexer.rb +5 -1
- data/lib/adlint/cpp/macro.rb +30 -30
- data/lib/adlint/cpp/subst.rb +4 -4
- data/lib/adlint/exam/c_builtin/cc1_check.rb +172 -172
- data/lib/adlint/exam/c_builtin/cc1_check_shima.rb +11 -11
- data/lib/adlint/exam/c_builtin/cpp_check.rb +2 -2
- data/lib/adlint/memo.rb +13 -13
- data/lib/adlint/prelude.rb +2 -2
- data/lib/adlint/version.rb +2 -2
- data/share/doc/developers_guide_ja.html +7 -5
- data/share/doc/developers_guide_ja.texi +5 -3
- data/share/doc/users_guide_en.html +3 -3
- data/share/doc/users_guide_en.texi +1 -1
- data/share/doc/users_guide_ja.html +3 -3
- data/share/doc/users_guide_ja.texi +1 -1
- metadata +11 -2
data/ChangeLog
CHANGED
@@ -1,3 +1,298 @@
|
|
1
|
+
Fri Jun 28 10:23:30 2013 Yutaka Yanoh <yanoh@users.sourceforge.net>
|
2
|
+
|
3
|
+
* release.ga : 3.0.10
|
4
|
+
- Add missing comment handling in the initial state of the
|
5
|
+
preprocessing lexer.
|
6
|
+
- Fix incomplete identifier to typedef name translation when the
|
7
|
+
declaring enumerator name is conflicting with the prior typedef
|
8
|
+
name.
|
9
|
+
- Fix evaluation of the global constant variable definition in order
|
10
|
+
not to ignore value of the initializer.
|
11
|
+
- Revise pointer dereferencing behavior to successfully dereference a
|
12
|
+
pointer only when the value of pointer variable is definite.
|
13
|
+
- Improve heuristics of array subscript evaluation with indefinite
|
14
|
+
subscript.
|
15
|
+
- Fix controlling-expression deduction of iteration-statements in
|
16
|
+
order to adopt the ordinary expression when no control breaking
|
17
|
+
condition is found in the iteration body.
|
18
|
+
- Remove unnecessary controlling expression evaluation at entering a
|
19
|
+
do-statement.
|
20
|
+
- Fix value-domain thinning condition to thin domains discarded by a
|
21
|
+
break-statement in the iteration.
|
22
|
+
- Fix bypassing inner-variable's value mutation in order to correctly
|
23
|
+
propagate mutation to the outer-variable.
|
24
|
+
|
25
|
+
Wed Jun 26 17:42:13 2013 Yutaka Yanoh <yanoh@users.sourceforge.net>
|
26
|
+
|
27
|
+
* release.rc : 3.0.9
|
28
|
+
- Add missing comment handling in the initial state of the
|
29
|
+
preprocessing lexer.
|
30
|
+
- Fix incomplete identifier to typedef name translation when the
|
31
|
+
declaring enumerator name is conflicting with the prior typedef
|
32
|
+
name.
|
33
|
+
- Fix evaluation of the global constant variable definition in order
|
34
|
+
not to ignore value of the initializer.
|
35
|
+
- Revise pointer dereferencing behavior to successfully dereference a
|
36
|
+
pointer only when the value of pointer variable is definite.
|
37
|
+
- Improve heuristics of array subscript evaluation with indefinite
|
38
|
+
subscript.
|
39
|
+
- Fix controlling-expression deduction of iteration-statements in
|
40
|
+
order to adopt the ordinary expression when no control breaking
|
41
|
+
condition is found in the iteration body.
|
42
|
+
- Remove unnecessary controlling expression evaluation at entering a
|
43
|
+
do-statement.
|
44
|
+
- Fix value-domain thinning condition to thin domains discarded by a
|
45
|
+
break-statement in the iteration.
|
46
|
+
- Fix bypassing inner-variable's value mutation in order to correctly
|
47
|
+
propagate mutation to the outer-variable.
|
48
|
+
|
49
|
+
Wed Jun 26 16:07:59 2013 Yutaka Yanoh <yanoh@users.sourceforge.net>
|
50
|
+
|
51
|
+
* lib/adlint/cc1/object.rb : Fix assignment behavior of the array
|
52
|
+
representative element in order to correctly propagete definiteness
|
53
|
+
of the new value to outer array variable's value.
|
54
|
+
|
55
|
+
* features/code_check/W0461.feature : Add scenario to reproduce
|
56
|
+
false-positive of W0461 code check when the pointee array is
|
57
|
+
initialized by assignment with indefinite subscript value.
|
58
|
+
|
59
|
+
Tue Jun 25 15:24:13 2013 Yutaka Yanoh <yanoh@users.sourceforge.net>
|
60
|
+
|
61
|
+
* lib/adlint/cc1/interp.rb : Revise evaluation behavior of
|
62
|
+
for-statement's explicit controlling-expression in order to properly
|
63
|
+
evaluate the branch entering condition.
|
64
|
+
Revise evaluation behavior of conditional-expressions to adopt the
|
65
|
+
non-NULL pointer as the expression value when a value of the
|
66
|
+
controlling-expression is indefinite.
|
67
|
+
|
68
|
+
* lib/adlint/cc1/mediator.rb : Revise pointer dereferencing behavior to
|
69
|
+
successfully dereference a pointer only when the value of pointer
|
70
|
+
variable is definite again.
|
71
|
+
|
72
|
+
* features/code_check/W0610.feature : Add scenario to reproduce bad
|
73
|
+
variables' value-domain management problem.
|
74
|
+
|
75
|
+
Mon Jun 24 17:22:47 2013 Yutaka Yanoh <yanoh@users.sourceforge.net>
|
76
|
+
|
77
|
+
* lib/adlint/cc1/branch.rb : Fix over-thinning of controlling
|
78
|
+
variable's value-domain when the terminating branch is of
|
79
|
+
switch-statement enclosed by an iteration-statement.
|
80
|
+
|
81
|
+
* features/code_check/W0459.feature : Add scenario to reproduce
|
82
|
+
false-positive of W0459 code check caused by bad break statement
|
83
|
+
evaluation in thinning value-domain of the controlling variable.
|
84
|
+
|
85
|
+
Mon Jun 24 16:51:36 2013 Yutaka Yanoh <yanoh@users.sourceforge.net>
|
86
|
+
|
87
|
+
* lib/adlint/cc1/object.rb : Restore scrapped side-effect rollback of
|
88
|
+
inner-variables.
|
89
|
+
|
90
|
+
Fri Jun 21 19:14:39 2013 Yutaka Yanoh <yanoh@users.sourceforge.net>
|
91
|
+
|
92
|
+
* lib/adlint/cc1/object.rb : Fix incomplete assignment to the array
|
93
|
+
representative element.
|
94
|
+
|
95
|
+
* features/code_check/W0459.feature : Add scenario to reproduce
|
96
|
+
false-positive of W0459 code check caused by missing representative
|
97
|
+
element updating.
|
98
|
+
|
99
|
+
Fri Jun 21 17:59:24 2013 Yutaka Yanoh <yanoh@users.sourceforge.net>
|
100
|
+
|
101
|
+
* lib/adlint/cc1/object.rb : Add assignment to the array representative
|
102
|
+
element.
|
103
|
+
|
104
|
+
* features/code_check/W0459.feature : Add scenario to reproduce
|
105
|
+
false-negative of W0459 code check caused by missing representative
|
106
|
+
element updating.
|
107
|
+
|
108
|
+
Fri Jun 21 16:16:16 2013 Yutaka Yanoh <yanoh@users.sourceforge.net>
|
109
|
+
|
110
|
+
* lib/adlint/cc1/expr.rb : Improve heuristics of array subscript
|
111
|
+
evaluation with indefinite subscript again and again.
|
112
|
+
|
113
|
+
* lib/adlint/cc1/object.rb : Fix bad management of the representative
|
114
|
+
element of array variables in order to correctly update the array by
|
115
|
+
reassigning new value to its representative element.
|
116
|
+
Add UnmappedMemoryWindow instead of UnmappedMemoryBlock.
|
117
|
+
|
118
|
+
* features/code_check/W0100.feature : Add scenario to reproduce
|
119
|
+
false-positive of W0100 code check caused by bad representative array
|
120
|
+
element.
|
121
|
+
* MANIFEST : Ditto.
|
122
|
+
|
123
|
+
Thu Jun 20 17:59:25 2013 Yutaka Yanoh <yanoh@users.sourceforge.net>
|
124
|
+
|
125
|
+
* lib/adlint/cc1/expr.rb : Improve heuristics of array subscript
|
126
|
+
evaluation with indefinite subscript again.
|
127
|
+
|
128
|
+
* lib/adlint/cc1/object.rb : Add management of the representative
|
129
|
+
element of array variables.
|
130
|
+
Add UnmappedMemoryBlock which is not mapped to the MemoryPool in
|
131
|
+
order to bind representative elements to their values.
|
132
|
+
|
133
|
+
* lib/adlint/cc1/interp.rb : Scrap interpretation mode for controlling
|
134
|
+
expressions.
|
135
|
+
* lib/adlint/cc1/option.rb : Ditto.
|
136
|
+
|
137
|
+
Thu Jun 20 11:21:59 2013 Yutaka Yanoh <yanoh@users.sourceforge.net>
|
138
|
+
|
139
|
+
* lib/adlint/cc1/object.rb : Fix bad value version management in order
|
140
|
+
not to forget histories of a value.
|
141
|
+
|
142
|
+
* features/code_check/W1050.feature : Add scenario to reproduce bad
|
143
|
+
value version management problem.
|
144
|
+
* MANIFEST : Ditto.
|
145
|
+
|
146
|
+
Wed Jun 19 17:17:27 2013 Yutaka Yanoh <yanoh@users.sourceforge.net>
|
147
|
+
|
148
|
+
* lib/adlint/cc1/object.rb : Fix bypassing inner-variable's value
|
149
|
+
mutation in order to correctly propagate mutation to the
|
150
|
+
outer-variable.
|
151
|
+
Add missing value-domain thinning of inner-variables.
|
152
|
+
|
153
|
+
* lib/adlint/cc1/branch.rb : Fix value-domain thinning condition to
|
154
|
+
thin domains discarded by a break-statement in the iteration.
|
155
|
+
* lib/adlint/cc1/environ.rb : Ditto.
|
156
|
+
* lib/adlint/cc1/interp.rb : Ditto.
|
157
|
+
* lib/adlint/cc1/option.rb : Ditto.
|
158
|
+
|
159
|
+
* features/code_check/W0422.feature : Add scenario to reproduce
|
160
|
+
false-positive of W0422 code check caused by incomplete value-domain
|
161
|
+
thinning.
|
162
|
+
|
163
|
+
* lib/adlint/cc1/builtin.rb : Fix broken `__adlint__eval' builtin debug
|
164
|
+
function.
|
165
|
+
|
166
|
+
Mon Jun 17 16:43:32 2013 Yutaka Yanoh <yanoh@users.sourceforge.net>
|
167
|
+
|
168
|
+
* lib/adlint/cpp/lexer.rb : Add missing comment handling in the initial
|
169
|
+
state of the preprocessing lexer.
|
170
|
+
|
171
|
+
* features/code_check/E0008.feature : Add scenario to reproduce a parse
|
172
|
+
error when a #define directive appears right after a block comment
|
173
|
+
followed by an escaped newline.
|
174
|
+
* MANIFEST : Ditto.
|
175
|
+
|
176
|
+
Mon Jun 17 15:24:10 2013 Yutaka Yanoh <yanoh@users.sourceforge.net>
|
177
|
+
|
178
|
+
* features/code_check/W0704.feature : Add scenario to reproduce a parse
|
179
|
+
error when the enumerator name is conflicting with the prior typedef
|
180
|
+
name.
|
181
|
+
* MANIFEST : Ditto.
|
182
|
+
|
183
|
+
* lib/adlint/cc1/lexer.rb : Rewrite identifier set to track declared
|
184
|
+
identifiers in preparation for fixing incomplete identifier to
|
185
|
+
typedef name translation.
|
186
|
+
|
187
|
+
* lib/adlint/cc1/parser.y : Fix incomplete identifier to typedef name
|
188
|
+
translation when the declaring enumerator name is conflicting with
|
189
|
+
the prior typedef name.
|
190
|
+
|
191
|
+
Thu Jun 13 15:53:21 2013 Yutaka Yanoh <yanoh@users.sourceforge.net>
|
192
|
+
|
193
|
+
* lib/adlint/cc1/interp.rb : Remove unnecessary controlling expression
|
194
|
+
evaluation at entering a do-statement.
|
195
|
+
|
196
|
+
* features/code_check/W9001.feature : Add scenario to reproduce
|
197
|
+
false-positive of W9001 code check about body of the one-shot
|
198
|
+
do-statement.
|
199
|
+
|
200
|
+
Thu Jun 13 13:42:24 2013 Yutaka Yanoh <yanoh@users.sourceforge.net>
|
201
|
+
|
202
|
+
* lib/adlint/cc1/domain.rb : Fix bad bitwise & evaluation with
|
203
|
+
indefinite value domains.
|
204
|
+
|
205
|
+
* features/code_check/W0612.feature : Add scenario to reproduce
|
206
|
+
false-positive of W0612 code check when value of an operand is
|
207
|
+
indefinite.
|
208
|
+
* MANIFEST : Ditto.
|
209
|
+
|
210
|
+
Wed Jun 12 19:57:55 2013 Yutaka Yanoh <yanoh@users.sourceforge.net>
|
211
|
+
|
212
|
+
* lib/adlint/cc1/syntax.rb : Fix controlling-expression deduction of
|
213
|
+
iteration-statements in order to adopt the ordinary expression when
|
214
|
+
no control breaking condition is found in the iteration body.
|
215
|
+
|
216
|
+
* features/code_check/W0422.feature : Add scenario to reproduce a known
|
217
|
+
bug.
|
218
|
+
|
219
|
+
Wed Jun 12 15:51:38 2013 Yutaka Yanoh <yanoh@users.sourceforge.net>
|
220
|
+
|
221
|
+
* lib/adlint/cc1/object.rb : Add missing value coercing in evaluation
|
222
|
+
of variable definition when the variable has already been declared.
|
223
|
+
|
224
|
+
Wed Jun 12 11:43:35 2013 Yutaka Yanoh <yanoh@users.sourceforge.net>
|
225
|
+
|
226
|
+
* features/code_check/W0459.feature : Add scenario to reproduce a known
|
227
|
+
bug.
|
228
|
+
|
229
|
+
* lib/adlint/cc1/interp.rb : Fix conditional-expression evaluation in
|
230
|
+
order to evaluate controlling expression in the same manner as that
|
231
|
+
of if-statement.
|
232
|
+
|
233
|
+
* lib/adlint/cc1/mediator.rb : Fix pointer dereference behavior in
|
234
|
+
order to find possible pointee objects when the pointer value is not
|
235
|
+
definite.
|
236
|
+
|
237
|
+
Fri Jun 7 11:45:23 2013 Yutaka Yanoh <yanoh@users.sourceforge.net>
|
238
|
+
|
239
|
+
* lib/adlint/cc1/expr.rb : Revise global constant array subscript
|
240
|
+
evaluation policy in order to make undefined-value when the subscript
|
241
|
+
value is indefinite.
|
242
|
+
|
243
|
+
Fri Jun 7 10:44:06 2013 Yutaka Yanoh <yanoh@users.sourceforge.net>
|
244
|
+
|
245
|
+
* features/code_check/W1071.feature : Add scenario to reproduce the
|
246
|
+
broken array subscript evaluation in controlling expressions.
|
247
|
+
|
248
|
+
* lib/adlint/cc1/expr.rb : Fix bad array subscript evaluation so that
|
249
|
+
the array-subscript-expression makes undefined-value when no
|
250
|
+
designated object is found.
|
251
|
+
|
252
|
+
Thu Jun 6 18:36:13 2013 Yutaka Yanoh <yanoh@users.sourceforge.net>
|
253
|
+
|
254
|
+
* features/code_check/W0613.feature : Add scenario to reproduce
|
255
|
+
false-positive of W0613 code check when an array-subscript-expression
|
256
|
+
refers to the global constant array is specified as the controlling
|
257
|
+
expression.
|
258
|
+
|
259
|
+
* lib/adlint/cc1/expr.rb : Improve heuristics of array subscript
|
260
|
+
evaluation with indefinite subscript only in controlling expressions.
|
261
|
+
* lib/adlint/cc1/interp.rb : Ditto.
|
262
|
+
* lib/adlint/cc1/option.rb : Ditto.
|
263
|
+
|
264
|
+
Wed Jun 5 17:37:23 2013 Yutaka Yanoh <yanoh@users.sourceforge.net>
|
265
|
+
|
266
|
+
* lib/adlint/cc1/object.rb : Fix variable's value version rollback
|
267
|
+
mechanism in order not to do unnecessary rollback of inner-variables
|
268
|
+
of array or composite value.
|
269
|
+
|
270
|
+
* lib/adlint/cc1/type.rb : Fix bad type traits predicate methods for
|
271
|
+
array type.
|
272
|
+
|
273
|
+
* features/code_check/W0097.feature : Add scenario to reproduce a known
|
274
|
+
bug.
|
275
|
+
* features/code_check/W0461.feature : Ditto.
|
276
|
+
|
277
|
+
* lib/adlint/cc1/value.rb : Add comment to newly added destructive
|
278
|
+
#force_oeverwrite! method.
|
279
|
+
|
280
|
+
Wed Jun 5 17:21:36 2013 Yutaka Yanoh <yanoh@users.sourceforge.net>
|
281
|
+
|
282
|
+
* lib/adlint/cc1/mediator.rb : Revise pointer dereferencing behavior to
|
283
|
+
successfully dereference a pointer only when the value of pointer
|
284
|
+
variable is definite.
|
285
|
+
|
286
|
+
Tue Jun 4 20:33:44 2013 Yutaka Yanoh <yanoh@users.sourceforge.net>
|
287
|
+
|
288
|
+
* features/code_check/W0705.feature : Add scenario to reproduce a known
|
289
|
+
bug.
|
290
|
+
|
291
|
+
* lib/adlint/cc1/interp.rb : Fix evaluation of the global constant
|
292
|
+
variable definition in order not to ignore value of the initializer.
|
293
|
+
* lib/adlint/cc1/object.rb : Ditto.
|
294
|
+
* lib/adlint/cc1/value.rb : Ditto.
|
295
|
+
|
1
296
|
Fri May 31 10:54:11 2013 Yutaka Yanoh <yanoh@users.sourceforge.net>
|
2
297
|
|
3
298
|
* release.ga : 3.0.8
|
data/MANIFEST
CHANGED
@@ -32,6 +32,7 @@ etc/mesg.d/c_builtin/en_US/messages.yml
|
|
32
32
|
etc/mesg.d/c_builtin/ja_JP/messages.yml
|
33
33
|
etc/mesg.d/core/en_US/messages.yml
|
34
34
|
etc/mesg.d/core/ja_JP/messages.yml
|
35
|
+
features/code_check/E0008.feature
|
35
36
|
features/code_check/E0013.feature
|
36
37
|
features/code_check/W0001.feature
|
37
38
|
features/code_check/W0002.feature
|
@@ -52,6 +53,8 @@ features/code_check/W0070.feature
|
|
52
53
|
features/code_check/W0071.feature
|
53
54
|
features/code_check/W0088.feature
|
54
55
|
features/code_check/W0093.feature
|
56
|
+
features/code_check/W0097.feature
|
57
|
+
features/code_check/W0100.feature
|
55
58
|
features/code_check/W0104.feature
|
56
59
|
features/code_check/W0109.feature
|
57
60
|
features/code_check/W0119.feature
|
@@ -194,7 +197,9 @@ features/code_check/W0422.feature
|
|
194
197
|
features/code_check/W0425.feature
|
195
198
|
features/code_check/W0431.feature
|
196
199
|
features/code_check/W0432.feature
|
200
|
+
features/code_check/W0459.feature
|
197
201
|
features/code_check/W0460.feature
|
202
|
+
features/code_check/W0461.feature
|
198
203
|
features/code_check/W0477.feature
|
199
204
|
features/code_check/W0478.feature
|
200
205
|
features/code_check/W0479.feature
|
@@ -227,6 +232,8 @@ features/code_check/W0599.feature
|
|
227
232
|
features/code_check/W0606.feature
|
228
233
|
features/code_check/W0610.feature
|
229
234
|
features/code_check/W0611.feature
|
235
|
+
features/code_check/W0612.feature
|
236
|
+
features/code_check/W0613.feature
|
230
237
|
features/code_check/W0635.feature
|
231
238
|
features/code_check/W0641.feature
|
232
239
|
features/code_check/W0642.feature
|
@@ -252,6 +259,7 @@ features/code_check/W0698.feature
|
|
252
259
|
features/code_check/W0699.feature
|
253
260
|
features/code_check/W0700.feature
|
254
261
|
features/code_check/W0703.feature
|
262
|
+
features/code_check/W0704.feature
|
255
263
|
features/code_check/W0705.feature
|
256
264
|
features/code_check/W0707.feature
|
257
265
|
features/code_check/W0708.feature
|
@@ -321,6 +329,7 @@ features/code_check/W1040.feature
|
|
321
329
|
features/code_check/W1041.feature
|
322
330
|
features/code_check/W1046.feature
|
323
331
|
features/code_check/W1047.feature
|
332
|
+
features/code_check/W1050.feature
|
324
333
|
features/code_check/W1052.feature
|
325
334
|
features/code_check/W1057.feature
|
326
335
|
features/code_check/W1058.feature
|
data/NEWS
CHANGED
@@ -21,6 +21,31 @@
|
|
21
21
|
|
22
22
|
++
|
23
23
|
|
24
|
+
=== \AdLint 3.0.10 is released (2013-06-28)
|
25
|
+
|
26
|
+
==== Changes since the 3.0.8 release
|
27
|
+
|
28
|
+
* Fix incomplete identifier to typedef name translation when the declaring
|
29
|
+
enumerator name is conflicting with the prior typedef name
|
30
|
+
* Add missing comment handling in the initial state of the preprocessing lexer
|
31
|
+
* Fix evaluation of the global constant variable definition in order not to
|
32
|
+
ignore value of the initializer
|
33
|
+
* Revise pointer dereferencing behavior to successfully dereference a pointer
|
34
|
+
only when the value of pointer variable is definite
|
35
|
+
* Improve heuristics of array subscript evaluation with indefinite subscript
|
36
|
+
* Fix controlling-expression deduction of iteration-statements in order to
|
37
|
+
adopt the ordinary expression when no control breaking condition is found in
|
38
|
+
the iteration body
|
39
|
+
* Remove unnecessary controlling expression evaluation at entering a
|
40
|
+
do-statement
|
41
|
+
* Fix value-domain thinning condition to thin domains discarded by a
|
42
|
+
break-statement in the iteration
|
43
|
+
* Fix bypassing inner-variable's value mutation in order to correctly propagate
|
44
|
+
mutation to the outer-variable
|
45
|
+
|
46
|
+
See the file {ChangeLog}[https://github.com/yanoh/adlint/blob/master/ChangeLog]
|
47
|
+
for more details.
|
48
|
+
|
24
49
|
=== \AdLint 3.0.8 is released (2013-05-31)
|
25
50
|
|
26
51
|
==== Changes since the 3.0.4 release
|
@@ -47,10 +72,6 @@
|
|
47
72
|
to correctly warn about useless objects
|
48
73
|
* Fix bad `##' operator evaluation in order to comply with the ISO C99 standard
|
49
74
|
|
50
|
-
See the file
|
51
|
-
{ChangeLog}[http://adlint.sourceforge.net/pmwiki/upload.d/Main/ChangeLog]
|
52
|
-
for more details.
|
53
|
-
|
54
75
|
=== \AdLint 3.0.4 is released (2013-04-12)
|
55
76
|
|
56
77
|
==== Changes since the 3.0.2 release
|
@@ -0,0 +1,20 @@
|
|
1
|
+
Feature: E0008
|
2
|
+
|
3
|
+
E0008 detects that a syntax error occured.
|
4
|
+
|
5
|
+
Scenario: statements in initializer
|
6
|
+
Given a target source named "fixture.c" with:
|
7
|
+
"""
|
8
|
+
#ifdef FOOFOO
|
9
|
+
void foo1(void);
|
10
|
+
#endif
|
11
|
+
|
12
|
+
void foo2(void); /* OK not E0008 */
|
13
|
+
|
14
|
+
/**/\
|
15
|
+
#define FOO 1
|
16
|
+
"""
|
17
|
+
When I successfully run `adlint fixture.c` on noarch
|
18
|
+
Then the output should exactly match with:
|
19
|
+
| mesg | line | column |
|
20
|
+
| W0118 | 5 | 6 |
|