Merge remote-tracking branch 'origin/develop' into HEAD

This commit is contained in:
chriseth
2020-09-29 09:53:50 +02:00
509 changed files with 1813 additions and 932 deletions
+20 -10
View File
@@ -123,6 +123,22 @@ EVMHost::EVMHost(langutil::EVMVersion _evmVersion, evmc::VM& _vm):
else
assertThrow(false, Exception, "Unsupported EVM version");
tx_context.block_difficulty = evmc::uint256be{200000000};
tx_context.block_gas_limit = 20000000;
tx_context.block_coinbase = 0x7878787878787878787878787878787878787878_address;
tx_context.tx_gas_price = evmc::uint256be{3000000000};
tx_context.tx_origin = 0x9292929292929292929292929292929292929292_address;
// Mainnet according to EIP-155
tx_context.chain_id = evmc::uint256be{1};
reset();
}
void EVMHost::reset()
{
accounts.clear();
m_currentAddress = {};
// Mark all precompiled contracts as existing. Existing here means to have a balance (as per EIP-161).
// NOTE: keep this in sync with `EVMHost::call` below.
//
@@ -131,19 +147,13 @@ EVMHost::EVMHost(langutil::EVMVersion _evmVersion, evmc::VM& _vm):
// roughly 22 days before the update went live.
for (unsigned precompiledAddress = 1; precompiledAddress <= 8; precompiledAddress++)
{
evmc::address address{};
address.bytes[19] = precompiledAddress;
evmc::address address{precompiledAddress};
// 1wei
accounts[address].balance = evmc::uint256be{1};
// Set according to EIP-1052.
if (precompiledAddress < 5 || m_evmVersion >= langutil::EVMVersion::byzantium())
accounts[address].codehash = 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470_bytes32;
}
tx_context.block_difficulty = evmc::uint256be{200000000};
tx_context.block_gas_limit = 20000000;
tx_context.block_coinbase = 0x7878787878787878787878787878787878787878_address;
tx_context.tx_gas_price = evmc::uint256be{3000000000};
tx_context.tx_origin = 0x9292929292929292929292929292929292929292_address;
// Mainnet according to EIP-155
tx_context.chain_id = evmc::uint256be{1};
}
void EVMHost::selfdestruct(const evmc::address& _addr, const evmc::address& _beneficiary) noexcept
+1 -1
View File
@@ -54,7 +54,7 @@ public:
explicit EVMHost(langutil::EVMVersion _evmVersion, evmc::VM& _vm);
void reset() { accounts.clear(); m_currentAddress = {}; }
void reset();
void newBlock()
{
tx_context.block_number++;
-36
View File
@@ -599,42 +599,6 @@ BOOST_AUTO_TEST_CASE(complex_import)
BOOST_CHECK(successParse(text));
}
BOOST_AUTO_TEST_CASE(recursion_depth1)
{
string text("contract C { bytes");
for (size_t i = 0; i < 30000; i++)
text += "[";
CHECK_PARSE_ERROR(text.c_str(), "Maximum recursion depth reached during parsing");
}
BOOST_AUTO_TEST_CASE(recursion_depth2)
{
string text("contract C { function f() {");
for (size_t i = 0; i < 30000; i++)
text += "{";
CHECK_PARSE_ERROR(text, "Maximum recursion depth reached during parsing");
}
BOOST_AUTO_TEST_CASE(recursion_depth3)
{
string text("contract C { function f() { uint x = f(");
for (size_t i = 0; i < 30000; i++)
text += "(";
CHECK_PARSE_ERROR(text, "Maximum recursion depth reached during parsing");
}
BOOST_AUTO_TEST_CASE(recursion_depth4)
{
string text("contract C { function f() { uint a;");
for (size_t i = 0; i < 30000; i++)
text += "(";
text += "a";
for (size_t i = 0; i < 30000; i++)
text += "++)";
text += "}}";
CHECK_PARSE_ERROR(text, "Maximum recursion depth reached during parsing");
}
BOOST_AUTO_TEST_CASE(inline_asm_end_location)
{
auto sourceCode = std::string(R"(
@@ -0,0 +1,10 @@
function f() pure returns (uint) { return 1337; }
contract C {
function f() public pure returns (uint) {
return f();
}
}
// ====
// compileViaYul: also
// ----
// f() -> FAILURE
@@ -0,0 +1,15 @@
==== Source: s1.sol ====
import {f as g} from "s2.sol";
function f() pure returns (uint) { return 1; }
==== Source: s2.sol ====
import {f as g} from "s1.sol";
function f() pure returns (uint) { return 2; }
contract C {
function foo() public pure returns (uint) {
return f() - g();
}
}
// ====
// compileViaYul: also
// ----
// foo() -> 1
@@ -0,0 +1,14 @@
==== Source: s1.sol ====
import {f as g, g as h} from "s2.sol";
function f() pure returns (uint) { return h() - g(); }
==== Source: s2.sol ====
import {f as h} from "s1.sol";
function f() pure returns (uint) { return 2; }
function g() pure returns (uint) { return 4; }
contract C {
function foo() public pure returns (uint) {
return h() - f() - g();
}
}
// ----
// foo() -> -4
@@ -0,0 +1,16 @@
==== Source: s1.sol ====
import {f as g, g as h} from "s2.sol";
function f() pure returns (uint) { return h() - g(); }
==== Source: s2.sol ====
import {f as h} from "s1.sol";
function f() pure returns (uint) { return 2; }
function g() pure returns (uint) { return 4; }
==== Source: s3.sol ====
import "s1.sol";
contract C {
function foo() public pure returns (uint) {
return f() - g() - h();
}
}
// ----
// foo() -> -4
@@ -0,0 +1,16 @@
==== Source: s1.sol ====
import {f as g, g as h} from "s2.sol";
function f() pure returns (uint) { return h() - g(); }
==== Source: s2.sol ====
import {f as h} from "s1.sol";
function f() pure returns (uint) { return 2; }
function g() pure returns (uint) { return 4; }
==== Source: s3.sol ====
import "s2.sol";
contract C {
function foo() public pure returns (uint) {
return f() - g() - h();
}
}
// ----
// foo() -> -4
@@ -0,0 +1,14 @@
==== Source: s1.sol ====
function f(uint24) pure returns (uint) { return 24; }
function g(bool) pure returns (bool) { return true; }
==== Source: s2.sol ====
import {f as g, g as g} from "s1.sol";
contract C {
function foo() public pure returns (uint, bool) {
return (g(2), g(false));
}
}
// ====
// compileViaYul: also
// ----
// foo() -> 24, true
@@ -0,0 +1,18 @@
==== Source: s1.sol ====
function f() pure returns (uint) { return 1337; }
contract C {
function g() public pure returns (uint) {
return f();
}
}
==== Source: s2.sol ====
import "s1.sol";
contract D is C {
function h() public pure returns (uint) {
return g();
}
}
// ====
// compileViaYul: also
// ----
// h() -> 1337
@@ -0,0 +1,18 @@
==== Source: s1.sol ====
function f() pure returns (uint) { return 1337; }
contract C {
function g() public pure virtual returns (uint) {
return f() + 1;
}
}
==== Source: s2.sol ====
import "s1.sol";
contract D is C {
function g() public pure override returns (uint) {
return f();
}
}
// ====
// compileViaYul: also
// ----
// g() -> 1337
@@ -0,0 +1,18 @@
==== Source: s1.sol ====
function f() pure returns (uint) { return 1337; }
contract C {
function g() public pure virtual returns (uint) {
return f();
}
}
==== Source: s2.sol ====
import "s1.sol";
contract D is C {
function g() public pure override returns (uint) {
return super.g();
}
}
// ====
// compileViaYul: also
// ----
// g() -> 1337
@@ -0,0 +1,25 @@
==== Source: s1.sol ====
function f() pure returns (uint) { return 1337; }
contract C {
function g() public pure virtual returns (uint) {
return f();
}
}
==== Source: s2.sol ====
import "s1.sol";
contract D is C {
function g() public pure virtual override returns (uint) {
return super.g() + 1;
}
}
==== Source: s3.sol ====
import "s2.sol";
contract E is D {
function g() public pure override returns (uint) {
return super.g() + 1;
}
}
// ====
// compileViaYul: also
// ----
// g() -> 1339
@@ -0,0 +1,27 @@
==== Source: s1.sol ====
function f() pure returns (uint) { return 1337; }
contract C {
function g() public pure returns (uint) {
return f();
}
}
==== Source: s2.sol ====
import "s1.sol";
contract D is C {
function h() public pure returns (uint) {
return g();
}
}
==== Source: s3.sol ====
import "s2.sol";
import {f as f} from "s2.sol";
contract E is D {
function i() public pure returns (uint) {
return f();
}
}
// ====
// compileViaYul: also
// ----
// i() -> 1337
@@ -0,0 +1,19 @@
==== Source: s1.sol ====
function f() pure returns (uint) { return 1337; }
contract C {
function g() public pure virtual returns (uint) {
return f();
}
}
==== Source: s2.sol ====
import "s1.sol" as M;
function f() pure returns (uint) { return 6; }
contract D is M.C {
function g() public pure override returns (uint) {
return super.g() + f() * 10000;
}
}
// ====
// compileViaYul: also
// ----
// g() -> 61337
@@ -0,0 +1,14 @@
==== Source: s1.sol ====
function f() pure returns (uint) { return 1337; }
==== Source: s2.sol ====
import {f as g} from "s1.sol";
function f() pure returns (uint) { return 6; }
contract D {
function h() public pure returns (uint) {
return g() + f() * 10000;
}
}
// ====
// compileViaYul: also
// ----
// h() -> 61337
@@ -0,0 +1,15 @@
==== Source: s1.sol ====
function f() pure returns (uint) { return 1337; }
==== Source: s2.sol ====
import {f as g} from "s1.sol";
==== Source: s3.sol ====
import {g as h} from "s2.sol";
contract C {
function foo() public pure returns (uint) {
return h();
}
}
// ====
// compileViaYul: also
// ----
// foo() -> 1337
@@ -0,0 +1,28 @@
contract C {
constructor() payable {}
function f() public returns (uint256 ret) {
assembly {
ret := balance(0)
}
}
function g() public returns (uint256 ret) {
assembly {
ret := balance(1)
}
}
function h() public returns (uint256 ret) {
assembly {
ret := balance(address())
}
}
}
// ====
// EVMVersion: >=constantinople
// compileViaYul: also
// ----
// constructor(), 23 wei ->
// f() -> 0
// g() -> 1
// h() -> 23
@@ -0,0 +1,25 @@
contract C {
function f() public returns (bytes32 ret) {
assembly {
ret := extcodehash(0)
}
}
function g() public returns (bytes32 ret) {
assembly {
ret := extcodehash(1)
}
}
function h() public returns (bool ret) {
assembly {
ret := iszero(iszero(extcodehash(address())))
}
}
}
// ====
// EVMVersion: >=constantinople
// compileViaYul: also
// ----
// f() -> 0
// g() -> 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470
// h() -> true
@@ -8,4 +8,4 @@ contract C {
}
}
// ----
// Warning 2529: (82-89): Empty array "pop" detected here.
// Warning 2529: (82-89): CHC: Empty array "pop" detected here.
@@ -8,4 +8,4 @@ contract C {
}
}
// ----
// Warning 2529: (82-89): Empty array "pop" detected here.
// Warning 2529: (82-89): CHC: Empty array "pop" detected here.
@@ -8,5 +8,5 @@ contract C {
}
}
// ----
// Warning 2529: (82-89): Empty array "pop" detected here.
// Warning 2529: (93-100): Empty array "pop" detected here.
// Warning 2529: (82-89): CHC: Empty array "pop" detected here.
// Warning 2529: (93-100): CHC: Empty array "pop" detected here.
@@ -8,4 +8,4 @@ contract C {
}
}
// ----
// Warning 2529: (94-101): Empty array "pop" detected here.
// Warning 2529: (94-101): CHC: Empty array "pop" detected here.
@@ -11,4 +11,4 @@ contract C {
}
}
// ----
// Warning 2529: (122-129): Empty array "pop" detected here.
// Warning 2529: (122-129): CHC: Empty array "pop" detected here.
@@ -11,4 +11,4 @@ contract C {
}
}
// ----
// Warning 2529: (127-134): Empty array "pop" detected here.
// Warning 2529: (127-134): CHC: Empty array "pop" detected here.
@@ -13,4 +13,4 @@ contract C {
}
}
// ----
// Warning 2529: (82-89): Empty array "pop" detected here.
// Warning 2529: (82-89): CHC: Empty array "pop" detected here.
@@ -10,4 +10,4 @@ contract C {
}
}
// ----
// Warning 6328: (153-176): Assertion violation happens here.
// Warning 6328: (153-176): CHC: Assertion violation happens here.
@@ -14,6 +14,6 @@ contract C {
}
}
// ----
// Warning 6328: (198-224): Assertion violation happens here.
// Warning 6328: (228-254): Assertion violation happens here.
// Warning 6328: (258-281): Assertion violation happens here.
// Warning 6328: (198-224): CHC: Assertion violation happens here.
// Warning 6328: (228-254): CHC: Assertion violation happens here.
// Warning 6328: (258-281): CHC: Assertion violation happens here.
@@ -16,7 +16,7 @@ contract C {
}
}
// ----
// Warning 6328: (222-248): Assertion violation happens here.
// Warning 6328: (252-278): Assertion violation happens here.
// Warning 6328: (282-305): Assertion violation happens here.
// Warning 6328: (309-335): Assertion violation happens here.
// Warning 6328: (222-248): CHC: Assertion violation happens here.
// Warning 6328: (252-278): CHC: Assertion violation happens here.
// Warning 6328: (282-305): CHC: Assertion violation happens here.
// Warning 6328: (309-335): CHC: Assertion violation happens here.
@@ -7,4 +7,4 @@ contract C {
}
}
// ----
// Warning 2529: (82-89): Empty array "pop" detected here.
// Warning 2529: (82-89): CHC: Empty array "pop" detected here.
@@ -9,4 +9,4 @@ contract C {
}
}
// ----
// Warning 2529: (111-121): Empty array "pop" detected here.
// Warning 2529: (111-121): CHC: Empty array "pop" detected here.
@@ -7,4 +7,4 @@ contract C {
}
}
// ----
// Warning 2529: (76-83): Empty array "pop" detected here.
// Warning 2529: (76-83): CHC: Empty array "pop" detected here.
@@ -11,4 +11,4 @@ contract C {
}
}
// ----
// Warning 2529: (150-157): Empty array "pop" detected here.
// Warning 2529: (150-157): CHC: 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 3944: (162-177): CHC: Underflow (resulting value less than 0) happens here.
// Warning 6328: (150-184): CHC: Assertion violation happens here.
@@ -8,5 +8,5 @@ contract C {
}
}
// ----
// Warning 6328: (113-139): Assertion violation happens here.
// Warning 6328: (143-189): Assertion violation happens here.
// Warning 6328: (113-139): CHC: Assertion violation happens here.
// Warning 6328: (143-189): CHC: Assertion violation happens here.
@@ -10,6 +10,6 @@ contract C {
}
}
// ----
// Warning 6328: (122-148): Assertion violation happens here.
// Warning 6328: (202-218): Assertion violation happens here.
// Warning 6328: (222-278): Assertion violation happens here.
// Warning 6328: (122-148): CHC: Assertion violation happens here.
// Warning 6328: (202-218): CHC: Assertion violation happens here.
// Warning 6328: (222-278): CHC: Assertion violation 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 3944: (217-232): CHC: Underflow (resulting value less than 0) happens here.
// Warning 6328: (205-239): CHC: Assertion violation happens here.
@@ -12,4 +12,4 @@ contract C {
}
}
// ----
// Warning 6328: (167-188): Assertion violation happens here.
// Warning 6328: (167-188): CHC: Assertion violation happens here.
@@ -18,6 +18,6 @@ contract C {
}
}
// ----
// Warning 6328: (193-217): Assertion violation happens here.
// Warning 6328: (309-333): Assertion violation happens here.
// Warning 6328: (419-436): Assertion violation happens here.
// Warning 6328: (193-217): CHC: Assertion violation happens here.
// Warning 6328: (309-333): CHC: Assertion violation happens here.
// Warning 6328: (419-436): CHC: Assertion violation happens here.
@@ -9,4 +9,4 @@ contract C {
}
}
// ----
// Warning 6328: (111-144): Assertion violation happens here.
// Warning 6328: (111-144): CHC: Assertion violation happens here.
@@ -8,4 +8,4 @@ contract C {
}
}
// ----
// Warning 6328: (94-124): Assertion violation happens here.
// Warning 6328: (94-124): CHC: Assertion violation happens here.
@@ -15,4 +15,4 @@ contract C {
}
}
// ----
// Warning 6328: (184-213): Assertion violation happens here.
// Warning 6328: (184-213): CHC: Assertion violation happens here.
@@ -53,4 +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 4984: (985-1002): Overflow (resulting value larger than 2**256 - 1) happens here.
// Warning 4984: (985-1002): CHC: Overflow (resulting value larger than 2**256 - 1) happens here.
@@ -30,4 +30,4 @@ contract C {
}
}
// ----
// Warning 6328: (448-465): Assertion violation happens here.
// Warning 6328: (448-465): CHC: Assertion violation happens here.
@@ -32,4 +32,4 @@ contract C {
// ----
// Warning 5740: (116-129): Unreachable code.
// Warning 5740: (221-234): Unreachable code.
// Warning 6328: (427-444): Assertion violation happens here.
// Warning 6328: (427-444): CHC: Assertion violation happens here.
@@ -14,5 +14,5 @@ contract C {
}
}
// ----
// Warning 6328: (183-197): Assertion violation happens here.
// Warning 6838: (155-156): Condition is always false.
// Warning 6328: (183-197): CHC: Assertion violation happens here.
// Warning 6838: (155-156): BMC: Condition is always false.
@@ -15,4 +15,4 @@ contract c {
}
}
// ----
// Warning 6328: (227-236): Assertion violation happens here.
// Warning 6328: (227-236): CHC: Assertion violation happens here.
@@ -17,5 +17,5 @@ contract c {
}
}
// ----
// Warning 6328: (202-218): Assertion violation happens here.
// Warning 6328: (242-252): Assertion violation happens here.
// Warning 6328: (202-218): CHC: Assertion violation happens here.
// Warning 6328: (242-252): CHC: Assertion violation happens here.
@@ -15,4 +15,4 @@ contract c {
}
}
// ----
// Warning 6328: (225-235): Assertion violation happens here.
// Warning 6328: (225-235): CHC: Assertion violation happens here.
@@ -12,8 +12,8 @@ contract C
}
}
// ----
// Warning 6838: (84-110): Condition is always false.
// Warning 6838: (121-147): Condition is always true.
// Warning 6838: (158-183): Condition is always false.
// Warning 6838: (194-221): Condition is always false.
// Warning 6838: (232-247): Condition is always true.
// Warning 6838: (84-110): BMC: Condition is always false.
// Warning 6838: (121-147): BMC: Condition is always true.
// Warning 6838: (158-183): BMC: Condition is always false.
// Warning 6838: (194-221): BMC: Condition is always false.
// Warning 6838: (232-247): BMC: Condition is always true.
@@ -16,8 +16,8 @@ contract C
}
}
// ----
// Warning 6838: (156-179): Condition is always false.
// Warning 6838: (190-213): Condition is always true.
// Warning 6838: (224-243): Condition is always false.
// Warning 6838: (254-277): Condition is always false.
// Warning 6838: (288-300): Condition is always true.
// Warning 6838: (156-179): BMC: Condition is always false.
// Warning 6838: (190-213): BMC: Condition is always true.
// Warning 6838: (224-243): BMC: Condition is always false.
// Warning 6838: (254-277): BMC: Condition is always false.
// Warning 6838: (288-300): BMC: Condition is always true.
@@ -15,4 +15,4 @@ contract c {
}
}
// ----
// Warning 6328: (225-235): Assertion violation happens here.
// Warning 6328: (225-235): CHC: Assertion violation happens here.
@@ -24,4 +24,4 @@ contract c {
}
}
// ----
// Warning 6328: (360-370): Assertion violation happens here.
// Warning 6328: (360-370): CHC: Assertion violation happens here.
@@ -15,4 +15,4 @@ contract c {
}
}
// ----
// Warning 6328: (225-235): Assertion violation happens here.
// Warning 6328: (225-235): CHC: Assertion violation happens here.
@@ -12,8 +12,8 @@ contract C
}
}
// ----
// Warning 6838: (84-110): Condition is always true.
// Warning 6838: (121-147): Condition is always true.
// Warning 6838: (158-183): Condition is always true.
// Warning 6838: (194-221): Condition is always true.
// Warning 6838: (232-248): Condition is always false.
// Warning 6838: (84-110): BMC: Condition is always true.
// Warning 6838: (121-147): BMC: Condition is always true.
// Warning 6838: (158-183): BMC: Condition is always true.
// Warning 6838: (194-221): BMC: Condition is always true.
// Warning 6838: (232-248): BMC: Condition is always false.
@@ -16,8 +16,8 @@ contract C
}
}
// ----
// Warning 6838: (156-179): Condition is always true.
// Warning 6838: (190-213): Condition is always true.
// Warning 6838: (224-243): Condition is always true.
// Warning 6838: (254-277): Condition is always true.
// Warning 6838: (288-301): Condition is always false.
// Warning 6838: (156-179): BMC: Condition is always true.
// Warning 6838: (190-213): BMC: Condition is always true.
// Warning 6838: (224-243): BMC: Condition is always true.
// Warning 6838: (254-277): BMC: Condition is always true.
// Warning 6838: (288-301): BMC: Condition is always false.
@@ -9,4 +9,4 @@ contract C {
}
}
// ----
// Warning 6328: (159-173): Assertion violation happens here.
// Warning 6328: (159-173): CHC: Assertion violation happens here.
@@ -9,4 +9,4 @@ contract C {
}
}
// ----
// Warning 6328: (159-173): Assertion violation happens here.
// Warning 6328: (159-173): CHC: Assertion violation happens here.
@@ -9,4 +9,4 @@ contract C {
}
}
// ----
// Warning 6328: (161-175): Assertion violation happens here.
// Warning 6328: (161-175): CHC: Assertion violation happens here.
@@ -17,4 +17,4 @@ contract C {
}
}
// ----
// Warning 6328: (200-214): Assertion violation happens here.
// Warning 6328: (200-214): CHC: Assertion violation happens here.
@@ -26,4 +26,4 @@ contract C {
}
}
// ----
// Warning 6328: (423-445): Assertion violation happens here.
// Warning 6328: (423-445): CHC: Assertion violation happens here.
@@ -28,4 +28,4 @@ contract C {
}
}
// ----
// Warning 6328: (431-453): Assertion violation happens here.
// Warning 6328: (431-453): CHC: Assertion violation happens here.
@@ -34,4 +34,4 @@ contract C {
}
}
// ----
// Warning 6328: (528-565): Assertion violation happens here.
// Warning 6328: (528-565): CHC: Assertion violation happens here.
@@ -29,4 +29,4 @@ contract C {
}
}
// ----
// Warning 6328: (299-313): Assertion violation happens here.
// Warning 6328: (299-313): CHC: Assertion violation happens here.
@@ -42,5 +42,5 @@ contract C {
}
}
// ----
// Warning 6328: (452-466): Assertion violation happens here.
// Warning 6328: (470-496): Assertion violation happens here.
// Warning 6328: (452-466): CHC: Assertion violation happens here.
// Warning 6328: (470-496): CHC: Assertion violation happens here.
@@ -34,5 +34,5 @@ contract C {
}
}
// ----
// Warning 6328: (381-395): Assertion violation happens here.
// Warning 6328: (399-425): Assertion violation happens here.
// Warning 6328: (381-395): CHC: Assertion violation happens here.
// Warning 6328: (399-425): CHC: Assertion violation happens here.
@@ -38,5 +38,5 @@ contract C {
}
}
// ----
// Warning 6328: (435-461): Assertion violation happens here.
// Warning 6328: (594-631): Assertion violation happens here.
// Warning 6328: (435-461): CHC: Assertion violation happens here.
// Warning 6328: (594-631): CHC: Assertion violation happens here.
@@ -18,5 +18,5 @@ contract C {
}
}
// ----
// Warning 6328: (189-203): Assertion violation happens here.
// Warning 2661: (146-149): Overflow (resulting value larger than 2**256 - 1) happens here.
// Warning 6328: (189-203): CHC: Assertion violation happens here.
// Warning 2661: (146-149): BMC: Overflow (resulting value larger than 2**256 - 1) happens here.
@@ -25,4 +25,4 @@ contract C {
}
}
// ----
// Warning 6328: (286-303): Assertion violation happens here.
// Warning 6328: (286-303): CHC: Assertion violation happens here.
@@ -23,4 +23,4 @@ contract C {
}
}
// ----
// Warning 6328: (256-273): Assertion violation happens here.
// Warning 6328: (256-273): CHC: Assertion violation happens here.
@@ -27,4 +27,4 @@ contract C {
}
}
// ----
// Warning 6328: (307-321): Assertion violation happens here.
// Warning 6328: (307-321): CHC: Assertion violation happens here.
@@ -13,4 +13,4 @@ contract A is C {
}
}
// ----
// Warning 6328: (152-166): Assertion violation happens here.
// Warning 6328: (152-166): CHC: Assertion violation happens here.
@@ -4,4 +4,4 @@ contract A is C { constructor() C(2) { assert(a == 2); } }
contract B is C { constructor() C(3) { assert(a == 3); } }
contract J is C { constructor() C(3) { assert(a == 4); } }
// ----
// Warning 6328: (243-257): Assertion violation happens here.
// Warning 6328: (243-257): CHC: Assertion violation 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 4984: (203-208): CHC: Overflow (resulting value larger than 2**256 - 1) happens here.
// Warning 4984: (244-249): CHC: Overflow (resulting value larger than 2**256 - 1) happens here.
// Warning 6328: (232-250): CHC: Assertion violation happens here.
@@ -18,6 +18,6 @@ contract A is B {
}
}
// ----
// 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.
// Warning 4984: (198-203): CHC: Overflow (resulting value larger than 2**256 - 1) happens here.
// Warning 4984: (207-212): CHC: Overflow (resulting value larger than 2**256 - 1) happens here.
// Warning 4984: (230-235): CHC: Overflow (resulting value larger than 2**256 - 1) happens here.
@@ -25,6 +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 4984: (200-205): CHC: Overflow (resulting value larger than 2**256 - 1) happens here.
// Warning 4984: (314-319): CHC: Overflow (resulting value larger than 2**256 - 1) happens here.
// Warning 6328: (302-320): CHC: Assertion violation happens here.
@@ -25,6 +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 4984: (200-205): CHC: Overflow (resulting value larger than 2**256 - 1) happens here.
// Warning 4984: (314-319): CHC: Overflow (resulting value larger than 2**256 - 1) happens here.
// Warning 6328: (302-320): CHC: Assertion violation happens here.
@@ -27,7 +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 4984: (160-165): CHC: Overflow (resulting value larger than 2**256 - 1) happens here.
// Warning 4984: (225-230): CHC: Overflow (resulting value larger than 2**256 - 1) happens here.
// Warning 4984: (241-246): CHC: Overflow (resulting value larger than 2**256 - 1) happens here.
// Warning 6328: (334-350): CHC: Assertion violation happens here.
@@ -20,4 +20,4 @@ contract A is B, B2 {
}
// ----
// Warning 5667: (164-170): Unused function parameter. Remove or comment out the variable name to silence this warning.
// Warning 6328: (194-208): Assertion violation happens here.
// Warning 6328: (194-208): CHC: Assertion violation happens here.
@@ -19,4 +19,4 @@ contract A is B {
}
// ----
// Warning 5667: (194-200): Unused function parameter. Remove or comment out the variable name to silence this warning.
// Warning 6328: (224-238): Assertion violation happens here.
// Warning 6328: (224-238): CHC: Assertion violation happens here.
@@ -17,4 +17,4 @@ contract A is B {
}
// ----
// Warning 5667: (138-144): Unused function parameter. Remove or comment out the variable name to silence this warning.
// Warning 6328: (172-186): Assertion violation happens here.
// Warning 6328: (172-186): CHC: Assertion violation happens here.
@@ -16,4 +16,4 @@ contract A is B {
}
// ----
// Warning 5667: (138-144): Unused function parameter. Remove or comment out the variable name to silence this warning.
// Warning 6328: (150-164): Assertion violation happens here.
// Warning 6328: (150-164): CHC: Assertion violation happens here.
@@ -27,4 +27,4 @@ contract A is B {
}
// ----
// Warning 5667: (254-260): Unused function parameter. Remove or comment out the variable name to silence this warning.
// Warning 6328: (284-298): Assertion violation happens here.
// Warning 6328: (284-298): CHC: Assertion violation happens here.
@@ -32,4 +32,4 @@ contract A is B {
}
// ----
// Warning 5667: (296-302): Unused function parameter. Remove or comment out the variable name to silence this warning.
// Warning 6328: (357-372): Assertion violation happens here.
// Warning 6328: (357-372): CHC: Assertion violation happens here.
@@ -25,5 +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 4984: (247-252): CHC: Overflow (resulting value larger than 2**256 - 1) happens here.
// Warning 6328: (328-342): CHC: Assertion violation happens here.
@@ -23,4 +23,4 @@ contract B is C {
contract A is B {
}
// ----
// Warning 6328: (266-280): Assertion violation happens here.
// Warning 6328: (266-280): CHC: Assertion violation happens here.
@@ -14,4 +14,4 @@ contract A is C {
}
}
// ----
// Warning 6328: (188-202): Assertion violation happens here.
// Warning 6328: (188-202): CHC: Assertion violation happens here.
@@ -13,5 +13,5 @@ contract A is C {
}
}
// ----
// Warning 6328: (134-148): Assertion violation happens here.
// Warning 6328: (152-168): Assertion violation happens here.
// Warning 6328: (134-148): CHC: Assertion violation happens here.
// Warning 6328: (152-168): CHC: Assertion violation happens here.
@@ -13,4 +13,4 @@ contract C {
}
}
// ----
// Warning 6328: (141-155): Assertion violation happens here.
// Warning 6328: (141-155): CHC: Assertion violation happens here.
@@ -13,4 +13,4 @@ contract C {
}
}
// ----
// Warning 6328: (145-159): Assertion violation happens here.
// Warning 6328: (145-159): CHC: Assertion violation happens here.
@@ -15,4 +15,4 @@ contract C is B {
}
}
// ----
// Warning 6328: (165-179): Assertion violation happens here.
// Warning 6328: (165-179): CHC: Assertion violation 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 4984: (115-120): CHC: Overflow (resulting value larger than 2**256 - 1) happens here.
// Warning 6328: (162-176): CHC: Assertion violation happens here.
@@ -9,4 +9,4 @@ contract C {
}
}
// ----
// Warning 6328: (116-132): Assertion violation happens here.
// Warning 6328: (116-132): CHC: Assertion violation happens here.
@@ -16,4 +16,4 @@ contract C
}
}
// ----
// Warning 6328: (209-223): Assertion violation happens here.
// Warning 6328: (209-223): CHC: Assertion violation happens here.
@@ -24,5 +24,5 @@ contract C
}
// ----
// Warning 6328: (209-223): Assertion violation happens here.
// Warning 6328: (321-335): Assertion violation happens here.
// Warning 6328: (209-223): CHC: Assertion violation happens here.
// Warning 6328: (321-335): CHC: Assertion violation happens here.
@@ -18,4 +18,4 @@ contract C
}
}
// ----
// Warning 6328: (261-277): Assertion violation happens here.
// Warning 6328: (261-277): CHC: Assertion violation happens here.
@@ -17,5 +17,4 @@ contract C
}
}
// ----
// Warning 1218: (297-321): Error trying to invoke SMT solver.
// Warning 4661: (297-321): Assertion violation happens here.
// Warning 4661: (297-321): BMC: Assertion violation happens here.
@@ -16,4 +16,4 @@ contract D
}
}
// ----
// Warning 6328: (191-206): Assertion violation happens here.
// Warning 6328: (191-206): CHC: Assertion violation happens here.
@@ -12,4 +12,4 @@ contract C
}
// ----
// Warning 6328: (161-174): Assertion violation happens here.
// Warning 6328: (161-174): CHC: Assertion violation happens here.
@@ -16,4 +16,4 @@ contract C
}
// ----
// Warning 6328: (229-242): Assertion violation happens here.
// Warning 6328: (229-242): CHC: Assertion violation happens here.

Some files were not shown because too many files have changed in this diff Show More