[SMTChecker] Use same sort name for array slice as for the underlying array.

This commit is contained in:
Martin Blicha
2021-03-09 11:06:22 +01:00
parent 1d95f95635
commit 5af01f6896
5 changed files with 30 additions and 4 deletions
@@ -22,10 +22,12 @@ contract C {
}
// ----
// Warning 6328: (312-342): CHC: Assertion violation happens here.
// Warning 6328: (548-578): CHC: Assertion violation happens here.
// Warning 1218: (548-578): CHC: Error trying to invoke SMT solver.
// Warning 6328: (548-578): CHC: Assertion violation might happen here.
// Warning 1218: (644-674): CHC: Error trying to invoke SMT solver.
// Warning 6328: (644-674): CHC: Assertion violation might happen here.
// Warning 1218: (895-925): CHC: Error trying to invoke SMT solver.
// Warning 6328: (895-925): CHC: Assertion violation might happen here.
// Warning 4661: (548-578): BMC: Assertion violation happens here.
// Warning 4661: (644-674): BMC: Assertion violation happens here.
// Warning 4661: (895-925): BMC: Assertion violation happens here.
@@ -0,0 +1,5 @@
pragma experimental SMTChecker;
contract e {
function f(uint[] calldata) internal {}
function h(uint[] calldata c) external { f(c[:]); }
}
@@ -0,0 +1,17 @@
pragma experimental SMTChecker;
contract C {
int[] s;
function f(int[] calldata b, uint256 start, uint256 end) public returns (int) {
s = b[start:end];
uint len = end - start;
assert(len == s.length);
for (uint i = 0; i < len; i++) {
assert(b[start:end][i] == s[i]);
}
return s[0];
}
}
// ----
// Warning 6328: (259-290): CHC: Assertion violation might happen here.
// Warning 4661: (259-290): BMC: Assertion violation happens here.