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

This commit is contained in:
chriseth
2020-10-19 18:02:50 +02:00
125 changed files with 1187 additions and 404 deletions
+2 -2
View File
@@ -9,7 +9,7 @@ IR:
object "C_80" {
code {
mstore(64, memoryguard(128))
mstore(64, 128)
if callvalue() { revert(0, 0) }
constructor_C_80()
@@ -25,7 +25,7 @@ object "C_80" {
}
object "C_80_deployed" {
code {
mstore(64, memoryguard(128))
mstore(64, 128)
if iszero(lt(calldatasize(), 4))
{
@@ -9,7 +9,7 @@ Optimized IR:
object "C_6" {
code {
{
mstore(64, memoryguard(0x80))
mstore(64, 128)
if callvalue() { revert(0, 0) }
let _1 := datasize("C_6_deployed")
codecopy(0, dataoffset("C_6_deployed"), _1)
@@ -19,7 +19,7 @@ object "C_6" {
object "C_6_deployed" {
code {
{
mstore(64, memoryguard(0x80))
mstore(64, 128)
revert(0, 0)
}
}
@@ -37,7 +37,7 @@ Optimized IR:
object "D_9" {
code {
{
mstore(64, memoryguard(0x80))
mstore(64, 128)
if callvalue() { revert(0, 0) }
let _1 := datasize("D_9_deployed")
codecopy(0, dataoffset("D_9_deployed"), _1)
@@ -47,7 +47,7 @@ object "D_9" {
object "D_9_deployed" {
code {
{
mstore(64, memoryguard(0x80))
mstore(64, 128)
revert(0, 0)
}
}
+16 -17
View File
@@ -9,7 +9,7 @@ Optimized IR:
object "C_2" {
code {
{
mstore(64, memoryguard(0x80))
mstore(64, 128)
if callvalue() { revert(0, 0) }
let _1 := datasize("C_2_deployed")
codecopy(0, dataoffset("C_2_deployed"), _1)
@@ -19,7 +19,7 @@ object "C_2" {
object "C_2_deployed" {
code {
{
mstore(64, memoryguard(0x80))
mstore(64, 128)
revert(0, 0)
}
}
@@ -37,7 +37,7 @@ Optimized IR:
object "D_15" {
code {
{
mstore(64, memoryguard(0x80))
mstore(64, 128)
if callvalue() { revert(0, 0) }
let _1 := datasize("D_15_deployed")
codecopy(0, dataoffset("D_15_deployed"), _1)
@@ -47,21 +47,20 @@ object "D_15" {
object "D_15_deployed" {
code {
{
let _1 := memoryguard(0x80)
mstore(64, _1)
mstore(64, 128)
if iszero(lt(calldatasize(), 4))
{
let _2 := 0
if eq(0x26121ff0, shr(224, calldataload(_2)))
let _1 := 0
if eq(0x26121ff0, shr(224, calldataload(_1)))
{
if callvalue() { revert(_2, _2) }
if slt(add(calldatasize(), not(3)), _2) { revert(_2, _2) }
let _3 := datasize("C_2")
let _4 := add(_1, _3)
if or(gt(_4, 0xffffffffffffffff), lt(_4, _1)) { invalid() }
datacopy(_1, dataoffset("C_2"), _3)
pop(create(_2, _1, sub(_4, _1)))
return(allocateMemory(_2), _2)
if callvalue() { revert(_1, _1) }
if slt(add(calldatasize(), not(3)), _1) { revert(_1, _1) }
let _2 := datasize("C_2")
let _3 := add(128, _2)
if or(gt(_3, 0xffffffffffffffff), lt(_3, 128)) { invalid() }
datacopy(128, dataoffset("C_2"), _2)
pop(create(_1, 128, _2))
return(allocateMemory(_1), _1)
}
}
revert(0, 0)
@@ -77,7 +76,7 @@ object "D_15" {
object "C_2" {
code {
{
mstore(64, memoryguard(0x80))
mstore(64, 128)
if callvalue() { revert(0, 0) }
let _1 := datasize("C_2_deployed")
codecopy(0, dataoffset("C_2_deployed"), _1)
@@ -87,7 +86,7 @@ object "D_15" {
object "C_2_deployed" {
code {
{
mstore(64, memoryguard(0x80))
mstore(64, 128)
revert(0, 0)
}
}
@@ -19,18 +19,16 @@ object "D_11" {
object "D_11_deployed" {
code {
{
let _1 := memoryguard(0x80)
mstore(64, _1)
mstore(64, 128)
if iszero(lt(calldatasize(), 4))
{
let _2 := 0
if eq(0x26121ff0, shr(224, calldataload(_2)))
let _1 := 0
if eq(0x26121ff0, shr(224, calldataload(_1)))
{
if callvalue() { revert(_2, _2) }
if slt(add(calldatasize(), not(3)), _2) { revert(_2, _2) }
if gt(_1, 0xffffffffffffffff) { invalid() }
mstore(64, _1)
return(_1, _2)
if callvalue() { revert(_1, _1) }
if slt(add(calldatasize(), not(3)), _1) { revert(_1, _1) }
mstore(64, 128)
return(128, _1)
}
}
revert(0, 0)
@@ -9,7 +9,7 @@ Optimized IR:
object "D_7" {
code {
{
mstore(64, memoryguard(0x80))
mstore(64, 128)
if callvalue() { revert(0, 0) }
let _1 := datasize("D_7_deployed")
codecopy(0, dataoffset("D_7_deployed"), _1)
@@ -0,0 +1 @@
--model-checker-engine all
@@ -0,0 +1,13 @@
Warning: CHC: Assertion violation happens here.
--> model_checker_engine_all/input.sol:6:3:
|
6 | assert(x > 0);
| ^^^^^^^^^^^^^
Note: Counterexample:
x = 0
Transaction trace:
constructor()
f(0)
@@ -0,0 +1,8 @@
// SPDX-License-Identifier: GPL-3.0
pragma solidity >=0.0;
pragma experimental SMTChecker;
contract test {
function f(uint x) public pure {
assert(x > 0);
}
}
@@ -0,0 +1 @@
--model-checker-engine bmc
@@ -0,0 +1,10 @@
Warning: BMC: Assertion violation happens here.
--> model_checker_engine_bmc/input.sol:6:3:
|
6 | assert(x > 0);
| ^^^^^^^^^^^^^
Note: Counterexample:
x = 0
Note: Callstack:
Note:
@@ -0,0 +1,8 @@
// SPDX-License-Identifier: GPL-3.0
pragma solidity >=0.0;
pragma experimental SMTChecker;
contract test {
function f(uint x) public pure {
assert(x > 0);
}
}
@@ -0,0 +1 @@
--model-checker-engine chc
@@ -0,0 +1,13 @@
Warning: CHC: Assertion violation happens here.
--> model_checker_engine_chc/input.sol:6:3:
|
6 | assert(x > 0);
| ^^^^^^^^^^^^^
Note: Counterexample:
x = 0
Transaction trace:
constructor()
f(0)
@@ -0,0 +1,8 @@
// SPDX-License-Identifier: GPL-3.0
pragma solidity >=0.0;
pragma experimental SMTChecker;
contract test {
function f(uint x) public pure {
assert(x > 0);
}
}
@@ -0,0 +1 @@
--model-checker-engine none
@@ -0,0 +1,5 @@
Warning: SPDX license identifier not provided in source file. Before publishing, consider adding a comment containing "SPDX-License-Identifier: <SPDX-License>" to each source file. Use "SPDX-License-Identifier: UNLICENSED" for non-open-source code. Please see https://spdx.org for more information.
--> model_checker_engine_none/input.sol
Warning: Source file does not specify required compiler version!
--> model_checker_engine_none/input.sol
@@ -0,0 +1,9 @@
// Removed to yield a warning, otherwise CI test fails with the expectation
// "no output requested"
//pragma solidity >=0.0;
pragma experimental SMTChecker;
contract test {
function f(uint x) public pure {
assert(x > 0);
}
}
+2 -2
View File
@@ -9,7 +9,7 @@ Optimized IR:
object "C_59" {
code {
{
mstore(64, memoryguard(0x80))
mstore(64, 128)
if callvalue() { revert(0, 0) }
let _1 := datasize("C_59_deployed")
codecopy(0, dataoffset("C_59_deployed"), _1)
@@ -19,7 +19,7 @@ object "C_59" {
object "C_59_deployed" {
code {
{
mstore(64, memoryguard(0x80))
mstore(64, 128)
if iszero(lt(calldatasize(), 4))
{
let _1 := 0
@@ -9,7 +9,7 @@ Optimized IR:
object "Arraysum_33" {
code {
{
mstore(64, memoryguard(0x80))
mstore(64, 128)
if callvalue() { revert(0, 0) }
let _1 := datasize("Arraysum_33_deployed")
codecopy(0, dataoffset("Arraysum_33_deployed"), _1)
@@ -19,7 +19,7 @@ object "Arraysum_33" {
object "Arraysum_33_deployed" {
code {
{
mstore(64, memoryguard(0x80))
mstore(64, 128)
if iszero(lt(calldatasize(), 4))
{
let _1 := 0
@@ -7,7 +7,7 @@
object \"C_6\" {
code {
mstore(64, memoryguard(128))
mstore(64, 128)
if callvalue() { revert(0, 0) }
constructor_C_6()
codecopy(0, dataoffset(\"C_6_deployed\"), datasize(\"C_6_deployed\"))
@@ -17,7 +17,7 @@ object \"C_6\" {
}
object \"C_6_deployed\" {
code {
mstore(64, memoryguard(128))
mstore(64, 128)
if iszero(lt(calldatasize(), 4))
{
let selector := shift_right_224_unsigned(calldataload(0))
@@ -8,7 +8,7 @@
object \"C_6\" {
code {
mstore(64, memoryguard(128))
mstore(64, 128)
if callvalue() { revert(0, 0) }
constructor_C_6()
@@ -24,7 +24,7 @@ object \"C_6\" {
}
object \"C_6_deployed\" {
code {
mstore(64, memoryguard(128))
mstore(64, 128)
if iszero(lt(calldatasize(), 4))
{
@@ -0,0 +1,14 @@
{
"language": "Solidity",
"sources":
{
"A":
{
"content": "// SPDX-License-Identifier: GPL-3.0\npragma solidity >=0.0;\npragma experimental SMTChecker;\ncontract C { function f(uint x) public pure { assert(x > 0); } }"
}
},
"modelCheckerSettings":
{
"engine": "all"
}
}
@@ -0,0 +1,19 @@
{"errors":[{"component":"general","errorCode":"6328","formattedMessage":"A:4:47: Warning: CHC: Assertion violation happens here.
contract C { function f(uint x) public pure { assert(x > 0); } }
^-----------^
Counterexample:
x = 0
Transaction trace:
constructor()
f(0)
","message":"CHC: Assertion violation happens here.","secondarySourceLocations":[{"message":"Counterexample:
x = 0
Transaction trace:
constructor()
f(0)"}],"severity":"warning","sourceLocation":{"end":150,"file":"A","start":137},"type":"Warning"}],"sources":{"A":{"id":0}}}
@@ -0,0 +1,14 @@
{
"language": "Solidity",
"sources":
{
"A":
{
"content": "// SPDX-License-Identifier: GPL-3.0\npragma solidity >=0.0;\npragma experimental SMTChecker;\ncontract C { function f(uint x) public pure { assert(x > 0); } }"
}
},
"modelCheckerSettings":
{
"engine": "bmc"
}
}
@@ -0,0 +1,33 @@
{"auxiliaryInputRequested":{"smtlib2queries":{"0x8b2c3058077c75f8fff85d2d387198b91b4e591448624f4bef0ab6c7b87d5ec1":"(set-option :produce-models true)
(set-logic ALL)
(declare-fun |error_0| () Int)
(declare-fun |this_0| () Int)
(declare-datatypes ((|state_type| 0)) (((|state_type| (|balances| (Array Int Int))))))
(declare-fun |state_0| () |state_type|)
(declare-datatypes ((|bytes_tuple| 0)) (((|bytes_tuple| (|bytes_tuple_accessor_array| (Array Int Int)) (|bytes_tuple_accessor_length| Int)))))
(declare-datatypes ((|tx_type| 0)) (((|tx_type| (|block.coinbase| Int) (|block.difficulty| Int) (|block.gaslimit| Int) (|block.number| Int) (|block.timestamp| Int) (|blockhash| (Array Int Int)) (|msg.data| |bytes_tuple|) (|msg.sender| Int) (|msg.sig| Int) (|msg.value| Int) (|tx.gasprice| Int) (|tx.origin| Int)))))
(declare-fun |tx_0| () |tx_type|)
(declare-datatypes ((|ecrecover_input_type| 0)) (((|ecrecover_input_type| (|hash| Int) (|v| Int) (|r| Int) (|s| Int)))))
(declare-datatypes ((|crypto_type| 0)) (((|crypto_type| (|ecrecover| (Array |ecrecover_input_type| Int)) (|keccak256| (Array |bytes_tuple| Int)) (|ripemd160| (Array |bytes_tuple| Int)) (|sha256| (Array |bytes_tuple| Int))))))
(declare-fun |crypto_0| () |crypto_type|)
(declare-fun |x_4_0| () Int)
(declare-fun |expr_8_0| () Int)
(declare-fun |expr_9_0| () Int)
(declare-fun |expr_10_1| () Bool)
(assert (and (and true (and (= expr_10_1 (> expr_8_0 expr_9_0)) (and (= expr_9_0 0) (and (= expr_8_0 x_4_0) (and (and (>= x_4_0 0) (<= x_4_0 115792089237316195423570985008687907853269984665640564039457584007913129639935)) true))))) (not expr_10_1)))
(declare-const |EVALEXPR_0| Int)
(assert (= |EVALEXPR_0| x_4_0))
(check-sat)
(get-value (|EVALEXPR_0| ))
"}},"errors":[{"component":"general","errorCode":"4661","formattedMessage":"A:4:47: Warning: BMC: Assertion violation happens here.
contract C { function f(uint x) public pure { assert(x > 0); } }
^-----------^
Counterexample:
x = 0
Callstack:
","message":"BMC: Assertion violation happens here.","secondarySourceLocations":[{"message":"Counterexample:
x = 0
"},{"message":"Callstack:"},{"message":""}],"severity":"warning","sourceLocation":{"end":150,"file":"A","start":137},"type":"Warning"}],"sources":{"A":{"id":0}}}
@@ -0,0 +1,14 @@
{
"language": "Solidity",
"sources":
{
"A":
{
"content": "// SPDX-License-Identifier: GPL-3.0\npragma solidity >=0.0;\npragma experimental SMTChecker;\ncontract C { function f(uint x) public pure { assert(x > 0); } }"
}
},
"modelCheckerSettings":
{
"engine": "chc"
}
}
@@ -0,0 +1,19 @@
{"errors":[{"component":"general","errorCode":"6328","formattedMessage":"A:4:47: Warning: CHC: Assertion violation happens here.
contract C { function f(uint x) public pure { assert(x > 0); } }
^-----------^
Counterexample:
x = 0
Transaction trace:
constructor()
f(0)
","message":"CHC: Assertion violation happens here.","secondarySourceLocations":[{"message":"Counterexample:
x = 0
Transaction trace:
constructor()
f(0)"}],"severity":"warning","sourceLocation":{"end":150,"file":"A","start":137},"type":"Warning"}],"sources":{"A":{"id":0}}}
@@ -0,0 +1,14 @@
{
"language": "Solidity",
"sources":
{
"A":
{
"content": "// SPDX-License-Identifier: GPL-3.0\npragma solidity >=0.0;\npragma experimental SMTChecker;\ncontract C { function f(uint x) public pure { assert(x > 0); } }"
}
},
"modelCheckerSettings":
{
"engine": "none"
}
}
@@ -0,0 +1 @@
{"sources":{"A":{"id":0}}}
+2 -2
View File
@@ -9,7 +9,7 @@ Optimized IR:
object "C_6" {
code {
{
mstore(64, memoryguard(0x80))
mstore(64, 128)
if callvalue() { revert(0, 0) }
codecopy(0, dataoffset("C_6_deployed"), datasize("C_6_deployed"))
return(0, datasize("C_6_deployed"))
@@ -18,7 +18,7 @@ object "C_6" {
object "C_6_deployed" {
code {
{
mstore(64, memoryguard(0x80))
mstore(64, 128)
if iszero(lt(calldatasize(), 4))
{
let selector := shift_right_224_unsigned(calldataload(0))
@@ -8,7 +8,7 @@
object \"C_10\" {
code {
mstore(64, memoryguard(128))
mstore(64, 128)
if callvalue() { revert(0, 0) }
constructor_C_10()
@@ -24,7 +24,7 @@ object \"C_10\" {
}
object \"C_10_deployed\" {
code {
mstore(64, memoryguard(128))
mstore(64, 128)
if iszero(lt(calldatasize(), 4))
{
@@ -8,7 +8,7 @@
object \"C_10\" {
code {
mstore(64, memoryguard(128))
mstore(64, 128)
if callvalue() { revert(0, 0) }
constructor_C_10()
@@ -24,7 +24,7 @@ object \"C_10\" {
}
object \"C_10_deployed\" {
code {
mstore(64, memoryguard(128))
mstore(64, 128)
if iszero(lt(calldatasize(), 4))
{
@@ -8,7 +8,7 @@
object \"C_10\" {
code {
mstore(64, memoryguard(128))
mstore(64, 128)
if callvalue() { revert(0, 0) }
constructor_C_10()
@@ -24,7 +24,7 @@ object \"C_10\" {
}
object \"C_10_deployed\" {
code {
mstore(64, memoryguard(128))
mstore(64, 128)
if iszero(lt(calldatasize(), 4))
{
@@ -8,7 +8,7 @@
object \"C_10\" {
code {
mstore(64, memoryguard(128))
mstore(64, 128)
if callvalue() { revert(0, 0) }
constructor_C_10()
@@ -24,7 +24,7 @@ object \"C_10\" {
}
object \"C_10_deployed\" {
code {
mstore(64, memoryguard(128))
mstore(64, 128)
if iszero(lt(calldatasize(), 4))
{
@@ -8,7 +8,7 @@
object \"C_10\" {
code {
mstore(64, memoryguard(128))
mstore(64, 128)
if callvalue() { revert(0, 0) }
constructor_C_10()
@@ -24,7 +24,7 @@ object \"C_10\" {
}
object \"C_10_deployed\" {
code {
mstore(64, memoryguard(128))
mstore(64, 128)
if iszero(lt(calldatasize(), 4))
{
+4 -4
View File
@@ -1,5 +1,5 @@
Error (1834): Unimplemented feature error: Byte Arrays not yet implemented! in FILENAME REMOVED
--> yul_unimplemented/input.sol:6:9:
Error (1834): Unimplemented feature error: Copying from storage to storage is not yet implemented. in FILENAME REMOVED
--> yul_unimplemented/input.sol:7:9:
|
6 | delete a;
| ^^^^^^^^
7 | a = b;
| ^^^^^
@@ -2,7 +2,8 @@
pragma solidity >=0.0;
contract test {
bytes a;
bytes b;
function f() public {
delete a;
a = b;
}
}