adlint 3.0.10 → 3.2.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
@@ -34,6 +34,8 @@ Feature: W0174
|
|
34
34
|
| mesg | line | column |
|
35
35
|
| W0117 | 1 | 6 |
|
36
36
|
| W0608 | 3 | 28 |
|
37
|
+
| C1000 | | |
|
38
|
+
| C1006 | 1 | 16 |
|
37
39
|
| W0100 | 3 | 24 |
|
38
40
|
| W0104 | 1 | 16 |
|
39
41
|
| W0834 | 3 | 29 |
|
@@ -73,6 +75,8 @@ Feature: W0174
|
|
73
75
|
| mesg | line | column |
|
74
76
|
| W0117 | 1 | 6 |
|
75
77
|
| W0608 | 4 | 9 |
|
78
|
+
| C1000 | | |
|
79
|
+
| C1006 | 1 | 16 |
|
76
80
|
| W0100 | 3 | 24 |
|
77
81
|
| W0104 | 1 | 16 |
|
78
82
|
| W0834 | 3 | 5 |
|
@@ -115,6 +119,8 @@ Feature: W0174
|
|
115
119
|
| W0118 | 1 | 13 |
|
116
120
|
| W0117 | 3 | 6 |
|
117
121
|
| W0608 | 5 | 9 |
|
122
|
+
| C1000 | | |
|
123
|
+
| C1006 | 3 | 16 |
|
118
124
|
| W0104 | 3 | 16 |
|
119
125
|
| W0834 | 1 | 17 |
|
120
126
|
| W0834 | 5 | 10 |
|
@@ -151,6 +157,8 @@ Feature: W0174
|
|
151
157
|
| mesg | line | column |
|
152
158
|
| W0117 | 1 | 20 |
|
153
159
|
| W0608 | 3 | 12 |
|
160
|
+
| C1000 | | |
|
161
|
+
| C1006 | 1 | 30 |
|
154
162
|
| W0104 | 1 | 30 |
|
155
163
|
| W0834 | 1 | 1 |
|
156
164
|
| W0834 | 3 | 13 |
|
@@ -33,6 +33,8 @@ Feature: W0175
|
|
33
33
|
| mesg | line | column |
|
34
34
|
| W0117 | 1 | 6 |
|
35
35
|
| W0608 | 3 | 28 |
|
36
|
+
| C1000 | | |
|
37
|
+
| C1006 | 1 | 14 |
|
36
38
|
| W0100 | 3 | 24 |
|
37
39
|
| W0104 | 1 | 14 |
|
38
40
|
| W0834 | 3 | 29 |
|
@@ -72,6 +74,8 @@ Feature: W0175
|
|
72
74
|
| mesg | line | column |
|
73
75
|
| W0117 | 1 | 6 |
|
74
76
|
| W0608 | 4 | 9 |
|
77
|
+
| C1000 | | |
|
78
|
+
| C1006 | 1 | 14 |
|
75
79
|
| W0100 | 3 | 24 |
|
76
80
|
| W0104 | 1 | 14 |
|
77
81
|
| W0834 | 3 | 5 |
|
@@ -114,6 +118,8 @@ Feature: W0175
|
|
114
118
|
| W0118 | 1 | 13 |
|
115
119
|
| W0117 | 3 | 6 |
|
116
120
|
| W0608 | 5 | 9 |
|
121
|
+
| C1000 | | |
|
122
|
+
| C1006 | 3 | 14 |
|
117
123
|
| W0104 | 3 | 14 |
|
118
124
|
| W0834 | 1 | 17 |
|
119
125
|
| W0834 | 5 | 10 |
|
@@ -150,6 +156,8 @@ Feature: W0175
|
|
150
156
|
| mesg | line | column |
|
151
157
|
| W0117 | 1 | 20 |
|
152
158
|
| W0608 | 3 | 12 |
|
159
|
+
| C1000 | | |
|
160
|
+
| C1006 | 1 | 28 |
|
153
161
|
| W0104 | 1 | 28 |
|
154
162
|
| W0834 | 1 | 1 |
|
155
163
|
| W0834 | 3 | 13 |
|
@@ -33,6 +33,8 @@ Feature: W0176
|
|
33
33
|
| mesg | line | column |
|
34
34
|
| W0117 | 1 | 6 |
|
35
35
|
| W0608 | 3 | 28 |
|
36
|
+
| C1000 | | |
|
37
|
+
| C1006 | 1 | 15 |
|
36
38
|
| W0100 | 3 | 24 |
|
37
39
|
| W0104 | 1 | 15 |
|
38
40
|
| W0834 | 3 | 29 |
|
@@ -72,6 +74,8 @@ Feature: W0176
|
|
72
74
|
| mesg | line | column |
|
73
75
|
| W0117 | 1 | 6 |
|
74
76
|
| W0608 | 4 | 9 |
|
77
|
+
| C1000 | | |
|
78
|
+
| C1006 | 1 | 15 |
|
75
79
|
| W0100 | 3 | 24 |
|
76
80
|
| W0104 | 1 | 15 |
|
77
81
|
| W0834 | 3 | 5 |
|
@@ -114,6 +118,8 @@ Feature: W0176
|
|
114
118
|
| W0118 | 1 | 13 |
|
115
119
|
| W0117 | 3 | 6 |
|
116
120
|
| W0608 | 5 | 9 |
|
121
|
+
| C1000 | | |
|
122
|
+
| C1006 | 3 | 15 |
|
117
123
|
| W0104 | 3 | 15 |
|
118
124
|
| W0834 | 1 | 17 |
|
119
125
|
| W0834 | 5 | 10 |
|
@@ -150,6 +156,8 @@ Feature: W0176
|
|
150
156
|
| mesg | line | column |
|
151
157
|
| W0117 | 1 | 20 |
|
152
158
|
| W0608 | 3 | 12 |
|
159
|
+
| C1000 | | |
|
160
|
+
| C1006 | 1 | 29 |
|
153
161
|
| W0104 | 1 | 29 |
|
154
162
|
| W0834 | 1 | 1 |
|
155
163
|
| W0834 | 3 | 13 |
|
@@ -33,6 +33,8 @@ Feature: W0177
|
|
33
33
|
| mesg | line | column |
|
34
34
|
| W0117 | 1 | 6 |
|
35
35
|
| W0608 | 3 | 23 |
|
36
|
+
| C1000 | | |
|
37
|
+
| C1006 | 1 | 20 |
|
36
38
|
| W0100 | 3 | 19 |
|
37
39
|
| W0104 | 1 | 20 |
|
38
40
|
| W0834 | 1 | 10 |
|
@@ -71,6 +73,8 @@ Feature: W0177
|
|
71
73
|
| mesg | line | column |
|
72
74
|
| W0117 | 1 | 6 |
|
73
75
|
| W0608 | 4 | 9 |
|
76
|
+
| C1000 | | |
|
77
|
+
| C1006 | 1 | 20 |
|
74
78
|
| W0100 | 3 | 19 |
|
75
79
|
| W0104 | 1 | 20 |
|
76
80
|
| W0834 | 1 | 10 |
|
@@ -112,6 +116,8 @@ Feature: W0177
|
|
112
116
|
| W0118 | 1 | 13 |
|
113
117
|
| W0117 | 3 | 6 |
|
114
118
|
| W0608 | 5 | 9 |
|
119
|
+
| C1000 | | |
|
120
|
+
| C1006 | 3 | 20 |
|
115
121
|
| W0104 | 3 | 20 |
|
116
122
|
| W0834 | 3 | 10 |
|
117
123
|
| W0628 | 3 | 6 |
|
@@ -147,6 +153,8 @@ Feature: W0177
|
|
147
153
|
| mesg | line | column |
|
148
154
|
| W0117 | 1 | 15 |
|
149
155
|
| W0608 | 3 | 12 |
|
156
|
+
| C1000 | | |
|
157
|
+
| C1006 | 1 | 29 |
|
150
158
|
| W0104 | 1 | 29 |
|
151
159
|
| W0834 | 1 | 19 |
|
152
160
|
| W0628 | 1 | 15 |
|
@@ -34,6 +34,8 @@ Feature: W0178
|
|
34
34
|
| mesg | line | column |
|
35
35
|
| W0117 | 1 | 6 |
|
36
36
|
| W0608 | 3 | 24 |
|
37
|
+
| C1000 | | |
|
38
|
+
| C1006 | 1 | 20 |
|
37
39
|
| W0100 | 3 | 20 |
|
38
40
|
| W0104 | 1 | 20 |
|
39
41
|
| W0834 | 1 | 10 |
|
@@ -72,6 +74,8 @@ Feature: W0178
|
|
72
74
|
| mesg | line | column |
|
73
75
|
| W0117 | 1 | 6 |
|
74
76
|
| W0608 | 4 | 9 |
|
77
|
+
| C1000 | | |
|
78
|
+
| C1006 | 1 | 20 |
|
75
79
|
| W0100 | 3 | 20 |
|
76
80
|
| W0104 | 1 | 20 |
|
77
81
|
| W0834 | 1 | 10 |
|
@@ -113,6 +117,8 @@ Feature: W0178
|
|
113
117
|
| W0118 | 1 | 13 |
|
114
118
|
| W0117 | 3 | 6 |
|
115
119
|
| W0608 | 5 | 9 |
|
120
|
+
| C1000 | | |
|
121
|
+
| C1006 | 3 | 20 |
|
116
122
|
| W0104 | 3 | 20 |
|
117
123
|
| W0834 | 3 | 10 |
|
118
124
|
| W0628 | 3 | 6 |
|
@@ -148,6 +154,8 @@ Feature: W0178
|
|
148
154
|
| mesg | line | column |
|
149
155
|
| W0117 | 1 | 16 |
|
150
156
|
| W0608 | 3 | 12 |
|
157
|
+
| C1000 | | |
|
158
|
+
| C1006 | 1 | 30 |
|
151
159
|
| W0104 | 1 | 30 |
|
152
160
|
| W0834 | 1 | 20 |
|
153
161
|
| W0628 | 1 | 16 |
|
@@ -33,6 +33,8 @@ Feature: W0179
|
|
33
33
|
| mesg | line | column |
|
34
34
|
| W0117 | 1 | 6 |
|
35
35
|
| W0608 | 3 | 22 |
|
36
|
+
| C1000 | | |
|
37
|
+
| C1006 | 1 | 20 |
|
36
38
|
| W0100 | 3 | 18 |
|
37
39
|
| W0104 | 1 | 20 |
|
38
40
|
| W0834 | 1 | 10 |
|
@@ -71,6 +73,8 @@ Feature: W0179
|
|
71
73
|
| mesg | line | column |
|
72
74
|
| W0117 | 1 | 6 |
|
73
75
|
| W0608 | 4 | 9 |
|
76
|
+
| C1000 | | |
|
77
|
+
| C1006 | 1 | 20 |
|
74
78
|
| W0100 | 3 | 18 |
|
75
79
|
| W0104 | 1 | 20 |
|
76
80
|
| W0834 | 1 | 10 |
|
@@ -112,6 +116,8 @@ Feature: W0179
|
|
112
116
|
| W0118 | 1 | 13 |
|
113
117
|
| W0117 | 3 | 6 |
|
114
118
|
| W0608 | 5 | 9 |
|
119
|
+
| C1000 | | |
|
120
|
+
| C1006 | 3 | 20 |
|
115
121
|
| W0104 | 3 | 20 |
|
116
122
|
| W0834 | 3 | 10 |
|
117
123
|
| W0628 | 3 | 6 |
|
@@ -147,6 +153,8 @@ Feature: W0179
|
|
147
153
|
| mesg | line | column |
|
148
154
|
| W0117 | 1 | 14 |
|
149
155
|
| W0608 | 3 | 12 |
|
156
|
+
| C1000 | | |
|
157
|
+
| C1006 | 1 | 28 |
|
150
158
|
| W0104 | 1 | 28 |
|
151
159
|
| W0834 | 1 | 18 |
|
152
160
|
| W0628 | 1 | 14 |
|
@@ -33,6 +33,8 @@ Feature: W0180
|
|
33
33
|
| mesg | line | column |
|
34
34
|
| W0117 | 1 | 6 |
|
35
35
|
| W0608 | 3 | 23 |
|
36
|
+
| C1000 | | |
|
37
|
+
| C1006 | 1 | 20 |
|
36
38
|
| W0100 | 3 | 19 |
|
37
39
|
| W0104 | 1 | 20 |
|
38
40
|
| W0834 | 1 | 10 |
|
@@ -71,6 +73,8 @@ Feature: W0180
|
|
71
73
|
| mesg | line | column |
|
72
74
|
| W0117 | 1 | 6 |
|
73
75
|
| W0608 | 4 | 9 |
|
76
|
+
| C1000 | | |
|
77
|
+
| C1006 | 1 | 20 |
|
74
78
|
| W0100 | 3 | 19 |
|
75
79
|
| W0104 | 1 | 20 |
|
76
80
|
| W0834 | 1 | 10 |
|
@@ -112,6 +116,8 @@ Feature: W0180
|
|
112
116
|
| W0118 | 1 | 13 |
|
113
117
|
| W0117 | 3 | 6 |
|
114
118
|
| W0608 | 5 | 9 |
|
119
|
+
| C1000 | | |
|
120
|
+
| C1006 | 3 | 20 |
|
115
121
|
| W0104 | 3 | 20 |
|
116
122
|
| W0834 | 3 | 10 |
|
117
123
|
| W0628 | 3 | 6 |
|
@@ -147,6 +153,8 @@ Feature: W0180
|
|
147
153
|
| mesg | line | column |
|
148
154
|
| W0117 | 1 | 15 |
|
149
155
|
| W0608 | 3 | 12 |
|
156
|
+
| C1000 | | |
|
157
|
+
| C1006 | 1 | 29 |
|
150
158
|
| W0104 | 1 | 29 |
|
151
159
|
| W0834 | 1 | 19 |
|
152
160
|
| W0628 | 1 | 15 |
|
@@ -35,6 +35,8 @@ Feature: W0181
|
|
35
35
|
| mesg | line | column |
|
36
36
|
| W0117 | 1 | 6 |
|
37
37
|
| W0608 | 3 | 28 |
|
38
|
+
| C1000 | | |
|
39
|
+
| C1006 | 1 | 20 |
|
38
40
|
| W0100 | 3 | 24 |
|
39
41
|
| W0104 | 1 | 20 |
|
40
42
|
| W0834 | 1 | 10 |
|
@@ -76,6 +78,8 @@ Feature: W0181
|
|
76
78
|
| mesg | line | column |
|
77
79
|
| W0117 | 1 | 6 |
|
78
80
|
| W0608 | 4 | 9 |
|
81
|
+
| C1000 | | |
|
82
|
+
| C1006 | 1 | 20 |
|
79
83
|
| W0100 | 3 | 24 |
|
80
84
|
| W0104 | 1 | 20 |
|
81
85
|
| W0834 | 1 | 10 |
|
@@ -120,6 +124,8 @@ Feature: W0181
|
|
120
124
|
| W0118 | 1 | 13 |
|
121
125
|
| W0117 | 3 | 6 |
|
122
126
|
| W0608 | 5 | 9 |
|
127
|
+
| C1000 | | |
|
128
|
+
| C1006 | 3 | 20 |
|
123
129
|
| W0104 | 3 | 20 |
|
124
130
|
| W0834 | 1 | 17 |
|
125
131
|
| W0834 | 3 | 10 |
|
@@ -158,6 +164,8 @@ Feature: W0181
|
|
158
164
|
| mesg | line | column |
|
159
165
|
| W0117 | 1 | 20 |
|
160
166
|
| W0608 | 3 | 12 |
|
167
|
+
| C1000 | | |
|
168
|
+
| C1006 | 1 | 34 |
|
161
169
|
| W0104 | 1 | 34 |
|
162
170
|
| W0834 | 1 | 1 |
|
163
171
|
| W0834 | 1 | 24 |
|
@@ -32,6 +32,8 @@ Feature: W0250
|
|
32
32
|
| mesg | line | column |
|
33
33
|
| W0117 | 1 | 6 |
|
34
34
|
| W1049 | 3 | 14 |
|
35
|
+
| C1000 | | |
|
36
|
+
| C1006 | 1 | 23 |
|
35
37
|
| W0100 | 3 | 10 |
|
36
38
|
| W0104 | 1 | 23 |
|
37
39
|
| W0628 | 1 | 6 |
|
@@ -68,6 +70,8 @@ Feature: W0250
|
|
68
70
|
| mesg | line | column |
|
69
71
|
| W0117 | 1 | 6 |
|
70
72
|
| W1049 | 4 | 9 |
|
73
|
+
| C1000 | | |
|
74
|
+
| C1006 | 1 | 23 |
|
71
75
|
| W0100 | 3 | 10 |
|
72
76
|
| W0104 | 1 | 23 |
|
73
77
|
| W0628 | 1 | 6 |
|
@@ -107,6 +111,8 @@ Feature: W0250
|
|
107
111
|
| W0118 | 1 | 13 |
|
108
112
|
| W0117 | 3 | 6 |
|
109
113
|
| W1049 | 5 | 9 |
|
114
|
+
| C1000 | | |
|
115
|
+
| C1006 | 3 | 23 |
|
110
116
|
| W0104 | 3 | 23 |
|
111
117
|
| W0628 | 3 | 6 |
|
112
118
|
|
@@ -140,5 +146,7 @@ Feature: W0250
|
|
140
146
|
| mesg | line | column |
|
141
147
|
| W0117 | 1 | 6 |
|
142
148
|
| W1049 | 3 | 12 |
|
149
|
+
| C1000 | | |
|
150
|
+
| C1006 | 1 | 23 |
|
143
151
|
| W0104 | 1 | 23 |
|
144
152
|
| W0628 | 1 | 6 |
|
@@ -28,8 +28,12 @@ Feature: W0422
|
|
28
28
|
| W0118 | 2 | 14 |
|
29
29
|
| W1076 | 4 | 12 |
|
30
30
|
| W0422 | 7 | 13 |
|
31
|
+
| C1000 | | |
|
32
|
+
| C1005 | 6 | 24 |
|
31
33
|
| W1076 | 10 | 12 |
|
32
34
|
| W0422 | 13 | 13 |
|
35
|
+
| C1000 | | |
|
36
|
+
| C1005 | 12 | 24 |
|
33
37
|
| W0629 | 4 | 12 |
|
34
38
|
| W0629 | 10 | 12 |
|
35
39
|
| W0628 | 4 | 12 |
|
@@ -94,6 +98,10 @@ Feature: W0422
|
|
94
98
|
| mesg | line | column |
|
95
99
|
| W0117 | 3 | 6 |
|
96
100
|
| W0422 | 11 | 20 |
|
101
|
+
| C1000 | | |
|
102
|
+
| C1001 | 5 | 9 |
|
103
|
+
| C1005 | 9 | 18 |
|
104
|
+
| C1005 | 10 | 16 |
|
97
105
|
| W0024 | 12 | 19 |
|
98
106
|
| W0114 | 5 | 5 |
|
99
107
|
| W0114 | 8 | 9 |
|
@@ -120,6 +128,8 @@ Feature: W0422
|
|
120
128
|
| W0704 | 3 | 16 |
|
121
129
|
| C0001 | 1 | 13 |
|
122
130
|
| W0422 | 5 | 14 |
|
131
|
+
| C1000 | | |
|
132
|
+
| C1005 | 3 | 16 |
|
123
133
|
| W0123 | 5 | 14 |
|
124
134
|
| W0104 | 3 | 16 |
|
125
135
|
| W0105 | 3 | 16 |
|
@@ -176,6 +186,8 @@ Feature: W0422
|
|
176
186
|
| W0117 | 1 | 6 |
|
177
187
|
| W0117 | 3 | 5 |
|
178
188
|
| W0421 | 6 | 16 |
|
189
|
+
| C1000 | | |
|
190
|
+
| C1004 | 1 | 6 |
|
179
191
|
| W9003 | 8 | 22 |
|
180
192
|
| W0027 | 8 | 19 |
|
181
193
|
| W1071 | 3 | 5 |
|
@@ -207,6 +219,8 @@ Feature: W0422
|
|
207
219
|
| W0117 | 1 | 6 |
|
208
220
|
| W0117 | 3 | 5 |
|
209
221
|
| W0421 | 6 | 16 |
|
222
|
+
| C1000 | | |
|
223
|
+
| C1004 | 1 | 6 |
|
210
224
|
| W9003 | 8 | 21 |
|
211
225
|
| W0027 | 8 | 18 |
|
212
226
|
| W1071 | 3 | 5 |
|
@@ -283,3 +297,183 @@ Feature: W0422
|
|
283
297
|
| W0628 | 3 | 5 |
|
284
298
|
| W0589 | 1 | 6 |
|
285
299
|
| W0593 | 1 | 6 |
|
300
|
+
|
301
|
+
Scenario: possible null-dereference because of an incomplete if statement
|
302
|
+
Given a target source named "fixture.c" with:
|
303
|
+
"""
|
304
|
+
int *bar(void);
|
305
|
+
|
306
|
+
int foo(int i)
|
307
|
+
{
|
308
|
+
int *p;
|
309
|
+
|
310
|
+
if (i == 0) { /* true */
|
311
|
+
p = bar();
|
312
|
+
}
|
313
|
+
|
314
|
+
return *p; /* W0422 */
|
315
|
+
}
|
316
|
+
"""
|
317
|
+
When I successfully run `adlint fixture.c` on noarch
|
318
|
+
Then the output should exactly match with:
|
319
|
+
| mesg | line | column |
|
320
|
+
| W0118 | 1 | 6 |
|
321
|
+
| W0117 | 3 | 5 |
|
322
|
+
| W0460 | 11 | 12 |
|
323
|
+
| C1000 | | |
|
324
|
+
| C1003 | 5 | 10 |
|
325
|
+
| C1002 | 7 | 11 |
|
326
|
+
| W0422 | 11 | 12 |
|
327
|
+
| C1000 | | |
|
328
|
+
| C1005 | 5 | 10 |
|
329
|
+
| C1001 | 7 | 11 |
|
330
|
+
| C1005 | 8 | 11 |
|
331
|
+
| W0100 | 5 | 10 |
|
332
|
+
| W0104 | 3 | 13 |
|
333
|
+
| W0628 | 3 | 5 |
|
334
|
+
|
335
|
+
Scenario: possible null-dereference because of an incomplete selection
|
336
|
+
statement
|
337
|
+
Given a target source named "fixture.c" with:
|
338
|
+
"""
|
339
|
+
static void foo(void)
|
340
|
+
{
|
341
|
+
int i;
|
342
|
+
int *p;
|
343
|
+
|
344
|
+
switch (rand()) {
|
345
|
+
case 0: /* false */
|
346
|
+
p = &i;
|
347
|
+
break;
|
348
|
+
case 1: /* true */
|
349
|
+
p = NULL;
|
350
|
+
break;
|
351
|
+
default:
|
352
|
+
return;
|
353
|
+
}
|
354
|
+
|
355
|
+
*p = 5; /* W0422 */
|
356
|
+
|
357
|
+
if (i < rand()) { /* false */
|
358
|
+
p = &i;
|
359
|
+
}
|
360
|
+
|
361
|
+
*p = 6; /* W0422 */
|
362
|
+
|
363
|
+
if (rand() < 1) { /* false */
|
364
|
+
p = &i;
|
365
|
+
}
|
366
|
+
|
367
|
+
*p = 7; /* W0422 */
|
368
|
+
}
|
369
|
+
"""
|
370
|
+
When I successfully run `adlint fixture.c` on noarch
|
371
|
+
Then the output should exactly match with:
|
372
|
+
| mesg | line | column |
|
373
|
+
| W1076 | 1 | 13 |
|
374
|
+
| W0109 | 6 | 13 |
|
375
|
+
| W0459 | 8 | 13 |
|
376
|
+
| C1000 | | |
|
377
|
+
| C1003 | 3 | 9 |
|
378
|
+
| W0422 | 17 | 5 |
|
379
|
+
| C1000 | | |
|
380
|
+
| C1005 | 4 | 10 |
|
381
|
+
| C1002 | 7 | 5 |
|
382
|
+
| C1001 | 10 | 5 |
|
383
|
+
| C1004 | 11 | 11 |
|
384
|
+
| W0459 | 19 | 11 |
|
385
|
+
| C1000 | | |
|
386
|
+
| C1003 | 3 | 9 |
|
387
|
+
| W0459 | 20 | 13 |
|
388
|
+
| C1000 | | |
|
389
|
+
| C1003 | 3 | 9 |
|
390
|
+
| W0422 | 23 | 5 |
|
391
|
+
| C1000 | | |
|
392
|
+
| C1005 | 4 | 10 |
|
393
|
+
| C1002 | 7 | 5 |
|
394
|
+
| C1001 | 10 | 5 |
|
395
|
+
| C1004 | 11 | 11 |
|
396
|
+
| C1002 | 19 | 11 |
|
397
|
+
| W0459 | 26 | 13 |
|
398
|
+
| C1000 | | |
|
399
|
+
| C1003 | 3 | 9 |
|
400
|
+
| W0422 | 29 | 5 |
|
401
|
+
| C1000 | | |
|
402
|
+
| C1005 | 4 | 10 |
|
403
|
+
| C1002 | 7 | 5 |
|
404
|
+
| C1001 | 10 | 5 |
|
405
|
+
| C1004 | 11 | 11 |
|
406
|
+
| C1002 | 19 | 11 |
|
407
|
+
| C1002 | 25 | 16 |
|
408
|
+
| W0100 | 3 | 9 |
|
409
|
+
| W1071 | 1 | 13 |
|
410
|
+
| W0629 | 1 | 13 |
|
411
|
+
| W0628 | 1 | 13 |
|
412
|
+
|
413
|
+
Scenario: possible null-dereference because of an incomplete iteration
|
414
|
+
statement
|
415
|
+
Given a target source named "fixture.c" with:
|
416
|
+
"""
|
417
|
+
static void foo(void)
|
418
|
+
{
|
419
|
+
int i;
|
420
|
+
int *p;
|
421
|
+
|
422
|
+
switch (rand()) {
|
423
|
+
case 0: /* false */
|
424
|
+
p = &i;
|
425
|
+
break;
|
426
|
+
case 1: /* true */
|
427
|
+
p = NULL;
|
428
|
+
break;
|
429
|
+
default:
|
430
|
+
return;
|
431
|
+
}
|
432
|
+
|
433
|
+
*p = 5; /* W0422 */
|
434
|
+
|
435
|
+
for (i = 0; i < rand(); ++i) { /* false */
|
436
|
+
p = &i;
|
437
|
+
}
|
438
|
+
|
439
|
+
*p = 6; /* W0422 */
|
440
|
+
|
441
|
+
while (rand() < 1) { /* false */
|
442
|
+
p = &i;
|
443
|
+
}
|
444
|
+
|
445
|
+
*p = 7; /* W0422 */
|
446
|
+
}
|
447
|
+
"""
|
448
|
+
When I successfully run `adlint fixture.c` on noarch
|
449
|
+
Then the output should exactly match with:
|
450
|
+
| mesg | line | column |
|
451
|
+
| W1076 | 1 | 13 |
|
452
|
+
| W0109 | 6 | 13 |
|
453
|
+
| W0459 | 8 | 13 |
|
454
|
+
| C1000 | | |
|
455
|
+
| C1003 | 3 | 9 |
|
456
|
+
| W0422 | 17 | 5 |
|
457
|
+
| C1000 | | |
|
458
|
+
| C1005 | 4 | 10 |
|
459
|
+
| C1002 | 7 | 5 |
|
460
|
+
| C1001 | 10 | 5 |
|
461
|
+
| C1004 | 11 | 11 |
|
462
|
+
| W0422 | 23 | 5 |
|
463
|
+
| C1000 | | |
|
464
|
+
| C1005 | 4 | 10 |
|
465
|
+
| C1002 | 7 | 5 |
|
466
|
+
| C1001 | 10 | 5 |
|
467
|
+
| C1004 | 11 | 11 |
|
468
|
+
| C1002 | 19 | 19 |
|
469
|
+
| W0422 | 29 | 5 |
|
470
|
+
| C1000 | | |
|
471
|
+
| C1005 | 4 | 10 |
|
472
|
+
| C1002 | 7 | 5 |
|
473
|
+
| C1001 | 10 | 5 |
|
474
|
+
| C1004 | 11 | 11 |
|
475
|
+
| C1002 | 19 | 19 |
|
476
|
+
| C1002 | 25 | 19 |
|
477
|
+
| W1071 | 1 | 13 |
|
478
|
+
| W0629 | 1 | 13 |
|
479
|
+
| W0628 | 1 | 13 |
|