mirror of
https://github.com/ethereum/solidity
synced 2023-10-03 13:03:40 +00:00
Update old tests
This commit is contained in:
@@ -1,5 +1,3 @@
|
||||
pragma experimental SMTChecker;
|
||||
|
||||
contract C {
|
||||
function f() public pure returns (uint y) {
|
||||
unchecked{{
|
||||
@@ -10,3 +8,5 @@ contract C {
|
||||
assert(y == 0);
|
||||
}
|
||||
}
|
||||
// ====
|
||||
// SMTEngine: all
|
||||
@@ -1,5 +1,3 @@
|
||||
pragma experimental SMTChecker;
|
||||
|
||||
contract C {
|
||||
uint public x = msg.value - 10; // can underflow
|
||||
constructor() payable {}
|
||||
@@ -15,6 +13,8 @@ contract D {
|
||||
}
|
||||
}
|
||||
}
|
||||
// ====
|
||||
// SMTEngine: all
|
||||
// ----
|
||||
// Warning 3944: (66-80): CHC: Underflow (resulting value less than 0) happens here.\nCounterexample:\nx = 0\n\nTransaction trace:\nC.constructor()
|
||||
// Warning 3944: (193-207): CHC: Underflow (resulting value less than 0) happens here.\nCounterexample:\n\n\nTransaction trace:\nD.constructor()\nD.f()\n D.h() -- internal call
|
||||
// Warning 3944: (33-47): CHC: Underflow (resulting value less than 0) happens here.\nCounterexample:\nx = 0\n\nTransaction trace:\nC.constructor()
|
||||
// Warning 3944: (160-174): CHC: Underflow (resulting value less than 0) happens here.\nCounterexample:\n\n\nTransaction trace:\nD.constructor()\nD.f()\n D.h() -- internal call
|
||||
|
||||
@@ -1,5 +1,3 @@
|
||||
pragma experimental SMTChecker;
|
||||
|
||||
contract C {
|
||||
function add(uint16 a, uint16 b) public pure returns (uint16) {
|
||||
return a + b; // can overflow
|
||||
@@ -9,5 +7,7 @@ contract C {
|
||||
unchecked { return add(a, b) + c; } // add can still overflow, `+ c` can't
|
||||
}
|
||||
}
|
||||
// ====
|
||||
// SMTEngine: all
|
||||
// ----
|
||||
// Warning 4984: (129-134): CHC: Overflow (resulting value larger than 65535) happens here.\nCounterexample:\n\na = 1\nb = 65535\n = 0\n\nTransaction trace:\nC.constructor()\nC.add(1, 65535)
|
||||
// Warning 4984: (96-101): CHC: Overflow (resulting value larger than 65535) happens here.\nCounterexample:\n\na = 1\nb = 65535\n = 0\n\nTransaction trace:\nC.constructor()\nC.add(1, 65535)
|
||||
|
||||
@@ -1,5 +1,3 @@
|
||||
pragma experimental SMTChecker;
|
||||
|
||||
contract C {
|
||||
modifier add(uint16 a, uint16 b) {
|
||||
unchecked { a + b; } // overflow not reported
|
||||
@@ -10,5 +8,7 @@ contract C {
|
||||
return b + c; // can overflow
|
||||
}
|
||||
}
|
||||
// ====
|
||||
// SMTEngine: all
|
||||
// ----
|
||||
// Warning 4984: (258-263): CHC: Overflow (resulting value larger than 65535) happens here.\nCounterexample:\n\na = 65535\nb = 1\nc = 65535\n = 0\na = 65535\nb = 1\n\nTransaction trace:\nC.constructor()\nC.f(65535, 1, 65535)
|
||||
// Warning 4984: (225-230): CHC: Overflow (resulting value larger than 65535) happens here.\nCounterexample:\n\na = 65535\nb = 1\nc = 65535\n = 0\na = 65535\nb = 1\n\nTransaction trace:\nC.constructor()\nC.f(65535, 1, 65535)
|
||||
|
||||
@@ -1,5 +1,3 @@
|
||||
pragma experimental SMTChecker;
|
||||
|
||||
contract test {
|
||||
function f() public pure returns (bool) {
|
||||
int256 x = -2**255;
|
||||
@@ -8,5 +6,7 @@ contract test {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
// ====
|
||||
// SMTEngine: all
|
||||
// ----
|
||||
// Warning 6328: (143-158): CHC: Assertion violation happens here.\nCounterexample:\n\n = false\nx = (- 57896044618658097711785492504343953926634992332820282019728792003956564819968)\n\nTransaction trace:\ntest.constructor()\ntest.f()
|
||||
// Warning 6328: (110-125): CHC: Assertion violation happens here.\nCounterexample:\n\n = false\nx = (- 57896044618658097711785492504343953926634992332820282019728792003956564819968)\n\nTransaction trace:\ntest.constructor()\ntest.f()
|
||||
|
||||
@@ -1,5 +1,3 @@
|
||||
pragma experimental SMTChecker;
|
||||
|
||||
contract C {
|
||||
function o() public pure {
|
||||
uint x = type(uint).max;
|
||||
@@ -25,3 +23,5 @@ contract C {
|
||||
assert(x == type(int).max);
|
||||
}
|
||||
}
|
||||
// ====
|
||||
// SMTEngine: all
|
||||
@@ -1,5 +1,3 @@
|
||||
pragma experimental SMTChecker;
|
||||
|
||||
contract C {
|
||||
function f(int a, int b) public pure returns (int) {
|
||||
return a % b; // can div by 0
|
||||
@@ -13,6 +11,8 @@ contract C {
|
||||
}
|
||||
}
|
||||
}
|
||||
// ====
|
||||
// SMTEngine: all
|
||||
// ----
|
||||
// Warning 4281: (118-123): CHC: Division by zero happens here.\nCounterexample:\n\na = 0\nb = 0\n = 0\n\nTransaction trace:\nC.constructor()\nC.f(0, 0)
|
||||
// Warning 4984: (275-281): CHC: Overflow (resulting value larger than 0x80 * 2**248 - 1) happens here.\nCounterexample:\n\n_check = true\n = 0\nx = (- 57896044618658097711785492504343953926634992332820282019728792003956564819968)\n\nTransaction trace:\nC.constructor()\nC.g(true)
|
||||
// Warning 4281: (85-90): CHC: Division by zero happens here.\nCounterexample:\n\na = 0\nb = 0\n = 0\n\nTransaction trace:\nC.constructor()\nC.f(0, 0)
|
||||
// Warning 4984: (242-248): CHC: Overflow (resulting value larger than 0x80 * 2**248 - 1) happens here.\nCounterexample:\n\n_check = true\n = 0\nx = (- 57896044618658097711785492504343953926634992332820282019728792003956564819968)\n\nTransaction trace:\nC.constructor()\nC.g(true)
|
||||
|
||||
@@ -1,5 +1,3 @@
|
||||
pragma experimental SMTChecker;
|
||||
|
||||
contract C {
|
||||
function add(uint16 a, uint16 b) public pure returns (uint16) {
|
||||
unchecked {
|
||||
@@ -11,5 +9,7 @@ contract C {
|
||||
return add(a, 0x100) + 0x100; // should overflow on `+ 0x100`
|
||||
}
|
||||
}
|
||||
// ====
|
||||
// SMTEngine: all
|
||||
// ----
|
||||
// Warning 4984: (273-294): CHC: Overflow (resulting value larger than 65535) happens here.\nCounterexample:\n\na = 65024\n = 0\n\nTransaction trace:\nC.constructor()\nC.f(65024)\n C.add(65024, 256) -- internal call
|
||||
// Warning 4984: (240-261): CHC: Overflow (resulting value larger than 65535) happens here.\nCounterexample:\n\na = 65024\n = 0\n\nTransaction trace:\nC.constructor()\nC.f(65024)\n C.add(65024, 256) -- internal call
|
||||
|
||||
@@ -1,5 +1,3 @@
|
||||
pragma experimental SMTChecker;
|
||||
|
||||
contract C {
|
||||
function div(uint256 a, uint256 b) public pure returns (uint256) {
|
||||
// Does not disable div by zero check
|
||||
@@ -15,6 +13,8 @@ contract C {
|
||||
}
|
||||
}
|
||||
}
|
||||
// ====
|
||||
// SMTEngine: all
|
||||
// ----
|
||||
// Warning 4281: (202-207): CHC: Division by zero happens here.\nCounterexample:\n\na = 0\nb = 0\n = 0\n\nTransaction trace:\nC.constructor()\nC.div(0, 0)
|
||||
// Warning 4281: (382-387): CHC: Division by zero happens here.\nCounterexample:\n\na = 0\nb = 0\n = 0\n\nTransaction trace:\nC.constructor()\nC.mod(0, 0)
|
||||
// Warning 4281: (169-174): CHC: Division by zero happens here.\nCounterexample:\n\na = 0\nb = 0\n = 0\n\nTransaction trace:\nC.constructor()\nC.div(0, 0)
|
||||
// Warning 4281: (349-354): CHC: Division by zero happens here.\nCounterexample:\n\na = 0\nb = 0\n = 0\n\nTransaction trace:\nC.constructor()\nC.mod(0, 0)
|
||||
|
||||
@@ -1,5 +1,3 @@
|
||||
pragma experimental SMTChecker;
|
||||
|
||||
contract C {
|
||||
|
||||
modifier m() {
|
||||
@@ -15,4 +13,6 @@ contract C {
|
||||
}
|
||||
|
||||
|
||||
// ====
|
||||
// SMTEngine: all
|
||||
// ----
|
||||
|
||||
+3
-2
@@ -1,4 +1,3 @@
|
||||
pragma experimental SMTChecker;
|
||||
contract C {
|
||||
function f(uint x) internal pure {
|
||||
unchecked {
|
||||
@@ -10,5 +9,7 @@ contract C {
|
||||
unchecked { f(x); }
|
||||
}
|
||||
}
|
||||
// ====
|
||||
// SMTEngine: all
|
||||
// ----
|
||||
// Warning 6328: (117-130): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 0\ny = 115792089237316195423570985008687907853269984665640564039457584007913129639935\n\nTransaction trace:\nC.constructor()\nC.g(0)\n C.f(0) -- internal call
|
||||
// Warning 6328: (85-98): CHC: Assertion violation happens here.\nCounterexample:\n\nx = 0\ny = 115792089237316195423570985008687907853269984665640564039457584007913129639935\n\nTransaction trace:\nC.constructor()\nC.g(0)\n C.f(0) -- internal call
|
||||
|
||||
Reference in New Issue
Block a user