[SMTChecker] Report values for block, msg and tx variables in counterexamples

This commit is contained in:
Leo Alt
2021-10-05 15:19:10 +02:00
parent ecfcca1a27
commit 4c2b661eaa
105 changed files with 390 additions and 250 deletions
@@ -1,13 +1,13 @@
Warning: CHC: Underflow (resulting value less than 0) happens here.
Counterexample:
arr = []
a = 0
a = 0x0
x = 0
Transaction trace:
test.constructor()
State: arr = []
test.f(0, 0)
test.f(0x0, 0)
--> model_checker_targets_all_all_engines/input.sol:7:3:
|
7 | --x;
@@ -16,13 +16,13 @@ test.f(0, 0)
Warning: CHC: Overflow (resulting value larger than 2**256 - 1) happens here.
Counterexample:
arr = []
a = 0
a = 0x0
x = 1
Transaction trace:
test.constructor()
State: arr = []
test.f(0, 2)
test.f(0x0, 2)
--> model_checker_targets_all_all_engines/input.sol:8:3:
|
8 | x + type(uint).max;
@@ -31,13 +31,13 @@ test.f(0, 2)
Warning: CHC: Division by zero happens here.
Counterexample:
arr = []
a = 0
a = 0x0
x = 0
Transaction trace:
test.constructor()
State: arr = []
test.f(0, 1)
test.f(0x0, 1)
--> model_checker_targets_all_all_engines/input.sol:9:3:
|
9 | 2 / x;
@@ -46,13 +46,13 @@ test.f(0, 1)
Warning: CHC: Assertion violation happens here.
Counterexample:
arr = []
a = 0
a = 0x0
x = 0
Transaction trace:
test.constructor()
State: arr = []
test.f(0, 1)
test.f(0x0, 1)
--> model_checker_targets_all_all_engines/input.sol:11:3:
|
11 | assert(x > 0);
@@ -61,13 +61,13 @@ test.f(0, 1)
Warning: CHC: Empty array "pop" happens here.
Counterexample:
arr = []
a = 0
a = 0x0
x = 0
Transaction trace:
test.constructor()
State: arr = []
test.f(0, 1)
test.f(0x0, 1)
--> model_checker_targets_all_all_engines/input.sol:12:3:
|
12 | arr.pop();
@@ -76,13 +76,13 @@ test.f(0, 1)
Warning: CHC: Out of bounds access happens here.
Counterexample:
arr = []
a = 0
a = 0x0
x = 0
Transaction trace:
test.constructor()
State: arr = []
test.f(0, 1)
test.f(0x0, 1)
--> model_checker_targets_all_all_engines/input.sol:13:3:
|
13 | arr[x];
@@ -1,13 +1,13 @@
Warning: CHC: Underflow (resulting value less than 0) happens here.
Counterexample:
arr = []
a = 0
a = 0x0
x = 0
Transaction trace:
test.constructor()
State: arr = []
test.f(0, 0)
test.f(0x0, 0)
--> model_checker_targets_all_chc/input.sol:7:3:
|
7 | --x;
@@ -16,13 +16,13 @@ test.f(0, 0)
Warning: CHC: Overflow (resulting value larger than 2**256 - 1) happens here.
Counterexample:
arr = []
a = 0
a = 0x0
x = 1
Transaction trace:
test.constructor()
State: arr = []
test.f(0, 2)
test.f(0x0, 2)
--> model_checker_targets_all_chc/input.sol:8:3:
|
8 | x + type(uint).max;
@@ -31,13 +31,13 @@ test.f(0, 2)
Warning: CHC: Division by zero happens here.
Counterexample:
arr = []
a = 0
a = 0x0
x = 0
Transaction trace:
test.constructor()
State: arr = []
test.f(0, 1)
test.f(0x0, 1)
--> model_checker_targets_all_chc/input.sol:9:3:
|
9 | 2 / x;
@@ -46,13 +46,13 @@ test.f(0, 1)
Warning: CHC: Assertion violation happens here.
Counterexample:
arr = []
a = 0
a = 0x0
x = 0
Transaction trace:
test.constructor()
State: arr = []
test.f(0, 1)
test.f(0x0, 1)
--> model_checker_targets_all_chc/input.sol:11:3:
|
11 | assert(x > 0);
@@ -61,13 +61,13 @@ test.f(0, 1)
Warning: CHC: Empty array "pop" happens here.
Counterexample:
arr = []
a = 0
a = 0x0
x = 0
Transaction trace:
test.constructor()
State: arr = []
test.f(0, 1)
test.f(0x0, 1)
--> model_checker_targets_all_chc/input.sol:12:3:
|
12 | arr.pop();
@@ -76,13 +76,13 @@ test.f(0, 1)
Warning: CHC: Out of bounds access happens here.
Counterexample:
arr = []
a = 0
a = 0x0
x = 0
Transaction trace:
test.constructor()
State: arr = []
test.f(0, 1)
test.f(0x0, 1)
--> model_checker_targets_all_chc/input.sol:13:3:
|
13 | arr[x];
@@ -1,13 +1,13 @@
Warning: CHC: Assertion violation happens here.
Counterexample:
arr = []
a = 0
a = 0x0
x = 0
Transaction trace:
test.constructor()
State: arr = []
test.f(0, 1)
test.f(0x0, 1)
--> model_checker_targets_assert_chc/input.sol:11:3:
|
11 | assert(x > 0);
@@ -1,13 +1,13 @@
Warning: CHC: Division by zero happens here.
Counterexample:
arr = []
a = 0
a = 0x0
x = 0
Transaction trace:
test.constructor()
State: arr = []
test.f(0, 1)
test.f(0x0, 1)
--> model_checker_targets_default_all_engines/input.sol:9:3:
|
9 | 2 / x;
@@ -16,13 +16,13 @@ test.f(0, 1)
Warning: CHC: Assertion violation happens here.
Counterexample:
arr = []
a = 0
a = 0x0
x = 0
Transaction trace:
test.constructor()
State: arr = []
test.f(0, 1)
test.f(0x0, 1)
--> model_checker_targets_default_all_engines/input.sol:11:3:
|
11 | assert(x > 0);
@@ -31,13 +31,13 @@ test.f(0, 1)
Warning: CHC: Empty array "pop" happens here.
Counterexample:
arr = []
a = 0
a = 0x0
x = 0
Transaction trace:
test.constructor()
State: arr = []
test.f(0, 1)
test.f(0x0, 1)
--> model_checker_targets_default_all_engines/input.sol:12:3:
|
12 | arr.pop();
@@ -46,13 +46,13 @@ test.f(0, 1)
Warning: CHC: Out of bounds access happens here.
Counterexample:
arr = []
a = 0
a = 0x0
x = 0
Transaction trace:
test.constructor()
State: arr = []
test.f(0, 1)
test.f(0x0, 1)
--> model_checker_targets_default_all_engines/input.sol:13:3:
|
13 | arr[x];
@@ -1,13 +1,13 @@
Warning: CHC: Division by zero happens here.
Counterexample:
arr = []
a = 0
a = 0x0
x = 0
Transaction trace:
test.constructor()
State: arr = []
test.f(0, 1)
test.f(0x0, 1)
--> model_checker_targets_default_chc/input.sol:9:3:
|
9 | 2 / x;
@@ -16,13 +16,13 @@ test.f(0, 1)
Warning: CHC: Assertion violation happens here.
Counterexample:
arr = []
a = 0
a = 0x0
x = 0
Transaction trace:
test.constructor()
State: arr = []
test.f(0, 1)
test.f(0x0, 1)
--> model_checker_targets_default_chc/input.sol:11:3:
|
11 | assert(x > 0);
@@ -31,13 +31,13 @@ test.f(0, 1)
Warning: CHC: Empty array "pop" happens here.
Counterexample:
arr = []
a = 0
a = 0x0
x = 0
Transaction trace:
test.constructor()
State: arr = []
test.f(0, 1)
test.f(0x0, 1)
--> model_checker_targets_default_chc/input.sol:12:3:
|
12 | arr.pop();
@@ -46,13 +46,13 @@ test.f(0, 1)
Warning: CHC: Out of bounds access happens here.
Counterexample:
arr = []
a = 0
a = 0x0
x = 0
Transaction trace:
test.constructor()
State: arr = []
test.f(0, 1)
test.f(0x0, 1)
--> model_checker_targets_default_chc/input.sol:13:3:
|
13 | arr[x];
@@ -1,13 +1,13 @@
Warning: CHC: Division by zero happens here.
Counterexample:
arr = []
a = 0
a = 0x0
x = 0
Transaction trace:
test.constructor()
State: arr = []
test.f(0, 1)
test.f(0x0, 1)
--> model_checker_targets_div_by_zero_chc/input.sol:9:3:
|
9 | 2 / x;
@@ -1,13 +1,13 @@
Warning: CHC: Out of bounds access happens here.
Counterexample:
arr = []
a = 0
a = 0x0
x = 0
Transaction trace:
test.constructor()
State: arr = []
test.f(0, 1)
test.f(0x0, 1)
--> model_checker_targets_out_of_bounds_chc/input.sol:13:3:
|
13 | arr[x];
@@ -1,13 +1,13 @@
Warning: CHC: Overflow (resulting value larger than 2**256 - 1) happens here.
Counterexample:
arr = []
a = 0
a = 0x0
x = 1
Transaction trace:
test.constructor()
State: arr = []
test.f(0, 2)
test.f(0x0, 2)
--> model_checker_targets_overflow_chc/input.sol:8:3:
|
8 | x + type(uint).max;
@@ -1,13 +1,13 @@
Warning: CHC: Empty array "pop" happens here.
Counterexample:
arr = []
a = 0
a = 0x0
x = 0
Transaction trace:
test.constructor()
State: arr = []
test.f(0, 1)
test.f(0x0, 1)
--> model_checker_targets_pop_empty_chc/input.sol:12:3:
|
12 | arr.pop();
@@ -1,13 +1,13 @@
Warning: CHC: Underflow (resulting value less than 0) happens here.
Counterexample:
arr = []
a = 0
a = 0x0
x = 0
Transaction trace:
test.constructor()
State: arr = []
test.f(0, 0)
test.f(0x0, 0)
--> model_checker_targets_underflow_chc/input.sol:7:3:
|
7 | --x;
@@ -1,13 +1,13 @@
Warning: CHC: Underflow (resulting value less than 0) happens here.
Counterexample:
arr = []
a = 0
a = 0x0
x = 0
Transaction trace:
test.constructor()
State: arr = []
test.f(0, 0)
test.f(0x0, 0)
--> model_checker_targets_underflow_overflow_assert_chc/input.sol:7:3:
|
7 | --x;
@@ -16,13 +16,13 @@ test.f(0, 0)
Warning: CHC: Overflow (resulting value larger than 2**256 - 1) happens here.
Counterexample:
arr = []
a = 0
a = 0x0
x = 1
Transaction trace:
test.constructor()
State: arr = []
test.f(0, 2)
test.f(0x0, 2)
--> model_checker_targets_underflow_overflow_assert_chc/input.sol:8:3:
|
8 | x + type(uint).max;
@@ -31,13 +31,13 @@ test.f(0, 2)
Warning: CHC: Assertion violation happens here.
Counterexample:
arr = []
a = 0
a = 0x0
x = 0
Transaction trace:
test.constructor()
State: arr = []
test.f(0, 1)
test.f(0x0, 1)
--> model_checker_targets_underflow_overflow_assert_chc/input.sol:11:3:
|
11 | assert(x > 0);
@@ -1,13 +1,13 @@
Warning: CHC: Underflow (resulting value less than 0) happens here.
Counterexample:
arr = []
a = 0
a = 0x0
x = 0
Transaction trace:
test.constructor()
State: arr = []
test.f(0, 0)
test.f(0x0, 0)
--> model_checker_targets_underflow_overflow_chc/input.sol:7:3:
|
7 | --x;
@@ -16,13 +16,13 @@ test.f(0, 0)
Warning: CHC: Overflow (resulting value larger than 2**256 - 1) happens here.
Counterexample:
arr = []
a = 0
a = 0x0
x = 1
Transaction trace:
test.constructor()
State: arr = []
test.f(0, 2)
test.f(0x0, 2)
--> model_checker_targets_underflow_overflow_chc/input.sol:8:3:
|
8 | x + type(uint).max;
@@ -1,13 +1,13 @@
{"errors":[{"component":"general","errorCode":"6328","formattedMessage":"Warning: CHC: Assertion violation happens here.
Counterexample:
arr = []
a = 0
a = 0x0
x = 0
Transaction trace:
test.constructor()
State: arr = []
test.f(0, 1)
test.f(0x0, 1)
--> A:12:7:
|
12 | \t\t\t\t\t\tassert(x > 0);
@@ -16,10 +16,10 @@ test.f(0, 1)
","message":"CHC: Assertion violation happens here.
Counterexample:
arr = []
a = 0
a = 0x0
x = 0
Transaction trace:
test.constructor()
State: arr = []
test.f(0, 1)","severity":"warning","sourceLocation":{"end":258,"file":"A","start":245},"type":"Warning"}],"sources":{"A":{"id":0}}}
test.f(0x0, 1)","severity":"warning","sourceLocation":{"end":258,"file":"A","start":245},"type":"Warning"}],"sources":{"A":{"id":0}}}
@@ -126,13 +126,13 @@
"}},"errors":[{"component":"general","errorCode":"4281","formattedMessage":"Warning: CHC: Division by zero happens here.
Counterexample:
arr = []
a = 0
a = 0x0
x = 0
Transaction trace:
test.constructor()
State: arr = []
test.f(0, 1)
test.f(0x0, 1)
--> A:10:7:
|
10 | \t\t\t\t\t\t2 / x;
@@ -141,22 +141,22 @@ test.f(0, 1)
","message":"CHC: Division by zero happens here.
Counterexample:
arr = []
a = 0
a = 0x0
x = 0
Transaction trace:
test.constructor()
State: arr = []
test.f(0, 1)","severity":"warning","sourceLocation":{"end":216,"file":"A","start":211},"type":"Warning"},{"component":"general","errorCode":"6328","formattedMessage":"Warning: CHC: Assertion violation happens here.
test.f(0x0, 1)","severity":"warning","sourceLocation":{"end":216,"file":"A","start":211},"type":"Warning"},{"component":"general","errorCode":"6328","formattedMessage":"Warning: CHC: Assertion violation happens here.
Counterexample:
arr = []
a = 0
a = 0x0
x = 0
Transaction trace:
test.constructor()
State: arr = []
test.f(0, 1)
test.f(0x0, 1)
--> A:12:7:
|
12 | \t\t\t\t\t\tassert(x > 0);
@@ -165,22 +165,22 @@ test.f(0, 1)
","message":"CHC: Assertion violation happens here.
Counterexample:
arr = []
a = 0
a = 0x0
x = 0
Transaction trace:
test.constructor()
State: arr = []
test.f(0, 1)","severity":"warning","sourceLocation":{"end":258,"file":"A","start":245},"type":"Warning"},{"component":"general","errorCode":"2529","formattedMessage":"Warning: CHC: Empty array \"pop\" happens here.
test.f(0x0, 1)","severity":"warning","sourceLocation":{"end":258,"file":"A","start":245},"type":"Warning"},{"component":"general","errorCode":"2529","formattedMessage":"Warning: CHC: Empty array \"pop\" happens here.
Counterexample:
arr = []
a = 0
a = 0x0
x = 0
Transaction trace:
test.constructor()
State: arr = []
test.f(0, 1)
test.f(0x0, 1)
--> A:13:7:
|
13 | \t\t\t\t\t\tarr.pop();
@@ -189,22 +189,22 @@ test.f(0, 1)
","message":"CHC: Empty array \"pop\" happens here.
Counterexample:
arr = []
a = 0
a = 0x0
x = 0
Transaction trace:
test.constructor()
State: arr = []
test.f(0, 1)","severity":"warning","sourceLocation":{"end":275,"file":"A","start":266},"type":"Warning"},{"component":"general","errorCode":"6368","formattedMessage":"Warning: CHC: Out of bounds access happens here.
test.f(0x0, 1)","severity":"warning","sourceLocation":{"end":275,"file":"A","start":266},"type":"Warning"},{"component":"general","errorCode":"6368","formattedMessage":"Warning: CHC: Out of bounds access happens here.
Counterexample:
arr = []
a = 0
a = 0x0
x = 0
Transaction trace:
test.constructor()
State: arr = []
test.f(0, 1)
test.f(0x0, 1)
--> A:14:7:
|
14 | \t\t\t\t\t\tarr[x];
@@ -213,13 +213,13 @@ test.f(0, 1)
","message":"CHC: Out of bounds access happens here.
Counterexample:
arr = []
a = 0
a = 0x0
x = 0
Transaction trace:
test.constructor()
State: arr = []
test.f(0, 1)","severity":"warning","sourceLocation":{"end":289,"file":"A","start":283},"type":"Warning"},{"component":"general","errorCode":"6838","formattedMessage":"Warning: BMC: Condition is always true.
test.f(0x0, 1)","severity":"warning","sourceLocation":{"end":289,"file":"A","start":283},"type":"Warning"},{"component":"general","errorCode":"6838","formattedMessage":"Warning: BMC: Condition is always true.
--> A:7:15:
|
7 | \t\t\t\t\t\trequire(x >= 0);
@@ -1,13 +1,13 @@
{"errors":[{"component":"general","errorCode":"4281","formattedMessage":"Warning: CHC: Division by zero happens here.
Counterexample:
arr = []
a = 0
a = 0x0
x = 0
Transaction trace:
test.constructor()
State: arr = []
test.f(0, 1)
test.f(0x0, 1)
--> A:10:7:
|
10 | \t\t\t\t\t\t2 / x;
@@ -16,22 +16,22 @@ test.f(0, 1)
","message":"CHC: Division by zero happens here.
Counterexample:
arr = []
a = 0
a = 0x0
x = 0
Transaction trace:
test.constructor()
State: arr = []
test.f(0, 1)","severity":"warning","sourceLocation":{"end":216,"file":"A","start":211},"type":"Warning"},{"component":"general","errorCode":"6328","formattedMessage":"Warning: CHC: Assertion violation happens here.
test.f(0x0, 1)","severity":"warning","sourceLocation":{"end":216,"file":"A","start":211},"type":"Warning"},{"component":"general","errorCode":"6328","formattedMessage":"Warning: CHC: Assertion violation happens here.
Counterexample:
arr = []
a = 0
a = 0x0
x = 0
Transaction trace:
test.constructor()
State: arr = []
test.f(0, 1)
test.f(0x0, 1)
--> A:12:7:
|
12 | \t\t\t\t\t\tassert(x > 0);
@@ -40,22 +40,22 @@ test.f(0, 1)
","message":"CHC: Assertion violation happens here.
Counterexample:
arr = []
a = 0
a = 0x0
x = 0
Transaction trace:
test.constructor()
State: arr = []
test.f(0, 1)","severity":"warning","sourceLocation":{"end":258,"file":"A","start":245},"type":"Warning"},{"component":"general","errorCode":"2529","formattedMessage":"Warning: CHC: Empty array \"pop\" happens here.
test.f(0x0, 1)","severity":"warning","sourceLocation":{"end":258,"file":"A","start":245},"type":"Warning"},{"component":"general","errorCode":"2529","formattedMessage":"Warning: CHC: Empty array \"pop\" happens here.
Counterexample:
arr = []
a = 0
a = 0x0
x = 0
Transaction trace:
test.constructor()
State: arr = []
test.f(0, 1)
test.f(0x0, 1)
--> A:13:7:
|
13 | \t\t\t\t\t\tarr.pop();
@@ -64,22 +64,22 @@ test.f(0, 1)
","message":"CHC: Empty array \"pop\" happens here.
Counterexample:
arr = []
a = 0
a = 0x0
x = 0
Transaction trace:
test.constructor()
State: arr = []
test.f(0, 1)","severity":"warning","sourceLocation":{"end":275,"file":"A","start":266},"type":"Warning"},{"component":"general","errorCode":"6368","formattedMessage":"Warning: CHC: Out of bounds access happens here.
test.f(0x0, 1)","severity":"warning","sourceLocation":{"end":275,"file":"A","start":266},"type":"Warning"},{"component":"general","errorCode":"6368","formattedMessage":"Warning: CHC: Out of bounds access happens here.
Counterexample:
arr = []
a = 0
a = 0x0
x = 0
Transaction trace:
test.constructor()
State: arr = []
test.f(0, 1)
test.f(0x0, 1)
--> A:14:7:
|
14 | \t\t\t\t\t\tarr[x];
@@ -88,10 +88,10 @@ test.f(0, 1)
","message":"CHC: Out of bounds access happens here.
Counterexample:
arr = []
a = 0
a = 0x0
x = 0
Transaction trace:
test.constructor()
State: arr = []
test.f(0, 1)","severity":"warning","sourceLocation":{"end":289,"file":"A","start":283},"type":"Warning"}],"sources":{"A":{"id":0}}}
test.f(0x0, 1)","severity":"warning","sourceLocation":{"end":289,"file":"A","start":283},"type":"Warning"}],"sources":{"A":{"id":0}}}
@@ -1,13 +1,13 @@
{"errors":[{"component":"general","errorCode":"4281","formattedMessage":"Warning: CHC: Division by zero happens here.
Counterexample:
arr = []
a = 0
a = 0x0
x = 0
Transaction trace:
test.constructor()
State: arr = []
test.f(0, 1)
test.f(0x0, 1)
--> A:10:7:
|
10 | \t\t\t\t\t\t2 / x;
@@ -16,10 +16,10 @@ test.f(0, 1)
","message":"CHC: Division by zero happens here.
Counterexample:
arr = []
a = 0
a = 0x0
x = 0
Transaction trace:
test.constructor()
State: arr = []
test.f(0, 1)","severity":"warning","sourceLocation":{"end":216,"file":"A","start":211},"type":"Warning"}],"sources":{"A":{"id":0}}}
test.f(0x0, 1)","severity":"warning","sourceLocation":{"end":216,"file":"A","start":211},"type":"Warning"}],"sources":{"A":{"id":0}}}
@@ -1,13 +1,13 @@
{"errors":[{"component":"general","errorCode":"6368","formattedMessage":"Warning: CHC: Out of bounds access happens here.
Counterexample:
arr = []
a = 0
a = 0x0
x = 0
Transaction trace:
test.constructor()
State: arr = []
test.f(0, 1)
test.f(0x0, 1)
--> A:14:7:
|
14 | \t\t\t\t\t\tarr[x];
@@ -16,10 +16,10 @@ test.f(0, 1)
","message":"CHC: Out of bounds access happens here.
Counterexample:
arr = []
a = 0
a = 0x0
x = 0
Transaction trace:
test.constructor()
State: arr = []
test.f(0, 1)","severity":"warning","sourceLocation":{"end":289,"file":"A","start":283},"type":"Warning"}],"sources":{"A":{"id":0}}}
test.f(0x0, 1)","severity":"warning","sourceLocation":{"end":289,"file":"A","start":283},"type":"Warning"}],"sources":{"A":{"id":0}}}
@@ -1,13 +1,13 @@
{"errors":[{"component":"general","errorCode":"4984","formattedMessage":"Warning: CHC: Overflow (resulting value larger than 2**256 - 1) happens here.
Counterexample:
arr = []
a = 0
a = 0x0
x = 1
Transaction trace:
test.constructor()
State: arr = []
test.f(0, 2)
test.f(0x0, 2)
--> A:9:7:
|
9 | \t\t\t\t\t\tx + type(uint).max;
@@ -16,10 +16,10 @@ test.f(0, 2)
","message":"CHC: Overflow (resulting value larger than 2**256 - 1) happens here.
Counterexample:
arr = []
a = 0
a = 0x0
x = 1
Transaction trace:
test.constructor()
State: arr = []
test.f(0, 2)","severity":"warning","sourceLocation":{"end":203,"file":"A","start":185},"type":"Warning"}],"sources":{"A":{"id":0}}}
test.f(0x0, 2)","severity":"warning","sourceLocation":{"end":203,"file":"A","start":185},"type":"Warning"}],"sources":{"A":{"id":0}}}
@@ -1,13 +1,13 @@
{"errors":[{"component":"general","errorCode":"2529","formattedMessage":"Warning: CHC: Empty array \"pop\" happens here.
Counterexample:
arr = []
a = 0
a = 0x0
x = 0
Transaction trace:
test.constructor()
State: arr = []
test.f(0, 1)
test.f(0x0, 1)
--> A:13:7:
|
13 | \t\t\t\t\t\tarr.pop();
@@ -16,10 +16,10 @@ test.f(0, 1)
","message":"CHC: Empty array \"pop\" happens here.
Counterexample:
arr = []
a = 0
a = 0x0
x = 0
Transaction trace:
test.constructor()
State: arr = []
test.f(0, 1)","severity":"warning","sourceLocation":{"end":275,"file":"A","start":266},"type":"Warning"}],"sources":{"A":{"id":0}}}
test.f(0x0, 1)","severity":"warning","sourceLocation":{"end":275,"file":"A","start":266},"type":"Warning"}],"sources":{"A":{"id":0}}}
@@ -1,13 +1,13 @@
{"errors":[{"component":"general","errorCode":"3944","formattedMessage":"Warning: CHC: Underflow (resulting value less than 0) happens here.
Counterexample:
arr = []
a = 0
a = 0x0
x = 0
Transaction trace:
test.constructor()
State: arr = []
test.f(0, 0)
test.f(0x0, 0)
--> A:8:7:
|
8 | \t\t\t\t\t\t--x;
@@ -16,10 +16,10 @@ test.f(0, 0)
","message":"CHC: Underflow (resulting value less than 0) happens here.
Counterexample:
arr = []
a = 0
a = 0x0
x = 0
Transaction trace:
test.constructor()
State: arr = []
test.f(0, 0)","severity":"warning","sourceLocation":{"end":177,"file":"A","start":174},"type":"Warning"}],"sources":{"A":{"id":0}}}
test.f(0x0, 0)","severity":"warning","sourceLocation":{"end":177,"file":"A","start":174},"type":"Warning"}],"sources":{"A":{"id":0}}}
@@ -1,13 +1,13 @@
{"errors":[{"component":"general","errorCode":"3944","formattedMessage":"Warning: CHC: Underflow (resulting value less than 0) happens here.
Counterexample:
arr = []
a = 0
a = 0x0
x = 0
Transaction trace:
test.constructor()
State: arr = []
test.f(0, 0)
test.f(0x0, 0)
--> A:8:7:
|
8 | \t\t\t\t\t\t--x;
@@ -16,22 +16,22 @@ test.f(0, 0)
","message":"CHC: Underflow (resulting value less than 0) happens here.
Counterexample:
arr = []
a = 0
a = 0x0
x = 0
Transaction trace:
test.constructor()
State: arr = []
test.f(0, 0)","severity":"warning","sourceLocation":{"end":177,"file":"A","start":174},"type":"Warning"},{"component":"general","errorCode":"4984","formattedMessage":"Warning: CHC: Overflow (resulting value larger than 2**256 - 1) happens here.
test.f(0x0, 0)","severity":"warning","sourceLocation":{"end":177,"file":"A","start":174},"type":"Warning"},{"component":"general","errorCode":"4984","formattedMessage":"Warning: CHC: Overflow (resulting value larger than 2**256 - 1) happens here.
Counterexample:
arr = []
a = 0
a = 0x0
x = 1
Transaction trace:
test.constructor()
State: arr = []
test.f(0, 2)
test.f(0x0, 2)
--> A:9:7:
|
9 | \t\t\t\t\t\tx + type(uint).max;
@@ -40,22 +40,22 @@ test.f(0, 2)
","message":"CHC: Overflow (resulting value larger than 2**256 - 1) happens here.
Counterexample:
arr = []
a = 0
a = 0x0
x = 1
Transaction trace:
test.constructor()
State: arr = []
test.f(0, 2)","severity":"warning","sourceLocation":{"end":203,"file":"A","start":185},"type":"Warning"},{"component":"general","errorCode":"6328","formattedMessage":"Warning: CHC: Assertion violation happens here.
test.f(0x0, 2)","severity":"warning","sourceLocation":{"end":203,"file":"A","start":185},"type":"Warning"},{"component":"general","errorCode":"6328","formattedMessage":"Warning: CHC: Assertion violation happens here.
Counterexample:
arr = []
a = 0
a = 0x0
x = 0
Transaction trace:
test.constructor()
State: arr = []
test.f(0, 1)
test.f(0x0, 1)
--> A:12:7:
|
12 | \t\t\t\t\t\tassert(x > 0);
@@ -64,10 +64,10 @@ test.f(0, 1)
","message":"CHC: Assertion violation happens here.
Counterexample:
arr = []
a = 0
a = 0x0
x = 0
Transaction trace:
test.constructor()
State: arr = []
test.f(0, 1)","severity":"warning","sourceLocation":{"end":258,"file":"A","start":245},"type":"Warning"}],"sources":{"A":{"id":0}}}
test.f(0x0, 1)","severity":"warning","sourceLocation":{"end":258,"file":"A","start":245},"type":"Warning"}],"sources":{"A":{"id":0}}}
@@ -1,13 +1,13 @@
{"errors":[{"component":"general","errorCode":"3944","formattedMessage":"Warning: CHC: Underflow (resulting value less than 0) happens here.
Counterexample:
arr = []
a = 0
a = 0x0
x = 0
Transaction trace:
test.constructor()
State: arr = []
test.f(0, 0)
test.f(0x0, 0)
--> A:8:7:
|
8 | \t\t\t\t\t\t--x;
@@ -16,22 +16,22 @@ test.f(0, 0)
","message":"CHC: Underflow (resulting value less than 0) happens here.
Counterexample:
arr = []
a = 0
a = 0x0
x = 0
Transaction trace:
test.constructor()
State: arr = []
test.f(0, 0)","severity":"warning","sourceLocation":{"end":177,"file":"A","start":174},"type":"Warning"},{"component":"general","errorCode":"4984","formattedMessage":"Warning: CHC: Overflow (resulting value larger than 2**256 - 1) happens here.
test.f(0x0, 0)","severity":"warning","sourceLocation":{"end":177,"file":"A","start":174},"type":"Warning"},{"component":"general","errorCode":"4984","formattedMessage":"Warning: CHC: Overflow (resulting value larger than 2**256 - 1) happens here.
Counterexample:
arr = []
a = 0
a = 0x0
x = 1
Transaction trace:
test.constructor()
State: arr = []
test.f(0, 2)
test.f(0x0, 2)
--> A:9:7:
|
9 | \t\t\t\t\t\tx + type(uint).max;
@@ -40,10 +40,10 @@ test.f(0, 2)
","message":"CHC: Overflow (resulting value larger than 2**256 - 1) happens here.
Counterexample:
arr = []
a = 0
a = 0x0
x = 1
Transaction trace:
test.constructor()
State: arr = []
test.f(0, 2)","severity":"warning","sourceLocation":{"end":203,"file":"A","start":185},"type":"Warning"}],"sources":{"A":{"id":0}}}
test.f(0x0, 2)","severity":"warning","sourceLocation":{"end":203,"file":"A","start":185},"type":"Warning"}],"sources":{"A":{"id":0}}}