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
@@ -46,8 +46,8 @@ module Cc1
|
|
46
46
|
@symbol_table = SymbolTable.new
|
47
47
|
@type_table = TypeTable.new(@adlint.traits, @monitor, @logger)
|
48
48
|
@interpreter = Interpreter.new(@type_table)
|
49
|
-
@int_i = @interpreter.define_variable(int_i_def)
|
50
|
-
@int_j = @interpreter.define_variable(int_j_def)
|
49
|
+
@int_i = @interpreter.define_variable(int_i_def, nil)
|
50
|
+
@int_j = @interpreter.define_variable(int_j_def, nil)
|
51
51
|
end
|
52
52
|
|
53
53
|
context "`int i = ((> 0) && (< 10)) || (== 0)' and " +
|
@@ -63,9 +63,12 @@ module Cc1
|
|
63
63
|
"and should not contain 10" do
|
64
64
|
expr = EqualityExpression.new(eq_op, i_spec, j_spec)
|
65
65
|
branched_eval(expr, NARROWING, FINAL) do
|
66
|
-
@int_i.value.
|
67
|
-
|
68
|
-
@int_i.value.
|
66
|
+
@int_i.value.test_may_be_equal_to(
|
67
|
+
scalar_value_of(0)).result.should be_true
|
68
|
+
@int_i.value.test_may_be_equal_to(
|
69
|
+
scalar_value_of(9)).result.should be_true
|
70
|
+
@int_i.value.test_may_be_equal_to(
|
71
|
+
scalar_value_of(10)).result.should be_false
|
69
72
|
end
|
70
73
|
end
|
71
74
|
|
@@ -73,9 +76,12 @@ module Cc1
|
|
73
76
|
"and should not contain 10" do
|
74
77
|
expr = EqualityExpression.new(ne_op, i_spec, j_spec)
|
75
78
|
branched_eval(expr, NARROWING, FINAL) do
|
76
|
-
@int_i.value.
|
77
|
-
|
78
|
-
@int_i.value.
|
79
|
+
@int_i.value.test_may_be_equal_to(
|
80
|
+
scalar_value_of(0)).result.should be_true
|
81
|
+
@int_i.value.test_may_be_equal_to(
|
82
|
+
scalar_value_of(9)).result.should be_true
|
83
|
+
@int_i.value.test_may_be_equal_to(
|
84
|
+
scalar_value_of(10)).result.should be_false
|
79
85
|
end
|
80
86
|
end
|
81
87
|
end
|
@@ -93,9 +99,12 @@ module Cc1
|
|
93
99
|
"and should not contain 0" do
|
94
100
|
expr = EqualityExpression.new(eq_op, i_spec, j_spec)
|
95
101
|
branched_eval(expr, NARROWING, FINAL) do
|
96
|
-
@int_i.value.
|
97
|
-
|
98
|
-
@int_i.value.
|
102
|
+
@int_i.value.test_may_be_equal_to(
|
103
|
+
scalar_value_of(3)).result.should be_true
|
104
|
+
@int_i.value.test_may_be_equal_to(
|
105
|
+
scalar_value_of(4)).result.should be_true
|
106
|
+
@int_i.value.test_may_be_equal_to(
|
107
|
+
scalar_value_of(0)).result.should be_false
|
99
108
|
end
|
100
109
|
end
|
101
110
|
end
|
@@ -834,6 +834,15 @@ module Cc1
|
|
834
834
|
# (subject / rhs).to_s.should == "((< 10) && (> 0))"
|
835
835
|
#end
|
836
836
|
end
|
837
|
+
|
838
|
+
context "(== 0)" do
|
839
|
+
subject { value_domain_equal_to(0) }
|
840
|
+
|
841
|
+
it "narrowed by == ((== 3) || (== 4)) should be (== Nil)" do
|
842
|
+
rhs = value_domain_equal_to(3).union(value_domain_equal_to(4))
|
843
|
+
subject.narrow(Operator::EQ, rhs).to_s.should == "(== Nil)"
|
844
|
+
end
|
845
|
+
end
|
837
846
|
end
|
838
847
|
|
839
848
|
private
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: adlint
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.0
|
4
|
+
version: 3.2.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-
|
12
|
+
date: 2013-08-28 00:00:00.000000000 Z
|
13
13
|
dependencies: []
|
14
14
|
description: ! 'AdLint is a source code static analyzer.
|
15
15
|
|
@@ -255,6 +255,7 @@ files:
|
|
255
255
|
- features/code_check/W0502.feature
|
256
256
|
- features/code_check/W0534.feature
|
257
257
|
- features/code_check/W0542.feature
|
258
|
+
- features/code_check/W0570.feature
|
258
259
|
- features/code_check/W0573.feature
|
259
260
|
- features/code_check/W0580.feature
|
260
261
|
- features/code_check/W0582.feature
|
@@ -419,6 +420,7 @@ files:
|
|
419
420
|
- lib/adlint/cc1/scope.rb
|
420
421
|
- lib/adlint/cc1/seqp.rb
|
421
422
|
- lib/adlint/cc1/syntax.rb
|
423
|
+
- lib/adlint/cc1/trace.rb
|
422
424
|
- lib/adlint/cc1/type.rb
|
423
425
|
- lib/adlint/cc1/util.rb
|
424
426
|
- lib/adlint/cc1/value.rb
|