adlint 1.12.0 → 1.14.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/ChangeLog +133 -34
- data/MANIFEST +10 -0
- data/NEWS +22 -4
- data/etc/mesg.d/en_US/messages.yml +1 -1
- data/etc/mesg.d/ja_JP/messages.yml +1 -1
- data/features/message_detection/W0093.feature +3 -3
- data/features/message_detection/W0104.feature +111 -0
- data/features/message_detection/W0606.feature +1 -1
- data/features/message_detection/W0645.feature +142 -0
- data/features/message_detection/W0697.feature +183 -0
- data/features/message_detection/W0699.feature +1 -0
- data/features/message_detection/W0700.feature +56 -0
- data/features/message_detection/W1031.feature +18 -18
- data/features/message_detection/W1066.feature +88 -0
- data/features/message_detection/W1067.feature +88 -0
- data/features/message_detection/W1068.feature +88 -0
- data/features/message_detection/W1069.feature +120 -0
- data/features/message_detection/W1070.feature +145 -0
- data/features/message_detection/W1072.feature +32 -0
- data/lib/adlint/c/interp.rb +17 -10
- data/lib/adlint/c/mediator.rb +1 -0
- data/lib/adlint/c/message_shima.rb +222 -0
- data/lib/adlint/c/phase.rb +9 -0
- data/lib/adlint/c/type.rb +13 -12
- data/lib/adlint/version.rb +2 -2
- data/share/doc/developers_guide_ja.html +3 -3
- data/share/doc/developers_guide_ja.texi +1 -1
- data/share/doc/users_guide_en.html +59 -50
- data/share/doc/users_guide_en.texi +48 -40
- data/share/doc/users_guide_ja.html +60 -52
- data/share/doc/users_guide_ja.texi +49 -41
- metadata +12 -2
data/ChangeLog
CHANGED
@@ -1,3 +1,104 @@
|
|
1
|
+
Wed Jul 4 10:42:39 2012 Yutaka Yanoh <yanoh@users.sourceforge.net>
|
2
|
+
|
3
|
+
* release.ga : 1.14.0
|
4
|
+
- Add W0645 detection.
|
5
|
+
- Add W0697 detection.
|
6
|
+
- Add W0700 detection.
|
7
|
+
- Add W1066 detection.
|
8
|
+
- Add W1067 detection.
|
9
|
+
- Add W1068 detection.
|
10
|
+
- Add W1069 detection.
|
11
|
+
- Add W1070 detection.
|
12
|
+
- Add W1072 detection.
|
13
|
+
- Fix W0104 detection not to warn when the unchanged parameter is
|
14
|
+
typed with `const volatile' qualifiers.
|
15
|
+
- Add W0104, W0645, W0697, W0700, W1066, W1067, W1068, W1069, W1070
|
16
|
+
and W1072 functional specifications.
|
17
|
+
|
18
|
+
Mon Jul 2 17:34:36 2012 Yutaka Yanoh <yanoh@users.sourceforge.net>
|
19
|
+
|
20
|
+
* release.rc : 1.13.0
|
21
|
+
- This is the initial release candidate for 1.14.0 GA release.
|
22
|
+
- Add W0645 detection.
|
23
|
+
- Add W0697 detection.
|
24
|
+
- Add W0700 detection.
|
25
|
+
- Add W1066 detection.
|
26
|
+
- Add W1067 detection.
|
27
|
+
- Add W1068 detection.
|
28
|
+
- Add W1069 detection.
|
29
|
+
- Add W1070 detection.
|
30
|
+
- Add W1072 detection.
|
31
|
+
- Fix W0104 detection not to warn when the unchanged parameter is
|
32
|
+
typed with `const volatile' qualifiers.
|
33
|
+
- Add W0104, W0645, W0697, W0700, W1066, W1067, W1068, W1069, W1070
|
34
|
+
and W1072 functional specifications.
|
35
|
+
|
36
|
+
Mon Jul 2 17:28:14 2012 Yutaka Yanoh <yanoh@users.sourceforge.net>
|
37
|
+
|
38
|
+
* features/message_detection/W0104.feature : Add W0104 functional
|
39
|
+
specification to reproduce a known bug.
|
40
|
+
* MANIFEST : Ditto.
|
41
|
+
|
42
|
+
* lib/adlint/c/type.rb : Fix bad qualified type object structure.
|
43
|
+
|
44
|
+
Mon Jul 2 13:54:32 2012 Rie Shima <rkakuuchi@users.sourceforge.net>
|
45
|
+
|
46
|
+
* share/doc/users_guide_ja.texi : Update descriptions about W0645,
|
47
|
+
W0697, W0700, W1066, W1067, W1068, W1069, W1070 and W1072
|
48
|
+
messages.
|
49
|
+
* share/doc/users_guide_en.texi : Ditto.
|
50
|
+
|
51
|
+
Fri Jun 29 10:04:56 2012 Rie Shima <rkakuuchi@users.sourceforge.net>
|
52
|
+
|
53
|
+
* lib/adlint/c/message_shima.rb : Add W0645, W0697 and W0700
|
54
|
+
detections.
|
55
|
+
* lib/adlint/c/phase.rb : Ditto.
|
56
|
+
|
57
|
+
* features/message_detection/W0645.feature : Add W0645 functional
|
58
|
+
specification.
|
59
|
+
* features/message_detection/W0697.feature : Add W0697 functional
|
60
|
+
specification.
|
61
|
+
* features/message_detection/W0700.feature : Add W0700 functional
|
62
|
+
specification.
|
63
|
+
* MANIFEST : Add W0645, W0697 and W0700 functional specifications.
|
64
|
+
|
65
|
+
Thu Jun 28 18:26:16 2012 Yutaka Yanoh <yanoh@users.sourceforge.net>
|
66
|
+
|
67
|
+
* lib/adlint/c/interp.rb : Refactor long method of FunctionInterpreter.
|
68
|
+
|
69
|
+
Wed Jun 27 15:00:25 2012 Yutaka Yanoh <yanoh@users.sourceforge.net>
|
70
|
+
|
71
|
+
* lib/adlint/c/interp.rb : Add implicit return notification.
|
72
|
+
* lib/adlint/c/mediator.rb : Ditto.
|
73
|
+
|
74
|
+
Fri Jun 22 15:37:18 2012 Rie Shima <rkakuuchi@users.sourceforge.net>
|
75
|
+
|
76
|
+
* lib/adlint/c/message_shima.rb : Add W1069, W1070 and W1072
|
77
|
+
detections.
|
78
|
+
* lib/adlint/c/phase.rb : Ditto.
|
79
|
+
|
80
|
+
* features/message_detection/W1069.feature : Add W1069 functional
|
81
|
+
specification.
|
82
|
+
* features/message_detection/W1070.feature : Add W1070 functional
|
83
|
+
specification.
|
84
|
+
* features/message_detection/W1072.feature : Add W1072 functional
|
85
|
+
specification.
|
86
|
+
* MANIFEST : Add W1069, W1070 and W1072 functional specifications.
|
87
|
+
|
88
|
+
Thu Jun 21 14:52:12 2012 Rie Shima <rkakuuchi@users.sourceforge.net>
|
89
|
+
|
90
|
+
* lib/adlint/c/message_shima.rb : Add W1066, W1067 and W1068
|
91
|
+
detections.
|
92
|
+
* lib/adlint/c/phase.rb : Ditto.
|
93
|
+
|
94
|
+
* features/message_detection/W1066.feature : Add W1066 functional
|
95
|
+
specification.
|
96
|
+
* features/message_detection/W1067.feature : Add W1067 functional
|
97
|
+
specification.
|
98
|
+
* features/message_detection/W1068.feature : Add W1068 functional
|
99
|
+
specification.
|
100
|
+
* MANIFEST : Add W1066, W1067 and W1068 functional specifications.
|
101
|
+
|
1
102
|
Wed Jun 20 13:36:49 2012 Yutaka Yanoh <yanoh@users.sourceforge.net>
|
2
103
|
|
3
104
|
* release.ga : 1.12.0
|
@@ -25,8 +126,8 @@ Wed Jun 20 10:49:52 2012 Yutaka Yanoh <yanoh@users.sourceforge.net>
|
|
25
126
|
|
26
127
|
Wed Jun 20 10:46:17 2012 Yutaka Yanoh <yanoh@users.sourceforge.net>
|
27
128
|
|
28
|
-
* lib/adlint/c/message.rb : Revise W9003 specification not to
|
29
|
-
|
129
|
+
* lib/adlint/c/message.rb : Revise W9003 specification not to over-warn
|
130
|
+
about natural conversions.
|
30
131
|
|
31
132
|
Tue Jun 19 17:37:04 2012 Yutaka Yanoh <yanoh@users.sourceforge.net>
|
32
133
|
|
@@ -39,8 +140,8 @@ Tue Jun 19 16:33:54 2012 Yutaka Yanoh <yanoh@users.sourceforge.net>
|
|
39
140
|
specification.
|
40
141
|
* MANIFEST : Ditto.
|
41
142
|
|
42
|
-
* lib/adlint/c/type.rb : Add Type#standard? predicate method and
|
43
|
-
|
143
|
+
* lib/adlint/c/type.rb : Add Type#standard? predicate method and insert
|
144
|
+
StandardFloatingType in FloatingType class hierarchy.
|
44
145
|
|
45
146
|
* lib/adlint/c/type.rb : Revise integer-promotion rule of any
|
46
147
|
enumerated types in order not to over-warn W9003 about enum-enum
|
@@ -95,8 +196,8 @@ Wed Jun 13 15:57:32 2012 Rie Shima <rkakuuchi@users.sourceforge.net>
|
|
95
196
|
|
96
197
|
* lib/adlint/c/syntax.rb : Add predicate methods to check whether an
|
97
198
|
expression is #arithmetic? or #bitwise?.
|
98
|
-
* spec/adlint/c/syntax_spec.rb : Add unit specifications of syntax
|
99
|
-
|
199
|
+
* spec/adlint/c/syntax_spec.rb : Add unit specifications of syntax tree
|
200
|
+
of the C language.
|
100
201
|
* MANIFEST : Ditto.
|
101
202
|
|
102
203
|
* lib/adlint/c/message_shima.rb : Add W0732, W0733, W0734 and W0735
|
@@ -116,8 +217,8 @@ Wed Jun 13 15:57:32 2012 Rie Shima <rkakuuchi@users.sourceforge.net>
|
|
116
217
|
|
117
218
|
Wed Jun 13 11:59:36 2012 Yutaka Yanoh <yanoh@users.sourceforge.net>
|
118
219
|
|
119
|
-
* lib/adlint/c/ctrlexpr.rb : Revise the value domain narrowing in
|
120
|
-
|
220
|
+
* lib/adlint/c/ctrlexpr.rb : Revise the value domain narrowing in order
|
221
|
+
not to under-narrow a value domain of the controlling variable.
|
121
222
|
* lib/adlint/c/value.rb : Ditto.
|
122
223
|
|
123
224
|
* features/message_detection/W0093.feature : Add W0093 functional
|
@@ -162,8 +263,8 @@ Fri Jun 8 14:43:14 2012 Yutaka Yanoh <yanoh@users.sourceforge.net>
|
|
162
263
|
specification to reproduce a known bug.
|
163
264
|
* MANIFEST : Ditto.
|
164
265
|
|
165
|
-
* lib/adlint/c/ctrlexpr.rb : Revise the value domain narrowing in
|
166
|
-
|
266
|
+
* lib/adlint/c/ctrlexpr.rb : Revise the value domain narrowing in order
|
267
|
+
not to over-narrow a value domain of the controlling variable.
|
167
268
|
|
168
269
|
Thu Jun 7 16:30:23 2012 Yutaka Yanoh <yanoh@users.sourceforge.net>
|
169
270
|
|
@@ -206,8 +307,7 @@ Wed Jun 6 10:19:58 2012 Yutaka Yanoh <yanoh@users.sourceforge.net>
|
|
206
307
|
convertibility correctly.
|
207
308
|
- Fix W1031 detection not to warn when the declaration with `static'
|
208
309
|
and definition without storage-class-specifier.
|
209
|
-
- Fix lack of sequence-point notification of controlling
|
210
|
-
expressions.
|
310
|
+
- Fix lack of sequence-point notification of controlling expressions.
|
211
311
|
- Add unit specifications of C type models.
|
212
312
|
- Add W0001, W0002, W0003, W0007, W0010, W0013, W0109, W0583, W0606,
|
213
313
|
W0698, W0699, W0703, W0716, W0717, W0718, W0723 and W1031
|
@@ -314,8 +414,7 @@ Thu May 31 09:43:09 2012 Yutaka Yanoh <yanoh@users.sourceforge.net>
|
|
314
414
|
- Fix W0500 detection not to warn when two standalone binary
|
315
415
|
arithmetic expressions are appears at 2nd and 3rd expressions of a
|
316
416
|
conditional-expression.
|
317
|
-
- Fix lack of sequence-point notification of controlling
|
318
|
-
expressions.
|
417
|
+
- Fix lack of sequence-point notification of controlling expressions.
|
319
418
|
- Fix W0582, W0583 and W0584 detections in order to consider type
|
320
419
|
convertibility correctly.
|
321
420
|
- Add unit specifications of C type models.
|
@@ -329,8 +428,8 @@ Wed May 30 22:23:41 2012 Yutaka Yanoh <yanoh@users.sourceforge.net>
|
|
329
428
|
|
330
429
|
Wed May 30 20:17:38 2012 Yutaka Yanoh <yanoh@users.sourceforge.net>
|
331
430
|
|
332
|
-
* lib/adlint/c/conv.rb : Fix Type#same_as? method invocation to
|
333
|
-
|
431
|
+
* lib/adlint/c/conv.rb : Fix Type#same_as? method invocation to conform
|
432
|
+
with lhs and rhs order of other invocations.
|
334
433
|
* lib/adlint/c/expr.rb : Ditto.
|
335
434
|
* lib/adlint/c/object.rb : Ditto.
|
336
435
|
* lib/adlint/c/message.rb : Ditto.
|
@@ -343,8 +442,8 @@ Wed May 30 20:17:38 2012 Yutaka Yanoh <yanoh@users.sourceforge.net>
|
|
343
442
|
|
344
443
|
Wed May 30 19:18:11 2012 Yutaka Yanoh <yanoh@users.sourceforge.net>
|
345
444
|
|
346
|
-
* lib/adlint/c/type.rb : Add Type#convertible?(to_type) method to
|
347
|
-
|
445
|
+
* lib/adlint/c/type.rb : Add Type#convertible?(to_type) method to check
|
446
|
+
whether a type is implicitly convertible to another type.
|
348
447
|
|
349
448
|
* spec/adlint/c/type_spec.rb : Add more unit specifications of C type
|
350
449
|
models.
|
@@ -382,8 +481,8 @@ Tue May 29 13:11:02 2012 Yutaka Yanoh <yanoh@users.sourceforge.net>
|
|
382
481
|
|
383
482
|
Tue May 29 11:55:44 2012 Yutaka Yanoh <yanoh@users.sourceforge.net>
|
384
483
|
|
385
|
-
* lib/adlint/c/ctrlexpr.rb : Fix lack of sequence-point notification
|
386
|
-
|
484
|
+
* lib/adlint/c/ctrlexpr.rb : Fix lack of sequence-point notification of
|
485
|
+
controlling expressions.
|
387
486
|
|
388
487
|
Mon May 28 17:42:19 2012 Yutaka Yanoh <yanoh@users.sourceforge.net>
|
389
488
|
|
@@ -587,8 +686,8 @@ Thu May 17 18:32:49 2012 Yutaka Yanoh <yanoh@users.sourceforge.net>
|
|
587
686
|
|
588
687
|
Thu May 17 16:08:47 2012 Yutaka Yanoh <yanoh@users.sourceforge.net>
|
589
688
|
|
590
|
-
* lib/adlint/c/type.rb : Add query interface tells whether the
|
591
|
-
|
689
|
+
* lib/adlint/c/type.rb : Add query interface tells whether the receiver
|
690
|
+
type is a type of function parameters or not.
|
592
691
|
|
593
692
|
* lib/adlint/c/message.rb : Fix W0101, W0102, W0103 and W0107
|
594
693
|
detections not to warn when an address of the parameter array
|
@@ -612,8 +711,8 @@ Wed May 16 11:57:18 2012 Yutaka Yanoh <yanoh@users.sourceforge.net>
|
|
612
711
|
Wed May 16 11:33:03 2012 Yutaka Yanoh <yanoh@users.sourceforge.net>
|
613
712
|
|
614
713
|
* lib/adlint/c/ctrlexpr.rb : Fix bad expression evaluation
|
615
|
-
notification not to notify that an equality-expression evaluated
|
616
|
-
|
714
|
+
notification not to notify that an equality-expression evaluated when
|
715
|
+
a relational-expression is evaluated.
|
617
716
|
|
618
717
|
Wed May 16 10:53:56 2012 Yutaka Yanoh <yanoh@users.sourceforge.net>
|
619
718
|
|
@@ -724,9 +823,9 @@ Fri Apr 27 14:24:03 2012 Yutaka Yanoh <yanoh@users.sourceforge.net>
|
|
724
823
|
* release.rc : 1.7.6
|
725
824
|
- Fix W0582, W0583 and W0584 detections to warn when the number of
|
726
825
|
parameters is greater than the number of arguments.
|
727
|
-
- Fix W0581 detection to warn when the number of arguments in
|
728
|
-
|
729
|
-
|
826
|
+
- Fix W0581 detection to warn when the number of arguments in current
|
827
|
+
function call is greater than the number of arguments in previous
|
828
|
+
function calls.
|
730
829
|
- Revise specification of W0541 and W0832 detections to warn at the
|
731
830
|
inline assembly code.
|
732
831
|
|
@@ -737,9 +836,9 @@ Fri Apr 27 14:18:05 2012 Yutaka Yanoh <yanoh@users.sourceforge.net>
|
|
737
836
|
|
738
837
|
Fri Apr 27 13:40:05 2012 Yutaka Yanoh <yanoh@users.sourceforge.net>
|
739
838
|
|
740
|
-
* lib/adlint/c/message.rb : Fix W0581 detection to warn when the
|
741
|
-
|
742
|
-
|
839
|
+
* lib/adlint/c/message.rb : Fix W0581 detection to warn when the number
|
840
|
+
of arguments in current function call is greater than the number of
|
841
|
+
arguments in previous function calls.
|
743
842
|
|
744
843
|
* lib/adlint/c/message.rb : Fix W0582, W0583 and W0584 detections to
|
745
844
|
warn when the number of parameters is greater than the number of
|
@@ -752,8 +851,8 @@ Fri Apr 27 11:50:47 2012 Yutaka Yanoh <yanoh@users.sourceforge.net>
|
|
752
851
|
owned by a temporary variable.
|
753
852
|
- Fix W0461 and W0462 detections not to warn when the length omitted
|
754
853
|
array parameter is specified as an argument.
|
755
|
-
- Fix W1031 detection not to warn when the storage-class-specifier
|
756
|
-
|
854
|
+
- Fix W1031 detection not to warn when the storage-class-specifier of
|
855
|
+
the object declaration is explicitly specified and the
|
757
856
|
storage-class-specifier of following object definition is omitted.
|
758
857
|
- Fix W0581, W0582, W0583 and W0584 detections not to warn when the
|
759
858
|
corresponding types of argument and parameter are array-array or
|
@@ -796,8 +895,8 @@ Thu Apr 26 09:28:26 2012 Yutaka Yanoh <yanoh@users.sourceforge.net>
|
|
796
895
|
|
797
896
|
Thu Apr 26 06:22:54 2012 Yutaka Yanoh <yanoh@users.sourceforge.net>
|
798
897
|
|
799
|
-
* lib/adlint/c/value.rb : Remove redundant original value's snapshot
|
800
|
-
|
898
|
+
* lib/adlint/c/value.rb : Remove redundant original value's snapshot of
|
899
|
+
the value version management.
|
801
900
|
|
802
901
|
Wed Apr 25 23:17:06 2012 Yutaka Yanoh <yanoh@users.sourceforge.net>
|
803
902
|
|
data/MANIFEST
CHANGED
@@ -35,15 +35,19 @@ features/message_detection/W0007.feature
|
|
35
35
|
features/message_detection/W0010.feature
|
36
36
|
features/message_detection/W0013.feature
|
37
37
|
features/message_detection/W0093.feature
|
38
|
+
features/message_detection/W0104.feature
|
38
39
|
features/message_detection/W0109.feature
|
39
40
|
features/message_detection/W0583.feature
|
40
41
|
features/message_detection/W0606.feature
|
42
|
+
features/message_detection/W0645.feature
|
41
43
|
features/message_detection/W0687.feature
|
42
44
|
features/message_detection/W0688.feature
|
43
45
|
features/message_detection/W0689.feature
|
44
46
|
features/message_detection/W0690.feature
|
47
|
+
features/message_detection/W0697.feature
|
45
48
|
features/message_detection/W0698.feature
|
46
49
|
features/message_detection/W0699.feature
|
50
|
+
features/message_detection/W0700.feature
|
47
51
|
features/message_detection/W0703.feature
|
48
52
|
features/message_detection/W0716.feature
|
49
53
|
features/message_detection/W0717.feature
|
@@ -55,6 +59,12 @@ features/message_detection/W0734.feature
|
|
55
59
|
features/message_detection/W0735.feature
|
56
60
|
features/message_detection/W1031.feature
|
57
61
|
features/message_detection/W1052.feature
|
62
|
+
features/message_detection/W1066.feature
|
63
|
+
features/message_detection/W1067.feature
|
64
|
+
features/message_detection/W1068.feature
|
65
|
+
features/message_detection/W1069.feature
|
66
|
+
features/message_detection/W1070.feature
|
67
|
+
features/message_detection/W1072.feature
|
58
68
|
features/message_detection/W9001.feature
|
59
69
|
features/message_detection/W9003.feature
|
60
70
|
features/step_definitions/message_detection_steps.rb
|
data/NEWS
CHANGED
@@ -21,6 +21,28 @@
|
|
21
21
|
|
22
22
|
++
|
23
23
|
|
24
|
+
=== \AdLint 1.14.0 is released (2012-07-04)
|
25
|
+
|
26
|
+
==== Changes since the 1.12.0 release
|
27
|
+
|
28
|
+
* Add W0645 detection
|
29
|
+
* Add W0697 detection
|
30
|
+
* Add W0700 detection
|
31
|
+
* Add W1066 detection
|
32
|
+
* Add W1067 detection
|
33
|
+
* Add W1068 detection
|
34
|
+
* Add W1069 detection
|
35
|
+
* Add W1070 detection
|
36
|
+
* Add W1072 detection
|
37
|
+
* Fix W0104 detection not to warn when the unchanged parameter is typed with
|
38
|
+
`const volatile' qualifiers
|
39
|
+
* Add W0104, W0645, W0697, W0700, W1066, W1067, W1068, W1069, W1070 and W1072
|
40
|
+
functional specifications
|
41
|
+
|
42
|
+
See the file
|
43
|
+
{ChangeLog}[http://adlint.sourceforge.net/pmwiki/upload.d/Main/ChangeLog]
|
44
|
+
for more details.
|
45
|
+
|
24
46
|
=== \AdLint 1.12.0 is released (2012-06-20)
|
25
47
|
|
26
48
|
==== Changes since the 1.10.0 release
|
@@ -40,10 +62,6 @@
|
|
40
62
|
* Add W1066, W1067, W1068, W1069, W1070, W1071, W1072, W1073, W1074, W1075,
|
41
63
|
W1076, W1077 and W9003 message definitions
|
42
64
|
|
43
|
-
See the file
|
44
|
-
{ChangeLog}[http://adlint.sourceforge.net/pmwiki/upload.d/Main/ChangeLog]
|
45
|
-
for more details.
|
46
|
-
|
47
65
|
=== \AdLint 1.10.0 is released (2012-06-06)
|
48
66
|
|
49
67
|
==== Changes since the 1.8.10 release
|
@@ -3,7 +3,7 @@ Feature: W0093
|
|
3
3
|
W0093 detects that a division-by-zero may occur.
|
4
4
|
|
5
5
|
Scenario: narrowing denominator variable by an iteration controlling
|
6
|
-
variable which has same value domain of the denominator
|
6
|
+
variable which has same value domain of the denominator
|
7
7
|
Given a target source named "W0093.c" with:
|
8
8
|
"""
|
9
9
|
static void foo(void)
|
@@ -31,7 +31,7 @@ Feature: W0093
|
|
31
31
|
| W0628 | 1 | 13 |
|
32
32
|
|
33
33
|
Scenario: narrowing denominator variable by an iteration controlling
|
34
|
-
variable which has narrower value domain than the denominator
|
34
|
+
variable which has narrower value domain than the denominator
|
35
35
|
Given a target source named "W0093.c" with:
|
36
36
|
"""
|
37
37
|
static void foo(void)
|
@@ -58,7 +58,7 @@ Feature: W0093
|
|
58
58
|
| W0628 | 1 | 13 |
|
59
59
|
|
60
60
|
Scenario: narrowing denominator variable by an iteration controlling
|
61
|
-
variable which has narrower value domain contains zero
|
61
|
+
variable which has narrower value domain contains zero
|
62
62
|
Given a target source named "W0093.c" with:
|
63
63
|
"""
|
64
64
|
static void foo(void)
|
@@ -0,0 +1,111 @@
|
|
1
|
+
Feature: W0104
|
2
|
+
|
3
|
+
W0104 detects that a non-const parameter is never changed in the function.
|
4
|
+
|
5
|
+
Scenario: unchanged non-const parameter
|
6
|
+
Given a target source named "W0104.c" with:
|
7
|
+
"""
|
8
|
+
static int func(int i) /* W0104 */
|
9
|
+
{
|
10
|
+
return i + 1;
|
11
|
+
}
|
12
|
+
"""
|
13
|
+
When I successfully run `adlint W0104.c` on noarch
|
14
|
+
Then the output should exactly match with:
|
15
|
+
| mesg | line | column |
|
16
|
+
| W0723 | 3 | 14 |
|
17
|
+
| W0104 | 1 | 21 |
|
18
|
+
| W0629 | 1 | 12 |
|
19
|
+
| W0628 | 1 | 12 |
|
20
|
+
|
21
|
+
Scenario: unchanged prefixed const parameter
|
22
|
+
Given a target source named "W0104.c" with:
|
23
|
+
"""
|
24
|
+
static int func(const int i) /* OK */
|
25
|
+
{
|
26
|
+
return i + 1;
|
27
|
+
}
|
28
|
+
"""
|
29
|
+
When I successfully run `adlint W0104.c` on noarch
|
30
|
+
Then the output should exactly match with:
|
31
|
+
| mesg | line | column |
|
32
|
+
| W0723 | 3 | 14 |
|
33
|
+
| W0629 | 1 | 12 |
|
34
|
+
| W0628 | 1 | 12 |
|
35
|
+
|
36
|
+
Scenario: unchanged postfixed const parameter
|
37
|
+
Given a target source named "W0104.c" with:
|
38
|
+
"""
|
39
|
+
static int func(int const i) /* OK */
|
40
|
+
{
|
41
|
+
return i + 1;
|
42
|
+
}
|
43
|
+
"""
|
44
|
+
When I successfully run `adlint W0104.c` on noarch
|
45
|
+
Then the output should exactly match with:
|
46
|
+
| mesg | line | column |
|
47
|
+
| W0723 | 3 | 14 |
|
48
|
+
| W0629 | 1 | 12 |
|
49
|
+
| W0628 | 1 | 12 |
|
50
|
+
|
51
|
+
Scenario: unchanged prefixed const volatile parameter
|
52
|
+
Given a target source named "W0104.c" with:
|
53
|
+
"""
|
54
|
+
static int func(const volatile int i) /* OK */
|
55
|
+
{
|
56
|
+
return i + 1;
|
57
|
+
}
|
58
|
+
"""
|
59
|
+
When I successfully run `adlint W0104.c` on noarch
|
60
|
+
Then the output should exactly match with:
|
61
|
+
| mesg | line | column |
|
62
|
+
| W0723 | 3 | 14 |
|
63
|
+
| W0629 | 1 | 12 |
|
64
|
+
| W0628 | 1 | 12 |
|
65
|
+
|
66
|
+
Scenario: unchanged prefixed volatile const parameter
|
67
|
+
Given a target source named "W0104.c" with:
|
68
|
+
"""
|
69
|
+
static int func(volatile const int i) /* OK */
|
70
|
+
{
|
71
|
+
return i + 1;
|
72
|
+
}
|
73
|
+
"""
|
74
|
+
When I successfully run `adlint W0104.c` on noarch
|
75
|
+
Then the output should exactly match with:
|
76
|
+
| mesg | line | column |
|
77
|
+
| W0723 | 3 | 14 |
|
78
|
+
| W0629 | 1 | 12 |
|
79
|
+
| W0628 | 1 | 12 |
|
80
|
+
|
81
|
+
Scenario: unchanged mixfixed const volatile parameter
|
82
|
+
Given a target source named "W0104.c" with:
|
83
|
+
"""
|
84
|
+
static int func(const int volatile i) /* OK */
|
85
|
+
{
|
86
|
+
return i + 1;
|
87
|
+
}
|
88
|
+
"""
|
89
|
+
When I successfully run `adlint W0104.c` on noarch
|
90
|
+
Then the output should exactly match with:
|
91
|
+
| mesg | line | column |
|
92
|
+
| W0723 | 3 | 14 |
|
93
|
+
| W0629 | 1 | 12 |
|
94
|
+
| W0628 | 1 | 12 |
|
95
|
+
|
96
|
+
Scenario: unchanged mixfixed volatile const parameter
|
97
|
+
Given a target source named "W0104.c" with:
|
98
|
+
"""
|
99
|
+
static int func(volatile int const i) /* OK */
|
100
|
+
{
|
101
|
+
return i + 1;
|
102
|
+
}
|
103
|
+
"""
|
104
|
+
When I successfully run `adlint W0104.c` on noarch
|
105
|
+
Then the output should exactly match with:
|
106
|
+
| mesg | line | column |
|
107
|
+
| W0723 | 3 | 14 |
|
108
|
+
| W0629 | 1 | 12 |
|
109
|
+
| W0628 | 1 | 12 |
|
110
|
+
|
111
|
+
# vim:ts=2:sw=2:sts=2:et:
|
@@ -0,0 +1,142 @@
|
|
1
|
+
Feature: W0645
|
2
|
+
|
3
|
+
W0645 detects that a function parameter is typed as `void'.
|
4
|
+
|
5
|
+
Scenario: a `void' parameter of a `void' function
|
6
|
+
Given a target source named "W0645.c" with:
|
7
|
+
"""
|
8
|
+
extern void func(a) /* W0645 */
|
9
|
+
void a;
|
10
|
+
{
|
11
|
+
}
|
12
|
+
"""
|
13
|
+
When I successfully run `adlint W0645.c` on noarch
|
14
|
+
Then the output should exactly match with:
|
15
|
+
| mesg | line | column |
|
16
|
+
| W0117 | 1 | 13 |
|
17
|
+
| W0031 | 2 | 6 |
|
18
|
+
| W0104 | 2 | 6 |
|
19
|
+
| W0002 | 1 | 13 |
|
20
|
+
| W0645 | 1 | 13 |
|
21
|
+
| W0628 | 1 | 13 |
|
22
|
+
|
23
|
+
Scenario: a `void' parameter of a `int' function
|
24
|
+
Given a target source named "W0645.c" with:
|
25
|
+
"""
|
26
|
+
extern int func(a) /* W0645 */
|
27
|
+
void a;
|
28
|
+
{
|
29
|
+
return 0;
|
30
|
+
}
|
31
|
+
"""
|
32
|
+
When I successfully run `adlint W0645.c` on noarch
|
33
|
+
Then the output should exactly match with:
|
34
|
+
| mesg | line | column |
|
35
|
+
| W0117 | 1 | 12 |
|
36
|
+
| W0031 | 2 | 6 |
|
37
|
+
| W0104 | 2 | 6 |
|
38
|
+
| W0002 | 1 | 12 |
|
39
|
+
| W0645 | 1 | 12 |
|
40
|
+
| W0628 | 1 | 12 |
|
41
|
+
|
42
|
+
Scenario: multiple parameters including `void' typed one
|
43
|
+
Given a target source named "W0645.c" with:
|
44
|
+
"""
|
45
|
+
extern void func(a, b) /* W0645 */
|
46
|
+
int a;
|
47
|
+
void b;
|
48
|
+
{
|
49
|
+
}
|
50
|
+
"""
|
51
|
+
When I successfully run `adlint W0645.c` on noarch
|
52
|
+
Then the output should exactly match with:
|
53
|
+
| mesg | line | column |
|
54
|
+
| W0117 | 1 | 13 |
|
55
|
+
| W0031 | 2 | 5 |
|
56
|
+
| W0031 | 3 | 6 |
|
57
|
+
| W0104 | 2 | 5 |
|
58
|
+
| W0104 | 3 | 6 |
|
59
|
+
| W0002 | 1 | 13 |
|
60
|
+
| W0645 | 1 | 13 |
|
61
|
+
| W0628 | 1 | 13 |
|
62
|
+
|
63
|
+
Scenario: a `void *' parameter
|
64
|
+
Given a target source named "W0645.c" with:
|
65
|
+
"""
|
66
|
+
extern void func(p) /* OK */
|
67
|
+
void* p;
|
68
|
+
{
|
69
|
+
}
|
70
|
+
"""
|
71
|
+
When I successfully run `adlint W0645.c` on noarch
|
72
|
+
Then the output should exactly match with:
|
73
|
+
| mesg | line | column |
|
74
|
+
| W0117 | 1 | 13 |
|
75
|
+
| W0031 | 2 | 7 |
|
76
|
+
| W0104 | 2 | 7 |
|
77
|
+
| W0105 | 2 | 7 |
|
78
|
+
| W0002 | 1 | 13 |
|
79
|
+
| W0628 | 1 | 13 |
|
80
|
+
|
81
|
+
Scenario: an `int' parameter
|
82
|
+
Given a target source named "W0645.c" with:
|
83
|
+
"""
|
84
|
+
extern void func(a) /* OK */
|
85
|
+
int a;
|
86
|
+
{
|
87
|
+
}
|
88
|
+
"""
|
89
|
+
When I successfully run `adlint W0645.c` on noarch
|
90
|
+
Then the output should exactly match with:
|
91
|
+
| mesg | line | column |
|
92
|
+
| W0117 | 1 | 13 |
|
93
|
+
| W0031 | 2 | 5 |
|
94
|
+
| W0104 | 2 | 5 |
|
95
|
+
| W0002 | 1 | 13 |
|
96
|
+
| W0628 | 1 | 13 |
|
97
|
+
|
98
|
+
Scenario: a `void' as a parameter-type-list
|
99
|
+
Given a target source named "W0645.c" with:
|
100
|
+
"""
|
101
|
+
extern void func(void); /* OK */
|
102
|
+
"""
|
103
|
+
When I successfully run `adlint W0645.c` on noarch
|
104
|
+
Then the output should exactly match with:
|
105
|
+
| mesg | line | column |
|
106
|
+
| W0118 | 1 | 13 |
|
107
|
+
|
108
|
+
Scenario: a qualified `void' parameter
|
109
|
+
Given a target source named "W0645.c" with:
|
110
|
+
"""
|
111
|
+
extern void func(a) /* W0645 */
|
112
|
+
const void a;
|
113
|
+
{
|
114
|
+
}
|
115
|
+
"""
|
116
|
+
When I successfully run `adlint W0645.c` on noarch
|
117
|
+
Then the output should exactly match with:
|
118
|
+
| mesg | line | column |
|
119
|
+
| W0117 | 1 | 13 |
|
120
|
+
| W0031 | 2 | 12 |
|
121
|
+
| W0002 | 1 | 13 |
|
122
|
+
| W0645 | 1 | 13 |
|
123
|
+
| W0628 | 1 | 13 |
|
124
|
+
|
125
|
+
Scenario: a more qualified `void' parameter
|
126
|
+
Given a target source named "W0645.c" with:
|
127
|
+
"""
|
128
|
+
extern void func(a) /* W0645 */
|
129
|
+
const volatile void a;
|
130
|
+
{
|
131
|
+
}
|
132
|
+
"""
|
133
|
+
When I successfully run `adlint W0645.c` on noarch
|
134
|
+
Then the output should exactly match with:
|
135
|
+
| mesg | line | column |
|
136
|
+
| W0117 | 1 | 13 |
|
137
|
+
| W0031 | 2 | 21 |
|
138
|
+
| W0002 | 1 | 13 |
|
139
|
+
| W0645 | 1 | 13 |
|
140
|
+
| W0628 | 1 | 13 |
|
141
|
+
|
142
|
+
# vim:ts=2:sw=2:sts=2:et:
|