adlint 3.0.10 → 3.2.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 +67 -0
- data/MANIFEST +2 -0
- data/NEWS +10 -3
- data/etc/mesg.d/c_builtin/en_US/messages.yml +29 -1
- data/etc/mesg.d/c_builtin/ja_JP/messages.yml +29 -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/W0003.feature +5 -0
- data/features/code_check/W0023.feature +32 -0
- data/features/code_check/W0024.feature +22 -0
- data/features/code_check/W0093.feature +71 -0
- data/features/code_check/W0097.feature +4 -0
- data/features/code_check/W0100.feature +10 -0
- data/features/code_check/W0119.feature +8 -0
- data/features/code_check/W0133.feature +8 -0
- data/features/code_check/W0134.feature +8 -0
- data/features/code_check/W0136.feature +8 -0
- data/features/code_check/W0138.feature +8 -0
- data/features/code_check/W0140.feature +8 -0
- data/features/code_check/W0142.feature +8 -0
- data/features/code_check/W0143.feature +8 -0
- data/features/code_check/W0144.feature +8 -0
- data/features/code_check/W0145.feature +8 -0
- data/features/code_check/W0146.feature +8 -0
- data/features/code_check/W0147.feature +8 -0
- data/features/code_check/W0148.feature +8 -0
- data/features/code_check/W0149.feature +8 -0
- data/features/code_check/W0150.feature +8 -0
- data/features/code_check/W0151.feature +8 -0
- data/features/code_check/W0152.feature +8 -0
- data/features/code_check/W0153.feature +8 -0
- data/features/code_check/W0154.feature +8 -0
- data/features/code_check/W0155.feature +8 -0
- data/features/code_check/W0156.feature +8 -0
- data/features/code_check/W0157.feature +8 -0
- data/features/code_check/W0158.feature +8 -0
- data/features/code_check/W0159.feature +8 -0
- data/features/code_check/W0160.feature +8 -0
- data/features/code_check/W0161.feature +8 -0
- data/features/code_check/W0162.feature +8 -0
- data/features/code_check/W0163.feature +8 -0
- data/features/code_check/W0164.feature +8 -0
- data/features/code_check/W0165.feature +8 -0
- data/features/code_check/W0166.feature +8 -0
- data/features/code_check/W0167.feature +8 -0
- data/features/code_check/W0168.feature +8 -0
- data/features/code_check/W0169.feature +8 -0
- data/features/code_check/W0170.feature +8 -0
- data/features/code_check/W0171.feature +8 -0
- data/features/code_check/W0172.feature +8 -0
- data/features/code_check/W0173.feature +8 -0
- data/features/code_check/W0174.feature +8 -0
- data/features/code_check/W0175.feature +8 -0
- data/features/code_check/W0176.feature +8 -0
- data/features/code_check/W0177.feature +8 -0
- data/features/code_check/W0178.feature +8 -0
- data/features/code_check/W0179.feature +8 -0
- data/features/code_check/W0180.feature +8 -0
- data/features/code_check/W0181.feature +8 -0
- data/features/code_check/W0250.feature +8 -0
- data/features/code_check/W0422.feature +194 -0
- data/features/code_check/W0459.feature +16 -0
- data/features/code_check/W0460.feature +342 -0
- data/features/code_check/W0461.feature +5 -0
- data/features/code_check/W0497.feature +12 -0
- data/features/code_check/W0499.feature +6 -0
- data/features/code_check/W0502.feature +6 -0
- data/features/code_check/W0570.feature +47 -0
- data/features/code_check/W0573.feature +8 -0
- data/features/code_check/W0582.feature +4 -0
- data/features/code_check/W0583.feature +4 -0
- data/features/code_check/W0584.feature +10 -0
- data/features/code_check/W0599.feature +10 -0
- data/features/code_check/W0644.feature +2 -0
- data/features/code_check/W0649.feature +14 -0
- data/features/code_check/W0650.feature +12 -0
- data/features/code_check/W0685.feature +10 -0
- data/features/code_check/W0686.feature +8 -0
- data/features/code_check/W0711.feature +2 -0
- data/features/code_check/W0712.feature +2 -0
- data/features/code_check/W0713.feature +2 -0
- data/features/code_check/W0714.feature +2 -0
- data/features/code_check/W0715.feature +2 -0
- data/features/code_check/W0718.feature +2 -0
- data/features/code_check/W0719.feature +8 -0
- data/features/code_check/W0732.feature +18 -0
- data/features/code_check/W0733.feature +18 -0
- data/features/code_check/W0734.feature +24 -0
- data/features/code_check/W0735.feature +24 -0
- data/features/code_check/W0747.feature +8 -0
- data/features/code_check/W0749.feature +8 -0
- data/features/code_check/W0750.feature +8 -0
- data/features/code_check/W0753.feature +8 -0
- data/features/code_check/W0754.feature +8 -0
- data/features/code_check/W0759.feature +8 -0
- data/features/code_check/W0760.feature +8 -0
- data/features/code_check/W0761.feature +8 -0
- data/features/code_check/W0762.feature +8 -0
- data/features/code_check/W0794.feature +6 -0
- data/features/code_check/W1050.feature +8 -0
- data/features/code_check/W1066.feature +8 -0
- data/features/code_check/W1067.feature +8 -0
- data/features/code_check/W1068.feature +8 -0
- data/features/code_check/W1071.feature +4 -0
- data/features/code_check/W9003.feature +2 -0
- data/lib/adlint/cc1.rb +1 -0
- data/lib/adlint/cc1/branch.rb +34 -13
- data/lib/adlint/cc1/conv.rb +3 -3
- data/lib/adlint/cc1/ctrlexpr.rb +12 -7
- data/lib/adlint/cc1/environ.rb +12 -2
- data/lib/adlint/cc1/expr.rb +10 -8
- data/lib/adlint/cc1/interp.rb +56 -49
- data/lib/adlint/cc1/mediator.rb +9 -5
- data/lib/adlint/cc1/object.rb +37 -34
- data/lib/adlint/cc1/trace.rb +287 -0
- data/lib/adlint/cc1/type.rb +15 -15
- data/lib/adlint/cc1/value.rb +823 -427
- data/lib/adlint/cpp/eval.rb +5 -2
- data/lib/adlint/cpp/source.rb +21 -22
- data/lib/adlint/exam/c_builtin/cc1_check.rb +1636 -1067
- data/lib/adlint/exam/c_builtin/cc1_check_shima.rb +28 -22
- data/lib/adlint/exam/c_builtin/cc1_code.rb +4 -4
- data/lib/adlint/exam/c_builtin/cc1_metric.rb +14 -14
- data/lib/adlint/location.rb +5 -7
- data/lib/adlint/metric.rb +2 -2
- data/lib/adlint/prelude.rb +6 -2
- data/lib/adlint/report.rb +2 -2
- data/lib/adlint/version.rb +3 -3
- data/share/doc/developers_guide_ja.html +10 -4
- data/share/doc/developers_guide_ja.texi +8 -2
- data/share/doc/users_guide_en.html +679 -72
- data/share/doc/users_guide_en.texi +557 -12
- data/share/doc/users_guide_ja.html +678 -74
- data/share/doc/users_guide_ja.texi +554 -13
- data/spec/adlint/cc1/ctrlexpr_spec.rb +20 -11
- data/spec/adlint/cc1/domain_spec.rb +9 -0
- metadata +4 -2
data/ChangeLog
CHANGED
|
@@ -1,3 +1,70 @@
|
|
|
1
|
+
Wed Aug 28 10:51:30 2013 Yutaka Yanoh <yanoh@users.sourceforge.net>
|
|
2
|
+
|
|
3
|
+
* release.ga : 3.2.0
|
|
4
|
+
- Support experimental context-tracing feature so that the warning
|
|
5
|
+
message can be complemented with the context messages.
|
|
6
|
+
|
|
7
|
+
Tue Aug 27 19:35:30 2013 Yutaka Yanoh <yanoh@users.sourceforge.net>
|
|
8
|
+
|
|
9
|
+
* share/doc/users_guide_ja.texi : Add descriptions about newly added
|
|
10
|
+
context-messages supporting context-tracing.
|
|
11
|
+
* share/doc/users_guide_en.texi : Ditto.
|
|
12
|
+
|
|
13
|
+
Mon Aug 26 11:44:55 2013 Yutaka Yanoh <yanoh@users.sourceforge.net>
|
|
14
|
+
|
|
15
|
+
* release.rc : 3.1.0
|
|
16
|
+
- Support experimental context-tracing feature so that the warning
|
|
17
|
+
message can be complemented with the context messages.
|
|
18
|
+
|
|
19
|
+
Fri Aug 23 15:55:53 2013 Yutaka Yanoh <yanoh@users.sourceforge.net>
|
|
20
|
+
|
|
21
|
+
* lib/adlint/cc1/value.rb : Fix value version management degraded
|
|
22
|
+
during supporting context-tracing.
|
|
23
|
+
|
|
24
|
+
* features/code_check/W0460.feature : Add scenario to reproduce
|
|
25
|
+
false-positive of W0460 code check.
|
|
26
|
+
|
|
27
|
+
Thu Aug 22 14:17:54 2013 Yutaka Yanoh <yanoh@users.sourceforge.net>
|
|
28
|
+
|
|
29
|
+
* lib/adlint/cc1/interp.rb : Fix bad context-tracing during or after
|
|
30
|
+
evaluation of an iteration statement.
|
|
31
|
+
* lib/adlint/cc1/object.rb : Ditto.
|
|
32
|
+
* lib/adlint/cc1/value.rb : Ditto.
|
|
33
|
+
|
|
34
|
+
* lib/adlint/cc1/trace.rb : Revise context-tracing interface in order
|
|
35
|
+
not to output context messages about futural controlling-expressions.
|
|
36
|
+
* lib/adlint/exam/c_builtin/cc1_check.rb : Ditto.
|
|
37
|
+
|
|
38
|
+
Wed Aug 7 15:01:04 2013 Yutaka Yanoh <yanoh@users.sourceforge.net>
|
|
39
|
+
|
|
40
|
+
* lib/adlint/exam/c_builtin/cc1_check.rb : Fix bad W0570 code check
|
|
41
|
+
degraded during supporting context-tracing.
|
|
42
|
+
|
|
43
|
+
* features/code_check/W0570.feature : Add scenario to reproduce a known
|
|
44
|
+
bug.
|
|
45
|
+
|
|
46
|
+
Wed Aug 7 13:40:55 2013 Yutaka Yanoh <yanoh@users.sourceforge.net>
|
|
47
|
+
|
|
48
|
+
* lib/adlint/cc1/trace.rb : Fix bad context message emission of
|
|
49
|
+
undefinable variables.
|
|
50
|
+
|
|
51
|
+
* features/code_check/W0460.feature : Add scenario to reproduce bad
|
|
52
|
+
context message problem.
|
|
53
|
+
|
|
54
|
+
Wed Aug 7 10:28:42 2013 Yutaka Yanoh <yanoh@users.sourceforge.net>
|
|
55
|
+
|
|
56
|
+
* lib/adlint/**/* : Support context-tracing to improve readability of
|
|
57
|
+
warning messages.
|
|
58
|
+
* lib/adlint/cc1/trace.rb : Add new context tracing module.
|
|
59
|
+
|
|
60
|
+
* features/code_check/* : Add scenarios for testing context-tracing.
|
|
61
|
+
|
|
62
|
+
Wed Jul 10 15:14:43 2013 Yutaka Yanoh <yanoh@users.sourceforge.net>
|
|
63
|
+
|
|
64
|
+
* lib/adlint/cc1/value.rb : Refactor relationships between VersionGroup
|
|
65
|
+
object and its Version object in order to exactly represent a design
|
|
66
|
+
of the value version management.
|
|
67
|
+
|
|
1
68
|
Fri Jun 28 10:23:30 2013 Yutaka Yanoh <yanoh@users.sourceforge.net>
|
|
2
69
|
|
|
3
70
|
* release.ga : 3.0.10
|
data/MANIFEST
CHANGED
|
@@ -222,6 +222,7 @@ features/code_check/W0501.feature
|
|
|
222
222
|
features/code_check/W0502.feature
|
|
223
223
|
features/code_check/W0534.feature
|
|
224
224
|
features/code_check/W0542.feature
|
|
225
|
+
features/code_check/W0570.feature
|
|
225
226
|
features/code_check/W0573.feature
|
|
226
227
|
features/code_check/W0580.feature
|
|
227
228
|
features/code_check/W0582.feature
|
|
@@ -386,6 +387,7 @@ lib/adlint/cc1/scanner.rb
|
|
|
386
387
|
lib/adlint/cc1/scope.rb
|
|
387
388
|
lib/adlint/cc1/seqp.rb
|
|
388
389
|
lib/adlint/cc1/syntax.rb
|
|
390
|
+
lib/adlint/cc1/trace.rb
|
|
389
391
|
lib/adlint/cc1/type.rb
|
|
390
392
|
lib/adlint/cc1/util.rb
|
|
391
393
|
lib/adlint/cc1/value.rb
|
data/NEWS
CHANGED
|
@@ -21,6 +21,16 @@
|
|
|
21
21
|
|
|
22
22
|
++
|
|
23
23
|
|
|
24
|
+
=== \AdLint 3.2.0 is released (2013-08-28)
|
|
25
|
+
|
|
26
|
+
==== Changes since the 3.0.10 release
|
|
27
|
+
|
|
28
|
+
* Support experimental context-tracing feature so that the warning message can
|
|
29
|
+
be complemented with the context messages
|
|
30
|
+
|
|
31
|
+
See the file {ChangeLog}[https://github.com/yanoh/adlint/blob/master/ChangeLog]
|
|
32
|
+
for more details.
|
|
33
|
+
|
|
24
34
|
=== \AdLint 3.0.10 is released (2013-06-28)
|
|
25
35
|
|
|
26
36
|
==== Changes since the 3.0.8 release
|
|
@@ -43,9 +53,6 @@
|
|
|
43
53
|
* Fix bypassing inner-variable's value mutation in order to correctly propagate
|
|
44
54
|
mutation to the outer-variable
|
|
45
55
|
|
|
46
|
-
See the file {ChangeLog}[https://github.com/yanoh/adlint/blob/master/ChangeLog]
|
|
47
|
-
for more details.
|
|
48
|
-
|
|
49
56
|
=== \AdLint 3.0.8 is released (2013-05-31)
|
|
50
57
|
|
|
51
58
|
==== Changes since the 3.0.4 release
|
|
@@ -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.2.0"
|
|
53
53
|
|
|
54
54
|
message_definition:
|
|
55
55
|
W0001:
|
|
@@ -2996,3 +2996,31 @@ message_definition:
|
|
|
2996
2996
|
classes:
|
|
2997
2997
|
- "INF:X99"
|
|
2998
2998
|
format: "A warning is detected as a pair of this identifier `%s'."
|
|
2999
|
+
C1000:
|
|
3000
|
+
classes:
|
|
3001
|
+
- "INF:X99"
|
|
3002
|
+
format: "Warning above is detected in the following context."
|
|
3003
|
+
C1001:
|
|
3004
|
+
classes:
|
|
3005
|
+
- "INF:X99"
|
|
3006
|
+
format: "This controlling-expression is evaluated to be true."
|
|
3007
|
+
C1002:
|
|
3008
|
+
classes:
|
|
3009
|
+
- "INF:X99"
|
|
3010
|
+
format: "This controlling-expression is evaluated to be false."
|
|
3011
|
+
C1003:
|
|
3012
|
+
classes:
|
|
3013
|
+
- "INF:X99"
|
|
3014
|
+
format: "The problematic variable is defined here without initializer."
|
|
3015
|
+
C1004:
|
|
3016
|
+
classes:
|
|
3017
|
+
- "INF:X99"
|
|
3018
|
+
format: "NULL value is assigned to the the problematic variable."
|
|
3019
|
+
C1005:
|
|
3020
|
+
classes:
|
|
3021
|
+
- "INF:X99"
|
|
3022
|
+
format: "A value possibly be NULL is assigned to the problematic variable."
|
|
3023
|
+
C1006:
|
|
3024
|
+
classes:
|
|
3025
|
+
- "INF:X99"
|
|
3026
|
+
format: "New value is assigned to the problematic variable."
|
|
@@ -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.2.0"
|
|
53
53
|
|
|
54
54
|
message_definition:
|
|
55
55
|
W0001:
|
|
@@ -2996,3 +2996,31 @@ message_definition:
|
|
|
2996
2996
|
classes:
|
|
2997
2997
|
- "INF:X99"
|
|
2998
2998
|
format: "この識別名 `%s' で警告を検知しました。"
|
|
2999
|
+
C1000:
|
|
3000
|
+
classes:
|
|
3001
|
+
- "INF:X99"
|
|
3002
|
+
format: "次の実行パスで警告を検知しました。"
|
|
3003
|
+
C1001:
|
|
3004
|
+
classes:
|
|
3005
|
+
- "INF:X99"
|
|
3006
|
+
format: "この制御式を真として評価しました。"
|
|
3007
|
+
C1002:
|
|
3008
|
+
classes:
|
|
3009
|
+
- "INF:X99"
|
|
3010
|
+
format: "この制御式を偽として評価しました。"
|
|
3011
|
+
C1003:
|
|
3012
|
+
classes:
|
|
3013
|
+
- "INF:X99"
|
|
3014
|
+
format: "ここで該当変数が初期値を指定せずに定義されています。"
|
|
3015
|
+
C1004:
|
|
3016
|
+
classes:
|
|
3017
|
+
- "INF:X99"
|
|
3018
|
+
format: "ここで該当変数に NULL の値を割り当てました。"
|
|
3019
|
+
C1005:
|
|
3020
|
+
classes:
|
|
3021
|
+
- "INF:X99"
|
|
3022
|
+
format: "ここで該当変数に NULL の可能性がある値を割り当てました。"
|
|
3023
|
+
C1006:
|
|
3024
|
+
classes:
|
|
3025
|
+
- "INF:X99"
|
|
3026
|
+
format: "ここで該当変数に値を割り当てました。"
|
|
@@ -18,6 +18,8 @@ Feature: W0023
|
|
|
18
18
|
| W9003 | 3 | 24 |
|
|
19
19
|
| W0023 | 3 | 22 |
|
|
20
20
|
| W0424 | 3 | 20 |
|
|
21
|
+
| C1000 | | |
|
|
22
|
+
| C1005 | 1 | 29 |
|
|
21
23
|
| W9003 | 3 | 22 |
|
|
22
24
|
| W0628 | 1 | 6 |
|
|
23
25
|
|
|
@@ -37,6 +39,8 @@ Feature: W0023
|
|
|
37
39
|
| W9003 | 3 | 24 |
|
|
38
40
|
| W0023 | 3 | 22 |
|
|
39
41
|
| W0424 | 3 | 20 |
|
|
42
|
+
| C1000 | | |
|
|
43
|
+
| C1005 | 1 | 29 |
|
|
40
44
|
| W9003 | 3 | 22 |
|
|
41
45
|
| W0628 | 1 | 6 |
|
|
42
46
|
|
|
@@ -55,7 +59,11 @@ Feature: W0023
|
|
|
55
59
|
| W0117 | 1 | 6 |
|
|
56
60
|
| W0023 | 3 | 22 |
|
|
57
61
|
| W0424 | 3 | 20 |
|
|
62
|
+
| C1000 | | |
|
|
63
|
+
| C1005 | 1 | 29 |
|
|
58
64
|
| W0424 | 3 | 24 |
|
|
65
|
+
| C1000 | | |
|
|
66
|
+
| C1005 | 1 | 50 |
|
|
59
67
|
| W1052 | 3 | 22 |
|
|
60
68
|
| W9003 | 3 | 22 |
|
|
61
69
|
| W0628 | 1 | 6 |
|
|
@@ -75,8 +83,14 @@ Feature: W0023
|
|
|
75
83
|
| W0117 | 1 | 6 |
|
|
76
84
|
| W0023 | 3 | 22 |
|
|
77
85
|
| W0093 | 3 | 22 |
|
|
86
|
+
| C1000 | | |
|
|
87
|
+
| C1006 | 1 | 50 |
|
|
78
88
|
| W0424 | 3 | 20 |
|
|
89
|
+
| C1000 | | |
|
|
90
|
+
| C1005 | 1 | 29 |
|
|
79
91
|
| W0424 | 3 | 24 |
|
|
92
|
+
| C1000 | | |
|
|
93
|
+
| C1005 | 1 | 50 |
|
|
80
94
|
| W9003 | 3 | 22 |
|
|
81
95
|
| W0628 | 1 | 6 |
|
|
82
96
|
|
|
@@ -96,11 +110,17 @@ Feature: W0023
|
|
|
96
110
|
| W0117 | 1 | 6 |
|
|
97
111
|
| W0023 | 3 | 23 |
|
|
98
112
|
| W0424 | 3 | 21 |
|
|
113
|
+
| C1000 | | |
|
|
114
|
+
| C1005 | 1 | 29 |
|
|
99
115
|
| W0424 | 3 | 25 |
|
|
116
|
+
| C1000 | | |
|
|
117
|
+
| C1005 | 1 | 50 |
|
|
100
118
|
| W1052 | 3 | 23 |
|
|
101
119
|
| W0023 | 3 | 28 |
|
|
102
120
|
| W0424 | 3 | 20 |
|
|
103
121
|
| W0424 | 3 | 30 |
|
|
122
|
+
| C1000 | | |
|
|
123
|
+
| C1005 | 1 | 71 |
|
|
104
124
|
| W1052 | 3 | 28 |
|
|
105
125
|
| W9003 | 3 | 28 |
|
|
106
126
|
| W0628 | 1 | 6 |
|
|
@@ -120,7 +140,11 @@ Feature: W0023
|
|
|
120
140
|
| W0117 | 1 | 6 |
|
|
121
141
|
| W0023 | 3 | 22 |
|
|
122
142
|
| W0424 | 3 | 20 |
|
|
143
|
+
| C1000 | | |
|
|
144
|
+
| C1005 | 1 | 50 |
|
|
123
145
|
| W0424 | 3 | 24 |
|
|
146
|
+
| C1000 | | |
|
|
147
|
+
| C1005 | 1 | 29 |
|
|
124
148
|
| W1052 | 3 | 22 |
|
|
125
149
|
| W9003 | 3 | 28 |
|
|
126
150
|
| W0024 | 3 | 26 |
|
|
@@ -162,8 +186,14 @@ Feature: W0023
|
|
|
162
186
|
| mesg | line | column |
|
|
163
187
|
| W0117 | 1 | 6 |
|
|
164
188
|
| W0116 | 3 | 22 |
|
|
189
|
+
| C1000 | | |
|
|
190
|
+
| C1006 | 1 | 29 |
|
|
165
191
|
| W0424 | 3 | 20 |
|
|
192
|
+
| C1000 | | |
|
|
193
|
+
| C1005 | 1 | 29 |
|
|
166
194
|
| W0424 | 3 | 25 |
|
|
195
|
+
| C1000 | | |
|
|
196
|
+
| C1005 | 1 | 50 |
|
|
167
197
|
| W9003 | 3 | 22 |
|
|
168
198
|
| W0628 | 1 | 6 |
|
|
169
199
|
|
|
@@ -199,5 +229,7 @@ Feature: W0023
|
|
|
199
229
|
| W9003 | 4 | 5 |
|
|
200
230
|
| W0023 | 4 | 7 |
|
|
201
231
|
| W0424 | 4 | 10 |
|
|
232
|
+
| C1000 | | |
|
|
233
|
+
| C1005 | 1 | 29 |
|
|
202
234
|
| W9003 | 4 | 5 |
|
|
203
235
|
| W0628 | 1 | 6 |
|
|
@@ -32,6 +32,8 @@ Feature: W0024
|
|
|
32
32
|
| W0117 | 1 | 12 |
|
|
33
33
|
| W0024 | 3 | 12 |
|
|
34
34
|
| W0424 | 3 | 14 |
|
|
35
|
+
| C1000 | | |
|
|
36
|
+
| C1005 | 1 | 28 |
|
|
35
37
|
| W0628 | 1 | 12 |
|
|
36
38
|
|
|
37
39
|
Scenario: a pointer variable as lhs of the additive-expression
|
|
@@ -49,6 +51,8 @@ Feature: W0024
|
|
|
49
51
|
| W9003 | 3 | 16 |
|
|
50
52
|
| W0024 | 3 | 14 |
|
|
51
53
|
| W0424 | 3 | 12 |
|
|
54
|
+
| C1000 | | |
|
|
55
|
+
| C1005 | 1 | 35 |
|
|
52
56
|
| W0628 | 1 | 12 |
|
|
53
57
|
|
|
54
58
|
Scenario: a pointer variable as rhs of the additive-expression
|
|
@@ -66,6 +70,8 @@ Feature: W0024
|
|
|
66
70
|
| W9003 | 3 | 12 |
|
|
67
71
|
| W0024 | 3 | 14 |
|
|
68
72
|
| W0424 | 3 | 16 |
|
|
73
|
+
| C1000 | | |
|
|
74
|
+
| C1005 | 1 | 35 |
|
|
69
75
|
| W0628 | 1 | 12 |
|
|
70
76
|
|
|
71
77
|
Scenario: a pointer variable as lhs of the additive-expression
|
|
@@ -84,6 +90,8 @@ Feature: W0024
|
|
|
84
90
|
| W9003 | 3 | 14 |
|
|
85
91
|
| W0024 | 3 | 12 |
|
|
86
92
|
| W0424 | 3 | 10 |
|
|
93
|
+
| C1000 | | |
|
|
94
|
+
| C1005 | 1 | 28 |
|
|
87
95
|
| W0628 | 1 | 12 |
|
|
88
96
|
|
|
89
97
|
Scenario: postfix-decrement-expression with a pointer variable
|
|
@@ -100,6 +108,8 @@ Feature: W0024
|
|
|
100
108
|
| W0117 | 1 | 12 |
|
|
101
109
|
| W0024 | 3 | 13 |
|
|
102
110
|
| W0424 | 3 | 12 |
|
|
111
|
+
| C1000 | | |
|
|
112
|
+
| C1005 | 1 | 28 |
|
|
103
113
|
| W0628 | 1 | 12 |
|
|
104
114
|
|
|
105
115
|
Scenario: prefix-decrement-expression with a pointer variable
|
|
@@ -116,6 +126,8 @@ Feature: W0024
|
|
|
116
126
|
| W0117 | 1 | 12 |
|
|
117
127
|
| W0024 | 3 | 12 |
|
|
118
128
|
| W0424 | 3 | 14 |
|
|
129
|
+
| C1000 | | |
|
|
130
|
+
| C1005 | 1 | 28 |
|
|
119
131
|
| W0628 | 1 | 12 |
|
|
120
132
|
|
|
121
133
|
Scenario: a pointer variable as lhs of the additive-expression
|
|
@@ -133,6 +145,8 @@ Feature: W0024
|
|
|
133
145
|
| W9003 | 3 | 16 |
|
|
134
146
|
| W0024 | 3 | 14 |
|
|
135
147
|
| W0424 | 3 | 12 |
|
|
148
|
+
| C1000 | | |
|
|
149
|
+
| C1005 | 1 | 35 |
|
|
136
150
|
| W0628 | 1 | 12 |
|
|
137
151
|
|
|
138
152
|
Scenario: a pointer variable as rhs of the additive-expression
|
|
@@ -150,6 +164,8 @@ Feature: W0024
|
|
|
150
164
|
| W9003 | 3 | 12 |
|
|
151
165
|
| W0024 | 3 | 14 |
|
|
152
166
|
| W0424 | 3 | 16 |
|
|
167
|
+
| C1000 | | |
|
|
168
|
+
| C1005 | 1 | 35 |
|
|
153
169
|
| W0628 | 1 | 12 |
|
|
154
170
|
|
|
155
171
|
Scenario: pointer variables are incremented and decremented
|
|
@@ -167,6 +183,8 @@ Feature: W0024
|
|
|
167
183
|
| W0024 | 3 | 13 |
|
|
168
184
|
| W0024 | 3 | 19 |
|
|
169
185
|
| W0424 | 3 | 18 |
|
|
186
|
+
| C1000 | | |
|
|
187
|
+
| C1005 | 1 | 42 |
|
|
170
188
|
| W0424 | 3 | 13 |
|
|
171
189
|
| W0424 | 3 | 19 |
|
|
172
190
|
| W0628 | 1 | 12 |
|
|
@@ -206,6 +224,8 @@ Feature: W0024
|
|
|
206
224
|
| W9003 | 3 | 16 |
|
|
207
225
|
| W0023 | 3 | 14 |
|
|
208
226
|
| W0424 | 3 | 12 |
|
|
227
|
+
| C1000 | | |
|
|
228
|
+
| C1005 | 1 | 35 |
|
|
209
229
|
| W0628 | 1 | 12 |
|
|
210
230
|
|
|
211
231
|
Scenario: pointer variable minus 2
|
|
@@ -223,4 +243,6 @@ Feature: W0024
|
|
|
223
243
|
| W9003 | 3 | 16 |
|
|
224
244
|
| W0023 | 3 | 14 |
|
|
225
245
|
| W0424 | 3 | 12 |
|
|
246
|
+
| C1000 | | |
|
|
247
|
+
| C1005 | 1 | 35 |
|
|
226
248
|
| W0628 | 1 | 12 |
|
|
@@ -27,7 +27,11 @@ Feature: W0093
|
|
|
27
27
|
| mesg | line | column |
|
|
28
28
|
| W1076 | 1 | 13 |
|
|
29
29
|
| W0093 | 8 | 23 |
|
|
30
|
+
| C1000 | | |
|
|
31
|
+
| C1006 | 5 | 14 |
|
|
30
32
|
| W0093 | 11 | 23 |
|
|
33
|
+
| C1000 | | |
|
|
34
|
+
| C1006 | 5 | 14 |
|
|
31
35
|
| W0629 | 1 | 13 |
|
|
32
36
|
| W0628 | 1 | 13 |
|
|
33
37
|
|
|
@@ -56,6 +60,8 @@ Feature: W0093
|
|
|
56
60
|
| mesg | line | column |
|
|
57
61
|
| W1076 | 1 | 13 |
|
|
58
62
|
| W0093 | 11 | 23 |
|
|
63
|
+
| C1000 | | |
|
|
64
|
+
| C1006 | 5 | 14 |
|
|
59
65
|
| W0629 | 1 | 13 |
|
|
60
66
|
| W0628 | 1 | 13 |
|
|
61
67
|
|
|
@@ -86,3 +92,68 @@ Feature: W0093
|
|
|
86
92
|
| W0093 | 8 | 23 |
|
|
87
93
|
| W0629 | 1 | 13 |
|
|
88
94
|
| W0628 | 1 | 13 |
|
|
95
|
+
|
|
96
|
+
Scenario: possible zero-devide because of an incomplete if-else-if statement
|
|
97
|
+
Given a target source named "fixture.c" with:
|
|
98
|
+
"""
|
|
99
|
+
int foo(int i)
|
|
100
|
+
{
|
|
101
|
+
int j = 0;
|
|
102
|
+
|
|
103
|
+
if (i < 0) { /* false */
|
|
104
|
+
j = -i;
|
|
105
|
+
}
|
|
106
|
+
else if (i > 0) { /* false */
|
|
107
|
+
j = i;
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
return 5 / j; /* W0093 */
|
|
111
|
+
}
|
|
112
|
+
"""
|
|
113
|
+
When I successfully run `adlint fixture.c` on noarch
|
|
114
|
+
Then the output should exactly match with:
|
|
115
|
+
| mesg | line | column |
|
|
116
|
+
| W0117 | 1 | 5 |
|
|
117
|
+
| W0093 | 12 | 14 |
|
|
118
|
+
| C1000 | | |
|
|
119
|
+
| C1006 | 3 | 9 |
|
|
120
|
+
| C1002 | 5 | 11 |
|
|
121
|
+
| C1002 | 8 | 16 |
|
|
122
|
+
| W0104 | 1 | 13 |
|
|
123
|
+
| W1069 | 5 | 5 |
|
|
124
|
+
| W0628 | 1 | 5 |
|
|
125
|
+
|
|
126
|
+
Scenario: possible zero-devide because of an incomplete if-else-if statement
|
|
127
|
+
Given a target source named "fixture.c" with:
|
|
128
|
+
"""
|
|
129
|
+
int foo(int i)
|
|
130
|
+
{
|
|
131
|
+
int j;
|
|
132
|
+
|
|
133
|
+
if (i < 0) { /* false */
|
|
134
|
+
j = -i;
|
|
135
|
+
}
|
|
136
|
+
else if (i > 0) {
|
|
137
|
+
j = i; /* false */
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
return 5 / j; /* W0093 */
|
|
141
|
+
}
|
|
142
|
+
"""
|
|
143
|
+
When I successfully run `adlint fixture.c` on noarch
|
|
144
|
+
Then the output should exactly match with:
|
|
145
|
+
| mesg | line | column |
|
|
146
|
+
| W0117 | 1 | 5 |
|
|
147
|
+
| W0460 | 12 | 14 |
|
|
148
|
+
| C1000 | | |
|
|
149
|
+
| C1003 | 3 | 9 |
|
|
150
|
+
| C1002 | 5 | 11 |
|
|
151
|
+
| C1002 | 8 | 16 |
|
|
152
|
+
| W0093 | 12 | 14 |
|
|
153
|
+
| C1000 | | |
|
|
154
|
+
| C1006 | 3 | 9 |
|
|
155
|
+
| C1002 | 5 | 11 |
|
|
156
|
+
| C1002 | 8 | 16 |
|
|
157
|
+
| W0104 | 1 | 13 |
|
|
158
|
+
| W1069 | 5 | 5 |
|
|
159
|
+
| W0628 | 1 | 5 |
|