mirror of
https://github.com/ethereum/solidity
synced 2023-10-03 13:03:40 +00:00
Merge pull request #9113 from ethereum/smt_chc_overflow
[SMTChecker] Add underflow/overflow target to CHC
This commit is contained in:
@@ -9,4 +9,4 @@ contract C {
|
||||
}
|
||||
}
|
||||
// ----
|
||||
// Warning 2529: (111-121): Empty array "pop" detected here
|
||||
// Warning 2529: (111-121): Empty array "pop" detected here.
|
||||
|
||||
@@ -10,5 +10,5 @@ contract C {
|
||||
}
|
||||
}
|
||||
// ----
|
||||
// Warning 3944: (162-177): Underflow (resulting value less than 0) happens here
|
||||
// Warning 6328: (150-184): Assertion violation happens here
|
||||
// Warning 4144: (162-177): Underflow (resulting value less than 0) happens here
|
||||
|
||||
@@ -12,5 +12,5 @@ contract C {
|
||||
}
|
||||
}
|
||||
// ----
|
||||
// Warning 3944: (217-232): Underflow (resulting value less than 0) happens here
|
||||
// Warning 6328: (205-239): Assertion violation happens here
|
||||
// Warning 4144: (217-232): Underflow (resulting value less than 0) happens here
|
||||
|
||||
@@ -53,5 +53,4 @@ contract MyConc{
|
||||
// ----
|
||||
// Warning 2519: (773-792): This declaration shadows an existing declaration.
|
||||
// Warning 2018: (1009-1086): Function state mutability can be restricted to view
|
||||
// Warning 6084: (985-1002): Underflow (resulting value less than 0) happens here.
|
||||
// Warning 6084: (985-1002): Overflow (resulting value larger than 2**256 - 1) happens here.
|
||||
// Warning 4984: (985-1002): Overflow (resulting value larger than 2**256 - 1) happens here
|
||||
|
||||
@@ -15,4 +15,3 @@ contract c {
|
||||
}
|
||||
}
|
||||
// ----
|
||||
// Warning 2661: (101-106): Overflow (resulting value larger than 2**256 - 1) happens here
|
||||
|
||||
@@ -16,4 +16,3 @@ contract c {
|
||||
}
|
||||
// ----
|
||||
// Warning 6328: (227-236): Assertion violation happens here
|
||||
// Warning 2661: (101-106): Overflow (resulting value larger than 2**256 - 1) happens here
|
||||
|
||||
@@ -19,4 +19,3 @@ contract c {
|
||||
// ----
|
||||
// Warning 6328: (202-218): Assertion violation happens here
|
||||
// Warning 6328: (242-252): Assertion violation happens here
|
||||
// Warning 2661: (101-106): Overflow (resulting value larger than 2**256 - 1) happens here
|
||||
|
||||
@@ -15,4 +15,3 @@ contract c {
|
||||
}
|
||||
}
|
||||
// ----
|
||||
// Warning 2661: (101-106): Overflow (resulting value larger than 2**256 - 1) happens here
|
||||
|
||||
@@ -16,4 +16,3 @@ contract c {
|
||||
}
|
||||
// ----
|
||||
// Warning 6328: (225-235): Assertion violation happens here
|
||||
// Warning 2661: (101-106): Overflow (resulting value larger than 2**256 - 1) happens here
|
||||
|
||||
@@ -15,4 +15,3 @@ contract c {
|
||||
}
|
||||
}
|
||||
// ----
|
||||
// Warning 2661: (101-106): Overflow (resulting value larger than 2**256 - 1) happens here
|
||||
|
||||
@@ -16,4 +16,3 @@ contract c {
|
||||
}
|
||||
// ----
|
||||
// Warning 6328: (225-235): Assertion violation happens here
|
||||
// Warning 2661: (101-106): Overflow (resulting value larger than 2**256 - 1) happens here
|
||||
|
||||
@@ -25,4 +25,3 @@ contract c {
|
||||
}
|
||||
// ----
|
||||
// Warning 6328: (360-370): Assertion violation happens here
|
||||
// Warning 2661: (101-106): Overflow (resulting value larger than 2**256 - 1) happens here
|
||||
|
||||
@@ -15,4 +15,3 @@ contract c {
|
||||
}
|
||||
}
|
||||
// ----
|
||||
// Warning 2661: (101-106): Overflow (resulting value larger than 2**256 - 1) happens here
|
||||
|
||||
@@ -16,4 +16,3 @@ contract c {
|
||||
}
|
||||
// ----
|
||||
// Warning 6328: (225-235): Assertion violation happens here
|
||||
// Warning 2661: (101-106): Overflow (resulting value larger than 2**256 - 1) happens here
|
||||
|
||||
@@ -19,6 +19,6 @@ contract A is B {
|
||||
}
|
||||
}
|
||||
// ----
|
||||
// Warning 4984: (203-208): Overflow (resulting value larger than 2**256 - 1) happens here
|
||||
// Warning 4984: (244-249): Overflow (resulting value larger than 2**256 - 1) happens here
|
||||
// Warning 6328: (232-250): Assertion violation happens here
|
||||
// Warning 2661: (203-208): Overflow (resulting value larger than 2**256 - 1) happens here
|
||||
// Warning 2661: (244-249): Overflow (resulting value larger than 2**256 - 1) happens here
|
||||
|
||||
@@ -18,6 +18,6 @@ contract A is B {
|
||||
}
|
||||
}
|
||||
// ----
|
||||
// Warning 2661: (207-212): Overflow (resulting value larger than 2**256 - 1) happens here
|
||||
// Warning 2661: (198-203): Overflow (resulting value larger than 2**256 - 1) happens here
|
||||
// Warning 2661: (230-235): Overflow (resulting value larger than 2**256 - 1) happens here
|
||||
// Warning 4984: (198-203): Overflow (resulting value larger than 2**256 - 1) happens here
|
||||
// Warning 4984: (207-212): Overflow (resulting value larger than 2**256 - 1) happens here
|
||||
// Warning 4984: (230-235): Overflow (resulting value larger than 2**256 - 1) happens here
|
||||
|
||||
@@ -25,7 +25,6 @@ contract A is B2, B1 {
|
||||
}
|
||||
}
|
||||
// ----
|
||||
// Warning 4984: (200-205): Overflow (resulting value larger than 2**256 - 1) happens here
|
||||
// Warning 4984: (314-319): Overflow (resulting value larger than 2**256 - 1) happens here
|
||||
// Warning 6328: (302-320): Assertion violation happens here
|
||||
// Warning 2661: (200-205): Overflow (resulting value larger than 2**256 - 1) happens here
|
||||
// Warning 2661: (200-205): Overflow (resulting value larger than 2**256 - 1) happens here
|
||||
// Warning 2661: (314-319): Overflow (resulting value larger than 2**256 - 1) happens here
|
||||
|
||||
@@ -25,7 +25,6 @@ contract A is B2, B1 {
|
||||
}
|
||||
}
|
||||
// ----
|
||||
// Warning 4984: (200-205): Overflow (resulting value larger than 2**256 - 1) happens here
|
||||
// Warning 4984: (314-319): Overflow (resulting value larger than 2**256 - 1) happens here
|
||||
// Warning 6328: (302-320): Assertion violation happens here
|
||||
// Warning 2661: (200-205): Overflow (resulting value larger than 2**256 - 1) happens here
|
||||
// Warning 2661: (200-205): Overflow (resulting value larger than 2**256 - 1) happens here
|
||||
// Warning 2661: (314-319): Overflow (resulting value larger than 2**256 - 1) happens here
|
||||
|
||||
@@ -27,11 +27,7 @@ contract A is B2, B1 {
|
||||
}
|
||||
}
|
||||
// ----
|
||||
// Warning 4984: (160-165): Overflow (resulting value larger than 2**256 - 1) happens here
|
||||
// Warning 4984: (225-230): Overflow (resulting value larger than 2**256 - 1) happens here
|
||||
// Warning 4984: (241-246): Overflow (resulting value larger than 2**256 - 1) happens here
|
||||
// Warning 6328: (334-350): Assertion violation happens here
|
||||
// Warning 4144: (160-165): Underflow (resulting value less than 0) happens here
|
||||
// Warning 2661: (160-165): Overflow (resulting value larger than 2**256 - 1) happens here
|
||||
// Warning 2661: (225-230): Overflow (resulting value larger than 2**256 - 1) happens here
|
||||
// Warning 2661: (241-246): Overflow (resulting value larger than 2**256 - 1) happens here
|
||||
// Warning 2661: (225-230): Overflow (resulting value larger than 2**256 - 1) happens here
|
||||
// Warning 2661: (241-246): Overflow (resulting value larger than 2**256 - 1) happens here
|
||||
// Warning 2661: (160-165): Overflow (resulting value larger than 2**256 - 1) happens here
|
||||
|
||||
+1
-2
@@ -25,6 +25,5 @@ contract A is B {
|
||||
}
|
||||
}
|
||||
// ----
|
||||
// Warning 4984: (247-252): Overflow (resulting value larger than 2**256 - 1) happens here
|
||||
// Warning 6328: (328-342): Assertion violation happens here
|
||||
// Warning 2661: (247-252): Overflow (resulting value larger than 2**256 - 1) happens here
|
||||
// Warning 2661: (247-252): Overflow (resulting value larger than 2**256 - 1) happens here
|
||||
|
||||
@@ -13,5 +13,5 @@ contract C {
|
||||
}
|
||||
}
|
||||
// ----
|
||||
// Warning 4984: (115-120): Overflow (resulting value larger than 2**256 - 1) happens here
|
||||
// Warning 6328: (162-176): Assertion violation happens here
|
||||
// Warning 2661: (115-120): Overflow (resulting value larger than 2**256 - 1) happens here
|
||||
|
||||
@@ -7,6 +7,3 @@ contract c {
|
||||
bool b = (f() > 0) || (f() > 0);
|
||||
}
|
||||
// ----
|
||||
// Warning 2661: (100-105): Overflow (resulting value larger than 2**256 - 1) happens here
|
||||
// Warning 4144: (100-105): Underflow (resulting value less than 0) happens here
|
||||
// Warning 2661: (100-105): Overflow (resulting value larger than 2**256 - 1) happens here
|
||||
|
||||
@@ -20,7 +20,6 @@ contract C {
|
||||
}
|
||||
// ----
|
||||
// Warning 6328: (136-155): Assertion violation happens here
|
||||
// Warning 2661: (229-234): Overflow (resulting value larger than 2**256 - 1) happens here
|
||||
// Warning 4984: (229-234): Overflow (resulting value larger than 2**256 - 1) happens here
|
||||
// Warning 4984: (327-332): Overflow (resulting value larger than 2**256 - 1) happens here.
|
||||
// Warning 8364: (300-302): Assertion checker does not yet implement type type(library l1)
|
||||
// Warning 2661: (229-234): Overflow (resulting value larger than 2**256 - 1) happens here
|
||||
// Warning 2661: (327-332): Overflow (resulting value larger than 2**256 - 1) happens here
|
||||
|
||||
+1
-2
@@ -25,6 +25,5 @@ contract A is B {
|
||||
}
|
||||
}
|
||||
// ----
|
||||
// Warning 4984: (247-252): Overflow (resulting value larger than 2**256 - 1) happens here
|
||||
// Warning 6328: (328-342): Assertion violation happens here
|
||||
// Warning 2661: (247-252): Overflow (resulting value larger than 2**256 - 1) happens here
|
||||
// Warning 2661: (247-252): Overflow (resulting value larger than 2**256 - 1) happens here
|
||||
|
||||
+6
-8
@@ -22,12 +22,10 @@ contract A is B {
|
||||
}
|
||||
|
||||
// ----
|
||||
// Warning 4984: (157-162): Overflow (resulting value larger than 2**256 - 1) happens here
|
||||
// Warning 4984: (216-221): Overflow (resulting value larger than 2**256 - 1) happens here
|
||||
// Warning 4984: (239-244): Overflow (resulting value larger than 2**256 - 1) happens here
|
||||
// Warning 4984: (261-266): Overflow (resulting value larger than 2**256 - 1) happens here
|
||||
// Warning 4984: (261-270): Overflow (resulting value larger than 2**256 - 1) happens here
|
||||
// Warning 4984: (287-292): Overflow (resulting value larger than 2**256 - 1) happens here
|
||||
// Warning 6328: (275-293): Assertion violation happens here
|
||||
// Warning 4144: (157-162): Underflow (resulting value less than 0) happens here
|
||||
// Warning 2661: (157-162): Overflow (resulting value larger than 2**256 - 1) happens here
|
||||
// Warning 2661: (216-221): Overflow (resulting value larger than 2**256 - 1) happens here
|
||||
// Warning 2661: (157-162): Overflow (resulting value larger than 2**256 - 1) happens here
|
||||
// Warning 2661: (239-244): Overflow (resulting value larger than 2**256 - 1) happens here
|
||||
// Warning 2661: (261-266): Overflow (resulting value larger than 2**256 - 1) happens here
|
||||
// Warning 2661: (261-270): Overflow (resulting value larger than 2**256 - 1) happens here
|
||||
// Warning 2661: (287-292): Overflow (resulting value larger than 2**256 - 1) happens here
|
||||
|
||||
+5
-6
@@ -22,10 +22,9 @@ contract A is B {
|
||||
}
|
||||
|
||||
// ----
|
||||
// Warning 4984: (157-163): Overflow (resulting value larger than 2**256 - 1) happens here
|
||||
// Warning 4984: (217-222): Overflow (resulting value larger than 2**256 - 1) happens here
|
||||
// Warning 4984: (240-245): Overflow (resulting value larger than 2**256 - 1) happens here
|
||||
// Warning 4984: (262-268): Overflow (resulting value larger than 2**256 - 1) happens here
|
||||
// Warning 4984: (285-290): Overflow (resulting value larger than 2**256 - 1) happens here
|
||||
// Warning 6328: (273-291): Assertion violation happens here
|
||||
// Warning 2661: (157-163): Overflow (resulting value larger than 2**256 - 1) happens here
|
||||
// Warning 2661: (217-222): Overflow (resulting value larger than 2**256 - 1) happens here
|
||||
// Warning 2661: (157-163): Overflow (resulting value larger than 2**256 - 1) happens here
|
||||
// Warning 2661: (240-245): Overflow (resulting value larger than 2**256 - 1) happens here
|
||||
// Warning 2661: (262-268): Overflow (resulting value larger than 2**256 - 1) happens here
|
||||
// Warning 2661: (285-290): Overflow (resulting value larger than 2**256 - 1) happens here
|
||||
|
||||
@@ -5,7 +5,6 @@ contract C
|
||||
function f(uint x) public pure {
|
||||
require(x < 100);
|
||||
do {
|
||||
// Overflows due to resetting x.
|
||||
x = x + 1;
|
||||
} while (x < 10);
|
||||
assert(x < 14);
|
||||
@@ -14,5 +13,4 @@ contract C
|
||||
// ====
|
||||
// SMTSolvers: z3
|
||||
// ----
|
||||
// Warning 6328: (179-193): Assertion violation happens here
|
||||
// Warning 2661: (150-155): Overflow (resulting value larger than 2**256 - 1) happens here
|
||||
// Warning 6328: (143-157): Assertion violation happens here
|
||||
|
||||
@@ -5,15 +5,10 @@ contract C
|
||||
function f(uint x) public pure {
|
||||
require(x < 100);
|
||||
do {
|
||||
// Overflows due to resetting x.
|
||||
x = x + 1;
|
||||
} while (x < 1000);
|
||||
// The assertion is true but we can't infer so
|
||||
// because x is touched in the loop.
|
||||
assert(x > 0);
|
||||
}
|
||||
}
|
||||
// ====
|
||||
// SMTSolvers: z3
|
||||
// ----
|
||||
// Warning 2661: (150-155): Overflow (resulting value larger than 2**256 - 1) happens here
|
||||
|
||||
@@ -14,5 +14,6 @@ contract C
|
||||
// ====
|
||||
// SMTSolvers: z3
|
||||
// ----
|
||||
// Warning 1218: (176-181): Error trying to invoke SMT solver.
|
||||
// Warning 6328: (189-203): Assertion violation happens here
|
||||
// Warning 2661: (176-181): Overflow (resulting value larger than 2**256 - 1) happens here
|
||||
|
||||
@@ -19,6 +19,7 @@ contract LoopFor2 {
|
||||
// ====
|
||||
// SMTSolvers: z3
|
||||
// ----
|
||||
// Warning 1218: (244-249): Error trying to invoke SMT solver.
|
||||
// Warning 6328: (281-301): Assertion violation happens here
|
||||
// Warning 6328: (305-324): Assertion violation happens here
|
||||
// Warning 6328: (328-347): Assertion violation happens here
|
||||
|
||||
@@ -23,5 +23,6 @@ contract LoopFor2 {
|
||||
// ====
|
||||
// SMTSolvers: z3
|
||||
// ----
|
||||
// Warning 1218: (237-242): Error trying to invoke SMT solver.
|
||||
// Warning 6328: (362-382): Assertion violation happens here
|
||||
// Warning 6328: (409-428): Assertion violation happens here
|
||||
|
||||
@@ -21,5 +21,5 @@ contract C
|
||||
}
|
||||
}
|
||||
// ----
|
||||
// Warning 4984: (203-208): Overflow (resulting value larger than 2**256 - 1) happens here
|
||||
// Warning 6328: (136-149): Assertion violation happens here
|
||||
// Warning 2661: (203-208): Overflow (resulting value larger than 2**256 - 1) happens here
|
||||
|
||||
@@ -15,4 +15,3 @@ contract C
|
||||
}
|
||||
}
|
||||
// ----
|
||||
// Warning 2661: (145-150): Overflow (resulting value larger than 2**256 - 1) happens here
|
||||
|
||||
@@ -0,0 +1,8 @@
|
||||
pragma experimental SMTChecker;
|
||||
|
||||
contract C {
|
||||
uint z = 0;
|
||||
uint x = 2 / z;
|
||||
}
|
||||
// ----
|
||||
// Warning 6084: (69-74): Division by zero happens here.
|
||||
@@ -6,4 +6,5 @@ contract C {
|
||||
}
|
||||
}
|
||||
// ----
|
||||
// Warning 1218: (127-132): Error trying to invoke SMT solver.
|
||||
// Warning 2661: (127-132): Overflow (resulting value larger than 0x80 * 2**248 - 1) happens here
|
||||
|
||||
@@ -6,3 +6,5 @@ contract C {
|
||||
return x / y;
|
||||
}
|
||||
}
|
||||
// ----
|
||||
// Warning 1218: (147-152): Error trying to invoke SMT solver.
|
||||
|
||||
@@ -9,3 +9,5 @@ contract C {
|
||||
return c;
|
||||
}
|
||||
}
|
||||
// ----
|
||||
// Warning 1218: (151-156): Error trying to invoke SMT solver.
|
||||
|
||||
@@ -11,3 +11,5 @@ contract C {
|
||||
return c;
|
||||
}
|
||||
}
|
||||
// ----
|
||||
// Warning 1218: (265-270): Error trying to invoke SMT solver.
|
||||
|
||||
@@ -7,4 +7,5 @@ contract C {
|
||||
}
|
||||
}
|
||||
// ----
|
||||
// Warning 1218: (112-117): Error trying to invoke SMT solver.
|
||||
// Warning 1218: (105-123): Error trying to invoke SMT solver.
|
||||
|
||||
@@ -7,4 +7,5 @@ contract C {
|
||||
}
|
||||
}
|
||||
// ----
|
||||
// Warning 1218: (113-118): Error trying to invoke SMT solver.
|
||||
// Warning 1218: (106-125): Error trying to invoke SMT solver.
|
||||
|
||||
@@ -7,4 +7,5 @@ contract C {
|
||||
}
|
||||
}
|
||||
// ----
|
||||
// Warning 1218: (113-118): Error trying to invoke SMT solver.
|
||||
// Warning 1218: (106-125): Error trying to invoke SMT solver.
|
||||
|
||||
@@ -7,4 +7,5 @@ contract C {
|
||||
}
|
||||
}
|
||||
// ----
|
||||
// Warning 1218: (114-119): Error trying to invoke SMT solver.
|
||||
// Warning 1218: (107-125): Error trying to invoke SMT solver.
|
||||
|
||||
@@ -6,7 +6,6 @@ contract test {
|
||||
}
|
||||
// ----
|
||||
// Warning 2072: (80-88): Unused local variable.
|
||||
// Warning 4984: (91-112): Overflow (resulting value larger than 2**256 - 1) happens here
|
||||
// Warning 5084: (91-100): Type conversion is not yet fully supported and might yield false positives.
|
||||
// Warning 5084: (103-112): Type conversion is not yet fully supported and might yield false positives.
|
||||
// Warning 4144: (91-112): Underflow (resulting value less than 0) happens here
|
||||
// Warning 2661: (91-112): Overflow (resulting value larger than 2**256 - 1) happens here
|
||||
|
||||
@@ -4,5 +4,3 @@ contract C {
|
||||
function f() internal { b[0] += 1; }
|
||||
}
|
||||
// ----
|
||||
// Warning 4144: (84-93): Underflow (resulting value less than 0) happens here
|
||||
// Warning 2661: (84-93): Overflow (resulting value larger than 2**256 - 1) happens here
|
||||
|
||||
@@ -9,4 +9,5 @@ contract C
|
||||
}
|
||||
}
|
||||
// ----
|
||||
// Warning 1218: (113-118): Error trying to invoke SMT solver.
|
||||
// Warning 1218: (122-142): Error trying to invoke SMT solver.
|
||||
|
||||
@@ -13,5 +13,5 @@ contract C
|
||||
}
|
||||
}
|
||||
// ----
|
||||
// Warning 2661: (120-125): Overflow (resulting value larger than 255) happens here
|
||||
// Warning 2661: (163-168): Overflow (resulting value larger than 255) happens here
|
||||
// Warning 4984: (120-125): Overflow (resulting value larger than 255) happens here
|
||||
// Warning 4984: (163-168): Overflow (resulting value larger than 255) happens here
|
||||
|
||||
@@ -12,5 +12,5 @@ contract C
|
||||
}
|
||||
}
|
||||
// ----
|
||||
// Warning 2661: (117-122): Overflow (resulting value larger than 127) happens here
|
||||
// Warning 2661: (150-157): Overflow (resulting value larger than 127) happens here
|
||||
// Warning 4984: (117-122): Overflow (resulting value larger than 127) happens here
|
||||
// Warning 4984: (150-157): Overflow (resulting value larger than 127) happens here
|
||||
|
||||
@@ -14,5 +14,5 @@ contract C
|
||||
}
|
||||
}
|
||||
// ----
|
||||
// Warning 2661: (154-159): Overflow (resulting value larger than 255) happens here
|
||||
// Warning 2661: (185-192): Overflow (resulting value larger than 255) happens here
|
||||
// Warning 4984: (154-159): Overflow (resulting value larger than 255) happens here
|
||||
// Warning 4984: (185-192): Overflow (resulting value larger than 255) happens here
|
||||
|
||||
@@ -14,6 +14,6 @@ contract C
|
||||
}
|
||||
}
|
||||
// ----
|
||||
// Warning 2661: (117-122): Overflow (resulting value larger than 127) happens here
|
||||
// Warning 2661: (151-158): Overflow (resulting value larger than 127) happens here
|
||||
// Warning 4144: (197-205): Underflow (resulting value less than -128) happens here
|
||||
// Warning 4984: (117-122): Overflow (resulting value larger than 127) happens here
|
||||
// Warning 4984: (151-158): Overflow (resulting value larger than 127) happens here
|
||||
// Warning 3944: (197-205): Underflow (resulting value less than -128) happens here
|
||||
|
||||
@@ -0,0 +1,11 @@
|
||||
pragma experimental SMTChecker;
|
||||
|
||||
contract C {
|
||||
function f(int x, int y) public pure returns (int) {
|
||||
return x / y;
|
||||
}
|
||||
}
|
||||
// ----
|
||||
// Warning 1218: (110-115): Error trying to invoke SMT solver.
|
||||
// Warning 3046: (110-115): Division by zero happens here
|
||||
// Warning 2661: (110-115): Overflow (resulting value larger than 0x80 * 2**248 - 1) happens here
|
||||
@@ -0,0 +1,10 @@
|
||||
pragma experimental SMTChecker;
|
||||
|
||||
contract C {
|
||||
function f(int x, int y) public pure returns (int) {
|
||||
require(x >= y);
|
||||
return x - y;
|
||||
}
|
||||
}
|
||||
// ----
|
||||
// Warning 4984: (129-134): Overflow (resulting value larger than 0x80 * 2**248 - 1) happens here
|
||||
@@ -0,0 +1,11 @@
|
||||
pragma experimental SMTChecker;
|
||||
|
||||
contract C {
|
||||
function f(int x, int y) public pure returns (int) {
|
||||
require(x + y >= x);
|
||||
return x + y;
|
||||
}
|
||||
}
|
||||
// ----
|
||||
// Warning 3944: (111-116): Underflow (resulting value less than -57896044618658097711785492504343953926634992332820282019728792003956564819968) happens here
|
||||
// Warning 3944: (133-138): Underflow (resulting value less than -57896044618658097711785492504343953926634992332820282019728792003956564819968) happens here
|
||||
@@ -0,0 +1,9 @@
|
||||
pragma experimental SMTChecker;
|
||||
|
||||
contract C {
|
||||
function f(int x, int y) public pure returns (int) {
|
||||
return x % y;
|
||||
}
|
||||
}
|
||||
// ----
|
||||
// Warning 3046: (110-115): Division by zero happens here
|
||||
@@ -0,0 +1,10 @@
|
||||
pragma experimental SMTChecker;
|
||||
|
||||
contract C {
|
||||
function f(int x, int y) public pure returns (int) {
|
||||
return x * y;
|
||||
}
|
||||
}
|
||||
// ----
|
||||
// Warning 3944: (110-115): Underflow (resulting value less than -57896044618658097711785492504343953926634992332820282019728792003956564819968) happens here
|
||||
// Warning 4984: (110-115): Overflow (resulting value larger than 0x80 * 2**248 - 1) happens here
|
||||
@@ -0,0 +1,10 @@
|
||||
pragma experimental SMTChecker;
|
||||
|
||||
contract C {
|
||||
function f(int x, int y) public pure returns (int) {
|
||||
return x - y;
|
||||
}
|
||||
}
|
||||
// ----
|
||||
// Warning 3944: (110-115): Underflow (resulting value less than -57896044618658097711785492504343953926634992332820282019728792003956564819968) happens here
|
||||
// Warning 4984: (110-115): Overflow (resulting value larger than 0x80 * 2**248 - 1) happens here
|
||||
@@ -0,0 +1,10 @@
|
||||
pragma experimental SMTChecker;
|
||||
|
||||
contract C {
|
||||
function f(int x, int y) public pure returns (int) {
|
||||
return x + y;
|
||||
}
|
||||
}
|
||||
// ----
|
||||
// Warning 3944: (110-115): Underflow (resulting value less than -57896044618658097711785492504343953926634992332820282019728792003956564819968) happens here
|
||||
// Warning 4984: (110-115): Overflow (resulting value larger than 0x80 * 2**248 - 1) happens here
|
||||
@@ -3,4 +3,4 @@ contract C {
|
||||
function f(uint a, uint b) public pure returns (uint) { return a + b; }
|
||||
}
|
||||
// ----
|
||||
// Warning 2661: (112-117): Overflow (resulting value larger than 2**256 - 1) happens here
|
||||
// Warning 4984: (112-117): Overflow (resulting value larger than 2**256 - 1) happens here
|
||||
|
||||
@@ -12,5 +12,5 @@ contract C
|
||||
}
|
||||
}
|
||||
// ----
|
||||
// Warning 4144: (117-122): Underflow (resulting value less than 0) happens here
|
||||
// Warning 4144: (150-157): Underflow (resulting value less than 0) happens here
|
||||
// Warning 3944: (117-122): Underflow (resulting value less than 0) happens here
|
||||
// Warning 3944: (150-157): Underflow (resulting value less than 0) happens here
|
||||
|
||||
@@ -16,6 +16,6 @@ contract C
|
||||
}
|
||||
}
|
||||
// ----
|
||||
// Warning 4144: (116-123): Underflow (resulting value less than -128) happens here
|
||||
// Warning 4144: (163-170): Underflow (resulting value less than -128) happens here
|
||||
// Warning 2661: (207-217): Overflow (resulting value larger than 127) happens here
|
||||
// Warning 3944: (116-123): Underflow (resulting value less than -128) happens here
|
||||
// Warning 3944: (163-170): Underflow (resulting value less than -128) happens here
|
||||
// Warning 4984: (207-217): Overflow (resulting value larger than 127) happens here
|
||||
|
||||
@@ -0,0 +1,9 @@
|
||||
pragma experimental SMTChecker;
|
||||
|
||||
contract C {
|
||||
function f(uint x, uint y) public pure returns (uint) {
|
||||
return x / y;
|
||||
}
|
||||
}
|
||||
// ----
|
||||
// Warning 3046: (113-118): Division by zero happens here
|
||||
@@ -0,0 +1,8 @@
|
||||
pragma experimental SMTChecker;
|
||||
|
||||
contract C {
|
||||
function f(uint x, uint y) public pure returns (uint) {
|
||||
require(x >= y);
|
||||
return x - y;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
pragma experimental SMTChecker;
|
||||
|
||||
contract C {
|
||||
function f(uint x, uint y) public pure returns (uint) {
|
||||
require(x + y >= x);
|
||||
return x + y;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
pragma experimental SMTChecker;
|
||||
|
||||
contract C {
|
||||
function f(uint x, uint y) public pure returns (uint) {
|
||||
return x % y;
|
||||
}
|
||||
}
|
||||
// ----
|
||||
// Warning 3046: (113-118): Division by zero happens here
|
||||
@@ -0,0 +1,9 @@
|
||||
pragma experimental SMTChecker;
|
||||
|
||||
contract C {
|
||||
function f(uint x, uint y) public pure returns (uint) {
|
||||
return x * y;
|
||||
}
|
||||
}
|
||||
// ----
|
||||
// Warning 4984: (113-118): Overflow (resulting value larger than 2**256 - 1) happens here
|
||||
@@ -0,0 +1,9 @@
|
||||
pragma experimental SMTChecker;
|
||||
|
||||
contract C {
|
||||
function f(uint x, uint y) public pure returns (uint) {
|
||||
return x - y;
|
||||
}
|
||||
}
|
||||
// ----
|
||||
// Warning 3944: (113-118): Underflow (resulting value less than 0) happens here
|
||||
@@ -0,0 +1,9 @@
|
||||
pragma experimental SMTChecker;
|
||||
|
||||
contract C {
|
||||
function f(uint x, uint y) public pure returns (uint) {
|
||||
return x + y;
|
||||
}
|
||||
}
|
||||
// ----
|
||||
// Warning 4984: (113-118): Overflow (resulting value larger than 2**256 - 1) happens here
|
||||
@@ -15,6 +15,7 @@ contract C
|
||||
}
|
||||
}
|
||||
// ----
|
||||
// Warning 4984: (311-316): Overflow (resulting value larger than 2**256 - 1) happens here
|
||||
// Warning 6328: (79-115): Assertion violation happens here
|
||||
// Warning 6328: (119-161): Assertion violation happens here
|
||||
// Warning 6328: (165-204): Assertion violation happens here
|
||||
@@ -23,4 +24,3 @@ contract C
|
||||
// Warning 6328: (304-332): Assertion violation happens here
|
||||
// Warning 6328: (336-364): Assertion violation happens here
|
||||
// Warning 6328: (368-391): Assertion violation happens here
|
||||
// Warning 2661: (311-316): Overflow (resulting value larger than 2**256 - 1) happens here
|
||||
|
||||
@@ -9,5 +9,5 @@ contract C
|
||||
}
|
||||
// ----
|
||||
// Warning 2072: (96-102): Unused local variable.
|
||||
// Warning 4984: (105-127): Overflow (resulting value larger than 2**256 - 1) happens here
|
||||
// Warning 6328: (131-160): Assertion violation happens here
|
||||
// Warning 2661: (105-127): Overflow (resulting value larger than 2**256 - 1) happens here
|
||||
|
||||
@@ -15,4 +15,4 @@ contract C
|
||||
}
|
||||
}
|
||||
// ----
|
||||
// Warning 2661: (152-157): Overflow (resulting value larger than 2**256 - 1) happens here
|
||||
// Warning 4984: (152-157): Overflow (resulting value larger than 2**256 - 1) happens here
|
||||
|
||||
Reference in New Issue
Block a user