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
@@ -32,6 +32,8 @@ Feature: W0754
|
|
32
32
|
| mesg | line | column |
|
33
33
|
| W0117 | 1 | 6 |
|
34
34
|
| W1049 | 3 | 15 |
|
35
|
+
| C1000 | | |
|
36
|
+
| C1006 | 1 | 15 |
|
35
37
|
| W0100 | 3 | 11 |
|
36
38
|
| W0104 | 1 | 15 |
|
37
39
|
| W0628 | 1 | 6 |
|
@@ -68,6 +70,8 @@ Feature: W0754
|
|
68
70
|
| mesg | line | column |
|
69
71
|
| W0117 | 1 | 6 |
|
70
72
|
| W1049 | 4 | 9 |
|
73
|
+
| C1000 | | |
|
74
|
+
| C1006 | 1 | 15 |
|
71
75
|
| W0100 | 3 | 11 |
|
72
76
|
| W0104 | 1 | 15 |
|
73
77
|
| W0628 | 1 | 6 |
|
@@ -107,6 +111,8 @@ Feature: W0754
|
|
107
111
|
| W0118 | 1 | 13 |
|
108
112
|
| W0117 | 3 | 6 |
|
109
113
|
| W1049 | 5 | 9 |
|
114
|
+
| C1000 | | |
|
115
|
+
| C1006 | 3 | 15 |
|
110
116
|
| W0104 | 3 | 15 |
|
111
117
|
| W0628 | 3 | 6 |
|
112
118
|
|
@@ -140,5 +146,7 @@ Feature: W0754
|
|
140
146
|
| mesg | line | column |
|
141
147
|
| W0117 | 1 | 7 |
|
142
148
|
| W1049 | 3 | 12 |
|
149
|
+
| C1000 | | |
|
150
|
+
| C1006 | 1 | 16 |
|
143
151
|
| W0104 | 1 | 16 |
|
144
152
|
| W0628 | 1 | 7 |
|
@@ -33,6 +33,8 @@ Feature: W0759
|
|
33
33
|
| mesg | line | column |
|
34
34
|
| W0117 | 1 | 6 |
|
35
35
|
| W1049 | 3 | 21 |
|
36
|
+
| C1000 | | |
|
37
|
+
| C1006 | 1 | 20 |
|
36
38
|
| W0100 | 3 | 17 |
|
37
39
|
| W0104 | 1 | 20 |
|
38
40
|
| W0834 | 1 | 10 |
|
@@ -71,6 +73,8 @@ Feature: W0759
|
|
71
73
|
| mesg | line | column |
|
72
74
|
| W0117 | 1 | 6 |
|
73
75
|
| W1049 | 4 | 9 |
|
76
|
+
| C1000 | | |
|
77
|
+
| C1006 | 1 | 20 |
|
74
78
|
| W0100 | 3 | 17 |
|
75
79
|
| W0104 | 1 | 20 |
|
76
80
|
| W0834 | 1 | 10 |
|
@@ -112,6 +116,8 @@ Feature: W0759
|
|
112
116
|
| W0118 | 1 | 13 |
|
113
117
|
| W0117 | 3 | 6 |
|
114
118
|
| W1049 | 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: W0759
|
|
147
153
|
| mesg | line | column |
|
148
154
|
| W0117 | 1 | 13 |
|
149
155
|
| W1049 | 3 | 12 |
|
156
|
+
| C1000 | | |
|
157
|
+
| C1006 | 1 | 27 |
|
150
158
|
| W0104 | 1 | 27 |
|
151
159
|
| W0834 | 1 | 17 |
|
152
160
|
| W0628 | 1 | 13 |
|
@@ -33,6 +33,8 @@ Feature: W0760
|
|
33
33
|
| mesg | line | column |
|
34
34
|
| W0117 | 1 | 6 |
|
35
35
|
| W1049 | 3 | 15 |
|
36
|
+
| C1000 | | |
|
37
|
+
| C1006 | 1 | 20 |
|
36
38
|
| W0100 | 3 | 11 |
|
37
39
|
| W0104 | 1 | 20 |
|
38
40
|
| W0834 | 1 | 10 |
|
@@ -71,6 +73,8 @@ Feature: W0760
|
|
71
73
|
| mesg | line | column |
|
72
74
|
| W0117 | 1 | 6 |
|
73
75
|
| W1049 | 4 | 9 |
|
76
|
+
| C1000 | | |
|
77
|
+
| C1006 | 1 | 20 |
|
74
78
|
| W0100 | 3 | 11 |
|
75
79
|
| W0104 | 1 | 20 |
|
76
80
|
| W0834 | 1 | 10 |
|
@@ -112,6 +116,8 @@ Feature: W0760
|
|
112
116
|
| W0118 | 1 | 13 |
|
113
117
|
| W0117 | 3 | 6 |
|
114
118
|
| W1049 | 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: W0760
|
|
147
153
|
| mesg | line | column |
|
148
154
|
| W0117 | 1 | 7 |
|
149
155
|
| W1049 | 3 | 12 |
|
156
|
+
| C1000 | | |
|
157
|
+
| C1006 | 1 | 21 |
|
150
158
|
| W0104 | 1 | 21 |
|
151
159
|
| W0834 | 1 | 11 |
|
152
160
|
| W0628 | 1 | 7 |
|
@@ -33,6 +33,8 @@ Feature: W0761
|
|
33
33
|
| mesg | line | column |
|
34
34
|
| W0117 | 1 | 6 |
|
35
35
|
| W1049 | 3 | 13 |
|
36
|
+
| C1000 | | |
|
37
|
+
| C1006 | 1 | 20 |
|
36
38
|
| W0100 | 3 | 9 |
|
37
39
|
| W0104 | 1 | 20 |
|
38
40
|
| W0834 | 1 | 10 |
|
@@ -71,6 +73,8 @@ Feature: W0761
|
|
71
73
|
| mesg | line | column |
|
72
74
|
| W0117 | 1 | 6 |
|
73
75
|
| W1049 | 4 | 9 |
|
76
|
+
| C1000 | | |
|
77
|
+
| C1006 | 1 | 20 |
|
74
78
|
| W0100 | 3 | 9 |
|
75
79
|
| W0104 | 1 | 20 |
|
76
80
|
| W0834 | 1 | 10 |
|
@@ -112,6 +116,8 @@ Feature: W0761
|
|
112
116
|
| W0118 | 1 | 13 |
|
113
117
|
| W0117 | 3 | 6 |
|
114
118
|
| W1049 | 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: W0761
|
|
147
153
|
| mesg | line | column |
|
148
154
|
| W0117 | 1 | 5 |
|
149
155
|
| W1049 | 3 | 12 |
|
156
|
+
| C1000 | | |
|
157
|
+
| C1006 | 1 | 19 |
|
150
158
|
| W0104 | 1 | 19 |
|
151
159
|
| W0834 | 1 | 9 |
|
152
160
|
| W0628 | 1 | 5 |
|
@@ -33,6 +33,8 @@ Feature: W0762
|
|
33
33
|
| mesg | line | column |
|
34
34
|
| W0117 | 1 | 6 |
|
35
35
|
| W1049 | 3 | 14 |
|
36
|
+
| C1000 | | |
|
37
|
+
| C1006 | 1 | 20 |
|
36
38
|
| W0100 | 3 | 10 |
|
37
39
|
| W0104 | 1 | 20 |
|
38
40
|
| W0834 | 1 | 10 |
|
@@ -71,6 +73,8 @@ Feature: W0762
|
|
71
73
|
| mesg | line | column |
|
72
74
|
| W0117 | 1 | 6 |
|
73
75
|
| W1049 | 4 | 9 |
|
76
|
+
| C1000 | | |
|
77
|
+
| C1006 | 1 | 20 |
|
74
78
|
| W0100 | 3 | 10 |
|
75
79
|
| W0104 | 1 | 20 |
|
76
80
|
| W0834 | 1 | 10 |
|
@@ -112,6 +116,8 @@ Feature: W0762
|
|
112
116
|
| W0118 | 1 | 13 |
|
113
117
|
| W0117 | 3 | 6 |
|
114
118
|
| W1049 | 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: W0762
|
|
147
153
|
| mesg | line | column |
|
148
154
|
| W0117 | 1 | 6 |
|
149
155
|
| W1049 | 3 | 12 |
|
156
|
+
| C1000 | | |
|
157
|
+
| C1006 | 1 | 20 |
|
150
158
|
| W0104 | 1 | 20 |
|
151
159
|
| W0834 | 1 | 10 |
|
152
160
|
| W0628 | 1 | 6 |
|
@@ -15,6 +15,8 @@ Feature: W0794
|
|
15
15
|
| mesg | line | column |
|
16
16
|
| W0117 | 1 | 5 |
|
17
17
|
| W0570 | 3 | 14 |
|
18
|
+
| C1000 | | |
|
19
|
+
| C1006 | 1 | 14 |
|
18
20
|
| W0572 | 3 | 14 |
|
19
21
|
| W0794 | 3 | 14 |
|
20
22
|
| W0104 | 1 | 14 |
|
@@ -50,6 +52,8 @@ Feature: W0794
|
|
50
52
|
| mesg | line | column |
|
51
53
|
| W0117 | 1 | 14 |
|
52
54
|
| W0116 | 3 | 15 |
|
55
|
+
| C1000 | | |
|
56
|
+
| C1006 | 1 | 32 |
|
53
57
|
| W0104 | 1 | 32 |
|
54
58
|
| W0628 | 1 | 14 |
|
55
59
|
|
@@ -83,5 +87,7 @@ Feature: W0794
|
|
83
87
|
| W0117 | 1 | 5 |
|
84
88
|
| W0246 | 3 | 12 |
|
85
89
|
| W0116 | 3 | 15 |
|
90
|
+
| C1000 | | |
|
91
|
+
| C1006 | 1 | 24 |
|
86
92
|
| W0104 | 1 | 24 |
|
87
93
|
| W0628 | 1 | 5 |
|
@@ -32,9 +32,17 @@ Feature: W1050
|
|
32
32
|
| mesg | line | column |
|
33
33
|
| W1076 | 1 | 13 |
|
34
34
|
| W1050 | 4 | 31 |
|
35
|
+
| C1000 | | |
|
36
|
+
| C1006 | 1 | 27 |
|
35
37
|
| W1050 | 7 | 31 |
|
38
|
+
| C1000 | | |
|
39
|
+
| C1006 | 1 | 27 |
|
36
40
|
| W1049 | 11 | 31 |
|
41
|
+
| C1000 | | |
|
42
|
+
| C1006 | 1 | 27 |
|
37
43
|
| W1049 | 14 | 31 |
|
44
|
+
| C1000 | | |
|
45
|
+
| C1006 | 1 | 27 |
|
38
46
|
| W0629 | 1 | 13 |
|
39
47
|
| W0489 | 17 | 9 |
|
40
48
|
| W0490 | 17 | 9 |
|
@@ -27,6 +27,8 @@ Feature: W1066
|
|
27
27
|
| W0723 | 6 | 21 |
|
28
28
|
| W1066 | 6 | 21 |
|
29
29
|
| W0093 | 7 | 21 |
|
30
|
+
| C1000 | | |
|
31
|
+
| C1006 | 1 | 33 |
|
30
32
|
| W1066 | 7 | 21 |
|
31
33
|
| W0104 | 1 | 24 |
|
32
34
|
| W0104 | 1 | 33 |
|
@@ -51,7 +53,11 @@ Feature: W1066
|
|
51
53
|
| mesg | line | column |
|
52
54
|
| W1076 | 1 | 13 |
|
53
55
|
| W0093 | 4 | 21 |
|
56
|
+
| C1000 | | |
|
57
|
+
| C1006 | 1 | 33 |
|
54
58
|
| W0570 | 6 | 21 |
|
59
|
+
| C1000 | | |
|
60
|
+
| C1006 | 1 | 24 |
|
55
61
|
| W0572 | 6 | 21 |
|
56
62
|
| W0794 | 6 | 21 |
|
57
63
|
| W0572 | 7 | 21 |
|
@@ -83,6 +89,8 @@ Feature: W1066
|
|
83
89
|
| W0723 | 6 | 11 |
|
84
90
|
| W0777 | 6 | 11 |
|
85
91
|
| W0093 | 7 | 11 |
|
92
|
+
| C1000 | | |
|
93
|
+
| C1006 | 1 | 33 |
|
86
94
|
| W0777 | 7 | 11 |
|
87
95
|
| W0104 | 1 | 24 |
|
88
96
|
| W0104 | 1 | 33 |
|
@@ -27,6 +27,8 @@ Feature: W1067
|
|
27
27
|
| W0723 | 6 | 26 |
|
28
28
|
| W1067 | 6 | 26 |
|
29
29
|
| W0093 | 7 | 26 |
|
30
|
+
| C1000 | | |
|
31
|
+
| C1006 | 1 | 33 |
|
30
32
|
| W1067 | 7 | 26 |
|
31
33
|
| W0104 | 1 | 24 |
|
32
34
|
| W0104 | 1 | 33 |
|
@@ -51,7 +53,11 @@ Feature: W1067
|
|
51
53
|
| mesg | line | column |
|
52
54
|
| W1076 | 1 | 13 |
|
53
55
|
| W0093 | 4 | 26 |
|
56
|
+
| C1000 | | |
|
57
|
+
| C1006 | 1 | 33 |
|
54
58
|
| W0570 | 6 | 26 |
|
59
|
+
| C1000 | | |
|
60
|
+
| C1006 | 1 | 24 |
|
55
61
|
| W0572 | 6 | 26 |
|
56
62
|
| W0794 | 6 | 26 |
|
57
63
|
| W0572 | 7 | 26 |
|
@@ -83,6 +89,8 @@ Feature: W1067
|
|
83
89
|
| W0723 | 6 | 11 |
|
84
90
|
| W0778 | 6 | 11 |
|
85
91
|
| W0093 | 7 | 11 |
|
92
|
+
| C1000 | | |
|
93
|
+
| C1006 | 1 | 33 |
|
86
94
|
| W0778 | 7 | 11 |
|
87
95
|
| W0104 | 1 | 24 |
|
88
96
|
| W0104 | 1 | 33 |
|
@@ -27,6 +27,8 @@ Feature: W1068
|
|
27
27
|
| W0723 | 6 | 26 |
|
28
28
|
| W1068 | 6 | 26 |
|
29
29
|
| W0093 | 7 | 26 |
|
30
|
+
| C1000 | | |
|
31
|
+
| C1006 | 1 | 35 |
|
30
32
|
| W1068 | 7 | 26 |
|
31
33
|
| W0104 | 1 | 25 |
|
32
34
|
| W0104 | 1 | 35 |
|
@@ -51,7 +53,11 @@ Feature: W1068
|
|
51
53
|
| mesg | line | column |
|
52
54
|
| W1076 | 1 | 13 |
|
53
55
|
| W0093 | 4 | 26 |
|
56
|
+
| C1000 | | |
|
57
|
+
| C1006 | 1 | 35 |
|
54
58
|
| W0570 | 6 | 26 |
|
59
|
+
| C1000 | | |
|
60
|
+
| C1006 | 1 | 25 |
|
55
61
|
| W0572 | 6 | 26 |
|
56
62
|
| W0794 | 6 | 26 |
|
57
63
|
| W0572 | 7 | 26 |
|
@@ -83,6 +89,8 @@ Feature: W1068
|
|
83
89
|
| W0723 | 6 | 11 |
|
84
90
|
| W0779 | 6 | 11 |
|
85
91
|
| W0093 | 7 | 11 |
|
92
|
+
| C1000 | | |
|
93
|
+
| C1006 | 1 | 35 |
|
86
94
|
| W0779 | 7 | 11 |
|
87
95
|
| W0104 | 1 | 25 |
|
88
96
|
| W0104 | 1 | 35 |
|
@@ -101,7 +101,11 @@ Feature: W1071
|
|
101
101
|
| mesg | line | column |
|
102
102
|
| W1076 | 6 | 13 |
|
103
103
|
| W0422 | 9 | 22 |
|
104
|
+
| C1000 | | |
|
105
|
+
| C1005 | 6 | 29 |
|
104
106
|
| W0422 | 10 | 14 |
|
107
|
+
| C1000 | | |
|
108
|
+
| C1005 | 6 | 29 |
|
105
109
|
| W0104 | 6 | 29 |
|
106
110
|
| W0105 | 6 | 29 |
|
107
111
|
| W1071 | 6 | 13 |
|
data/lib/adlint/cc1.rb
CHANGED
data/lib/adlint/cc1/branch.rb
CHANGED
@@ -42,12 +42,16 @@ module Cc1 #:nodoc:
|
|
42
42
|
@group = branch_group
|
43
43
|
@options = opts
|
44
44
|
@break_event = nil
|
45
|
-
@
|
45
|
+
@ctrlexpr = nil
|
46
46
|
end
|
47
47
|
|
48
48
|
attr_reader :group
|
49
49
|
attr_reader :break_event
|
50
|
-
attr_reader :
|
50
|
+
attr_reader :ctrlexpr
|
51
|
+
|
52
|
+
def trunk
|
53
|
+
@group.trunk
|
54
|
+
end
|
51
55
|
|
52
56
|
def add_options(*new_opts)
|
53
57
|
@options = (@options + new_opts).uniq
|
@@ -86,8 +90,8 @@ module Cc1 #:nodoc:
|
|
86
90
|
env.enter_versioning_group if first?
|
87
91
|
env.begin_versioning
|
88
92
|
|
89
|
-
@
|
90
|
-
if ensure_condition(@
|
93
|
+
@ctrlexpr = ControllingExpression.new(interp, self, expr)
|
94
|
+
if ensure_condition(@ctrlexpr)
|
91
95
|
@break_event = BreakEvent.catch { yield(self) }
|
92
96
|
else
|
93
97
|
unless final? && @group.branches.size == 1
|
@@ -96,7 +100,7 @@ module Cc1 #:nodoc:
|
|
96
100
|
end
|
97
101
|
|
98
102
|
ensure
|
99
|
-
if @
|
103
|
+
if @ctrlexpr.complexly_compounded? && !complemental?
|
100
104
|
# NOTE: Give up value domain thinning of the controlling variables,
|
101
105
|
# because the controlling expression is too complex to manage
|
102
106
|
# value domains correctly.
|
@@ -125,13 +129,13 @@ module Cc1 #:nodoc:
|
|
125
129
|
end
|
126
130
|
|
127
131
|
def restart_versioning(&block)
|
128
|
-
@
|
132
|
+
@ctrlexpr.save_affected_variables
|
129
133
|
env.end_versioning(false)
|
130
134
|
env.leave_versioning_group(true)
|
131
135
|
env.enter_versioning_group
|
132
136
|
env.begin_versioning
|
133
137
|
yield
|
134
|
-
@
|
138
|
+
@ctrlexpr.restore_affected_variables
|
135
139
|
end
|
136
140
|
|
137
141
|
def break_with_break?
|
@@ -175,17 +179,30 @@ module Cc1 #:nodoc:
|
|
175
179
|
include BranchOptions
|
176
180
|
include BranchGroupOptions
|
177
181
|
|
178
|
-
def initialize(env,
|
182
|
+
def initialize(env, trunk, *opts)
|
179
183
|
@environment = env
|
180
|
-
@
|
184
|
+
@trunk = trunk
|
181
185
|
@options = opts
|
182
186
|
@branches = []
|
183
187
|
end
|
184
188
|
|
185
189
|
attr_reader :environment
|
186
|
-
attr_reader :
|
190
|
+
attr_reader :trunk
|
187
191
|
attr_reader :branches
|
188
192
|
|
193
|
+
def trunk_group
|
194
|
+
@trunk ? @trunk.group : nil
|
195
|
+
end
|
196
|
+
|
197
|
+
def branches_to_trunk(acc = [])
|
198
|
+
if @trunk
|
199
|
+
acc.push(@trunk)
|
200
|
+
@trunk.group.branches_to_trunk(acc)
|
201
|
+
else
|
202
|
+
acc
|
203
|
+
end
|
204
|
+
end
|
205
|
+
|
189
206
|
def add_options(*new_opts)
|
190
207
|
@options = (@options + new_opts).uniq
|
191
208
|
end
|
@@ -199,10 +216,10 @@ module Cc1 #:nodoc:
|
|
199
216
|
end
|
200
217
|
|
201
218
|
def in_iteration?
|
202
|
-
branch_group =
|
219
|
+
branch_group = trunk_group
|
203
220
|
while branch_group
|
204
221
|
return true if branch_group.iteration?
|
205
|
-
branch_group = branch_group.
|
222
|
+
branch_group = branch_group.trunk_group
|
206
223
|
end
|
207
224
|
false
|
208
225
|
end
|
@@ -219,7 +236,7 @@ module Cc1 #:nodoc:
|
|
219
236
|
|
220
237
|
def all_controlling_variables
|
221
238
|
@branches.map { |br|
|
222
|
-
ctrlexpr = br.
|
239
|
+
ctrlexpr = br.ctrlexpr and ctrlexpr.affected_variables
|
223
240
|
}.compact.flatten.uniq
|
224
241
|
end
|
225
242
|
|
@@ -238,6 +255,10 @@ module Cc1 #:nodoc:
|
|
238
255
|
def all_branches_break_with_return?
|
239
256
|
@branches.all? { |br| br.break_with_return? }
|
240
257
|
end
|
258
|
+
|
259
|
+
def current_branch
|
260
|
+
@branches.last
|
261
|
+
end
|
241
262
|
end
|
242
263
|
|
243
264
|
class BreakEvent
|