mirror of
https://github.com/ethereum/solidity
synced 2023-10-03 13:03:40 +00:00
Print @src and @use-src locations in AsmPrinter
This commit is contained in:
@@ -165,6 +165,7 @@ EOF
|
||||
# Replace escaped newlines by actual newlines for readability
|
||||
# shellcheck disable=SC1003
|
||||
sed -i.bak -E -e 's/\\n/\'$'\n/g' "$stdout_path"
|
||||
sed -i.bak -e 's/\(^[ ]*auxdata: \)0x[0-9a-f]*$/\1<AUXDATA REMOVED>/' "$stdout_path"
|
||||
rm "$stdout_path.bak"
|
||||
else
|
||||
sed -i.bak -e '/^Warning: This is a pre-release compiler version, please do not use it in production./d' "$stderr_path"
|
||||
|
||||
@@ -6,12 +6,16 @@ Optimized IR:
|
||||
* !USE AT YOUR OWN RISK! *
|
||||
*=====================================================*/
|
||||
|
||||
/// @use-src 0:"constant_optimizer_yul/input.sol", 1:"#utility.yul"
|
||||
object "C_12" {
|
||||
code {
|
||||
{
|
||||
/// @src 0:61:418
|
||||
mstore(64, 128)
|
||||
if callvalue() { revert(0, 0) }
|
||||
/// @src 0:103:238
|
||||
sstore(0, shl(180, 1))
|
||||
/// @src 0:61:418
|
||||
let _1 := datasize("C_12_deployed")
|
||||
codecopy(128, dataoffset("C_12_deployed"), _1)
|
||||
return(128, _1)
|
||||
@@ -20,9 +24,12 @@ object "C_12" {
|
||||
object "C_12_deployed" {
|
||||
code {
|
||||
{
|
||||
/// @src 0:61:418
|
||||
mstore(64, 128)
|
||||
if callvalue() { revert(0, 0) }
|
||||
/// @src 0:279:410
|
||||
sstore(0, 0x1000000000000000000000000000000000000000000000)
|
||||
/// @src 0:61:418
|
||||
stop()
|
||||
}
|
||||
}
|
||||
|
||||
@@ -25,11 +25,13 @@ object "C_81" {
|
||||
memPtr := mload(64)
|
||||
}
|
||||
|
||||
/// @src 0:82:370
|
||||
function constructor_C_81() {
|
||||
|
||||
/// @src 0:82:370
|
||||
|
||||
}
|
||||
/// @src 0:82:370
|
||||
|
||||
function revert_error_ca66f745a3ce8ff40e2ccaf1ad45db7774001b90d25810abd9040049be7bf4bb() {
|
||||
revert(0, 0)
|
||||
@@ -212,8 +214,8 @@ object "C_81" {
|
||||
converted := cleanup_t_int256(value)
|
||||
}
|
||||
|
||||
/// @src 0:96:368
|
||||
function fun_f_80(var_a_4, var_b_6, var_c_8, var_d_10) -> var__13, var__15, var__17, var__19 {
|
||||
/// @src 0:96:368
|
||||
/// @src 0:160:164
|
||||
let zero_t_uint256_1 := zero_value_for_split_t_uint256()
|
||||
var__13 := zero_t_uint256_1
|
||||
@@ -336,6 +338,7 @@ object "C_81" {
|
||||
leave
|
||||
|
||||
}
|
||||
/// @src 0:82:370
|
||||
|
||||
function panic_error_0x11() {
|
||||
mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)
|
||||
|
||||
@@ -6,9 +6,11 @@ Optimized IR:
|
||||
* !USE AT YOUR OWN RISK! *
|
||||
*=====================================================*/
|
||||
|
||||
/// @use-src 0:"ir_compiler_inheritance_nosubobjects/input.sol", 1:"#utility.yul"
|
||||
object "C_7" {
|
||||
code {
|
||||
{
|
||||
/// @src 0:82:117
|
||||
mstore(64, 128)
|
||||
if callvalue() { revert(0, 0) }
|
||||
let _1 := datasize("C_7_deployed")
|
||||
@@ -19,6 +21,7 @@ object "C_7" {
|
||||
object "C_7_deployed" {
|
||||
code {
|
||||
{
|
||||
/// @src 0:82:117
|
||||
mstore(64, 128)
|
||||
revert(0, 0)
|
||||
}
|
||||
@@ -35,9 +38,11 @@ Optimized IR:
|
||||
* !USE AT YOUR OWN RISK! *
|
||||
*=====================================================*/
|
||||
|
||||
/// @use-src 0:"ir_compiler_inheritance_nosubobjects/input.sol", 1:"#utility.yul"
|
||||
object "D_10" {
|
||||
code {
|
||||
{
|
||||
/// @src 0:118:137
|
||||
mstore(64, 128)
|
||||
if callvalue() { revert(0, 0) }
|
||||
let _1 := datasize("D_10_deployed")
|
||||
@@ -48,6 +53,7 @@ object "D_10" {
|
||||
object "D_10_deployed" {
|
||||
code {
|
||||
{
|
||||
/// @src 0:118:137
|
||||
mstore(64, 128)
|
||||
revert(0, 0)
|
||||
}
|
||||
|
||||
@@ -6,9 +6,11 @@ Optimized IR:
|
||||
* !USE AT YOUR OWN RISK! *
|
||||
*=====================================================*/
|
||||
|
||||
/// @use-src 0:"ir_compiler_subobjects/input.sol", 1:"#utility.yul"
|
||||
object "C_3" {
|
||||
code {
|
||||
{
|
||||
/// @src 0:82:95
|
||||
mstore(64, 128)
|
||||
if callvalue() { revert(0, 0) }
|
||||
let _1 := datasize("C_3_deployed")
|
||||
@@ -19,6 +21,7 @@ object "C_3" {
|
||||
object "C_3_deployed" {
|
||||
code {
|
||||
{
|
||||
/// @src 0:82:95
|
||||
mstore(64, 128)
|
||||
revert(0, 0)
|
||||
}
|
||||
@@ -35,9 +38,11 @@ Optimized IR:
|
||||
* !USE AT YOUR OWN RISK! *
|
||||
*=====================================================*/
|
||||
|
||||
/// @use-src 0:"ir_compiler_subobjects/input.sol", 1:"#utility.yul"
|
||||
object "D_16" {
|
||||
code {
|
||||
{
|
||||
/// @src 0:96:165
|
||||
mstore(64, 128)
|
||||
if callvalue() { revert(0, 0) }
|
||||
let _1 := datasize("D_16_deployed")
|
||||
@@ -48,6 +53,7 @@ object "D_16" {
|
||||
object "D_16_deployed" {
|
||||
code {
|
||||
{
|
||||
/// @src 0:96:165
|
||||
mstore(64, 128)
|
||||
if iszero(lt(calldatasize(), 4))
|
||||
{
|
||||
@@ -56,17 +62,22 @@ object "D_16" {
|
||||
{
|
||||
if callvalue() { revert(_1, _1) }
|
||||
if slt(add(calldatasize(), not(3)), _1) { revert(_1, _1) }
|
||||
/// @src 0:149:156
|
||||
let _2 := datasize("C_3")
|
||||
let _3 := add(128, _2)
|
||||
if or(gt(_3, 0xffffffffffffffff), lt(_3, 128))
|
||||
let _3 := add(/** @src 0:96:165 */ 128, /** @src 0:149:156 */ _2)
|
||||
if or(gt(_3, 0xffffffffffffffff), lt(_3, /** @src 0:96:165 */ 128))
|
||||
/// @src 0:149:156
|
||||
{
|
||||
/// @src 0:96:165
|
||||
mstore(_1, shl(224, 0x4e487b71))
|
||||
mstore(4, 0x41)
|
||||
revert(_1, 0x24)
|
||||
}
|
||||
datacopy(128, dataoffset("C_3"), _2)
|
||||
if iszero(create(_1, 128, _2))
|
||||
/// @src 0:149:156
|
||||
datacopy(/** @src 0:96:165 */ 128, /** @src 0:149:156 */ dataoffset("C_3"), _2)
|
||||
if iszero(create(/** @src 0:96:165 */ _1, 128, /** @src 0:149:156 */ _2))
|
||||
{
|
||||
/// @src 0:96:165
|
||||
let pos := mload(64)
|
||||
returndatacopy(pos, _1, returndatasize())
|
||||
revert(pos, returndatasize())
|
||||
@@ -80,6 +91,7 @@ object "D_16" {
|
||||
object "C_3" {
|
||||
code {
|
||||
{
|
||||
/// @src 0:82:95
|
||||
mstore(64, 128)
|
||||
if callvalue() { revert(0, 0) }
|
||||
let _1 := datasize("C_3_deployed")
|
||||
@@ -90,6 +102,7 @@ object "D_16" {
|
||||
object "C_3_deployed" {
|
||||
code {
|
||||
{
|
||||
/// @src 0:82:95
|
||||
mstore(64, 128)
|
||||
revert(0, 0)
|
||||
}
|
||||
|
||||
@@ -6,9 +6,11 @@ Optimized IR:
|
||||
* !USE AT YOUR OWN RISK! *
|
||||
*=====================================================*/
|
||||
|
||||
/// @use-src 0:"ir_with_assembly_no_memoryguard_creation/input.sol", 1:"#utility.yul"
|
||||
object "D_12" {
|
||||
code {
|
||||
{
|
||||
/// @src 0:82:161
|
||||
mstore(64, 128)
|
||||
if callvalue() { revert(0, 0) }
|
||||
let _1 := datasize("D_12_deployed")
|
||||
@@ -19,6 +21,7 @@ object "D_12" {
|
||||
object "D_12_deployed" {
|
||||
code {
|
||||
{
|
||||
/// @src 0:82:161
|
||||
mstore(64, 128)
|
||||
if iszero(lt(calldatasize(), 4))
|
||||
{
|
||||
|
||||
@@ -6,9 +6,11 @@ Optimized IR:
|
||||
* !USE AT YOUR OWN RISK! *
|
||||
*=====================================================*/
|
||||
|
||||
/// @use-src 0:"ir_with_assembly_no_memoryguard_runtime/input.sol", 1:"#utility.yul"
|
||||
object "D_8" {
|
||||
code {
|
||||
{
|
||||
/// @src 0:82:153
|
||||
mstore(64, 128)
|
||||
if callvalue() { revert(0, 0) }
|
||||
let _1 := datasize("D_8_deployed")
|
||||
@@ -19,6 +21,7 @@ object "D_8" {
|
||||
object "D_8_deployed" {
|
||||
code {
|
||||
{
|
||||
/// @src 0:82:153
|
||||
mstore(64, 128)
|
||||
if iszero(lt(calldatasize(), 4))
|
||||
{
|
||||
|
||||
@@ -6,13 +6,17 @@ Optimized IR:
|
||||
* !USE AT YOUR OWN RISK! *
|
||||
*=====================================================*/
|
||||
|
||||
/// @use-src 0:"keccak_optimization_deploy_code/input.sol", 1:"#utility.yul"
|
||||
object "C_12" {
|
||||
code {
|
||||
{
|
||||
/// @src 0:62:463
|
||||
mstore(64, 128)
|
||||
if callvalue() { revert(0, 0) }
|
||||
/// @src 0:103:275
|
||||
mstore(0, 100)
|
||||
sstore(0, keccak256(0, 32))
|
||||
/// @src 0:62:463
|
||||
let _1 := datasize("C_12_deployed")
|
||||
codecopy(128, dataoffset("C_12_deployed"), _1)
|
||||
return(128, _1)
|
||||
@@ -21,10 +25,13 @@ object "C_12" {
|
||||
object "C_12_deployed" {
|
||||
code {
|
||||
{
|
||||
/// @src 0:62:463
|
||||
mstore(64, 128)
|
||||
if callvalue() { revert(0, 0) }
|
||||
/// @src 0:317:454
|
||||
mstore(0, 100)
|
||||
sstore(0, 17385872270140913825666367956517731270094621555228275961425792378517567244498)
|
||||
/// @src 0:62:463
|
||||
stop()
|
||||
}
|
||||
}
|
||||
|
||||
@@ -6,9 +6,11 @@ Optimized IR:
|
||||
* !USE AT YOUR OWN RISK! *
|
||||
*=====================================================*/
|
||||
|
||||
/// @use-src 0:"keccak_optimization_low_runs/input.sol", 1:"#utility.yul"
|
||||
object "C_7" {
|
||||
code {
|
||||
{
|
||||
/// @src 0:62:285
|
||||
mstore(64, 128)
|
||||
if callvalue() { revert(0, 0) }
|
||||
let _1 := datasize("C_7_deployed")
|
||||
@@ -19,10 +21,13 @@ object "C_7" {
|
||||
object "C_7_deployed" {
|
||||
code {
|
||||
{
|
||||
/// @src 0:62:285
|
||||
mstore(64, 128)
|
||||
if callvalue() { revert(0, 0) }
|
||||
/// @src 0:109:277
|
||||
mstore(0, 100)
|
||||
sstore(0, keccak256(0, 32))
|
||||
/// @src 0:62:285
|
||||
stop()
|
||||
}
|
||||
}
|
||||
|
||||
@@ -6,9 +6,11 @@ Optimized IR:
|
||||
* !USE AT YOUR OWN RISK! *
|
||||
*=====================================================*/
|
||||
|
||||
/// @use-src 0:"name_simplifier/input.sol", 1:"#utility.yul"
|
||||
object "C_59" {
|
||||
code {
|
||||
{
|
||||
/// @src 0:346:625
|
||||
mstore(64, 128)
|
||||
if callvalue() { revert(0, 0) }
|
||||
let _1 := datasize("C_59_deployed")
|
||||
@@ -19,6 +21,7 @@ object "C_59" {
|
||||
object "C_59_deployed" {
|
||||
code {
|
||||
{
|
||||
/// @src 0:346:625
|
||||
mstore(64, 128)
|
||||
if iszero(lt(calldatasize(), 4))
|
||||
{
|
||||
@@ -90,14 +93,18 @@ object "C_59" {
|
||||
if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }
|
||||
mstore(64, newFreePtr)
|
||||
}
|
||||
/// @src 0:381:623
|
||||
function fun_sumArray(var_s_mpos) -> var, var_mpos
|
||||
{
|
||||
/// @src 0:346:625
|
||||
if iszero(mload(var_s_mpos)) { panic_error_0x32() }
|
||||
sstore(0x00, mload(mload(add(var_s_mpos, 32))))
|
||||
sstore(/** @src 0:472:473 */ 0x00, /** @src 0:346:625 */ mload(/** @src 0:469:474 */ mload(/** @src 0:346:625 */ add(var_s_mpos, 32))))
|
||||
if iszero(lt(1, mload(var_s_mpos))) { panic_error_0x32() }
|
||||
let _1 := mload(mload(add(var_s_mpos, 64)))
|
||||
let _1 := mload(/** @src 0:489:494 */ mload(/** @src 0:346:625 */ add(var_s_mpos, 64)))
|
||||
sstore(0x02, _1)
|
||||
/// @src 0:500:619
|
||||
var := _1
|
||||
/// @src 0:346:625
|
||||
let memPtr := mload(64)
|
||||
let newFreePtr := add(memPtr, 160)
|
||||
if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }
|
||||
@@ -107,8 +114,10 @@ object "C_59" {
|
||||
mstore(add(memPtr, 64), "ngstringlongstringlongstringlong")
|
||||
mstore(add(memPtr, 96), "stringlongstringlongstringlongst")
|
||||
mstore(add(memPtr, 128), "ring")
|
||||
/// @src 0:500:619
|
||||
var_mpos := memPtr
|
||||
}
|
||||
/// @src 0:346:625
|
||||
function panic_error_0x32()
|
||||
{
|
||||
mstore(0, shl(224, 0x4e487b71))
|
||||
|
||||
@@ -6,9 +6,11 @@ Optimized IR:
|
||||
* !USE AT YOUR OWN RISK! *
|
||||
*=====================================================*/
|
||||
|
||||
/// @use-src 0:"optimizer_array_sload/input.sol", 1:"#utility.yul"
|
||||
object "Arraysum_34" {
|
||||
code {
|
||||
{
|
||||
/// @src 0:80:429
|
||||
mstore(64, 128)
|
||||
if callvalue() { revert(0, 0) }
|
||||
let _1 := datasize("Arraysum_34_deployed")
|
||||
@@ -19,6 +21,7 @@ object "Arraysum_34" {
|
||||
object "Arraysum_34_deployed" {
|
||||
code {
|
||||
{
|
||||
/// @src 0:80:429
|
||||
mstore(64, 128)
|
||||
if iszero(lt(calldatasize(), 4))
|
||||
{
|
||||
@@ -28,19 +31,27 @@ object "Arraysum_34" {
|
||||
if callvalue() { revert(_1, _1) }
|
||||
if slt(add(calldatasize(), not(3)), _1) { revert(_1, _1) }
|
||||
let var_sum := _1
|
||||
let var_i := _1
|
||||
/// @src 0:368:378
|
||||
let var_i := /** @src 0:80:429 */ _1
|
||||
let _2 := sload(_1)
|
||||
/// @src 0:364:423
|
||||
for { }
|
||||
lt(var_i, _2)
|
||||
/** @src 0:380:397 */ lt(var_i, _2)
|
||||
/// @src 0:368:378
|
||||
{
|
||||
/// @src 0:80:429
|
||||
if eq(var_i, not(0)) { panic_error_0x11() }
|
||||
var_i := add(var_i, 1)
|
||||
/// @src 0:399:402
|
||||
var_i := /** @src 0:80:429 */ add(var_i, 1)
|
||||
}
|
||||
/// @src 0:399:402
|
||||
{
|
||||
/// @src 0:80:429
|
||||
mstore(_1, _1)
|
||||
let _3 := sload(add(18569430475105882587588266137607568536673111973893317399460219858819262702947, var_i))
|
||||
if gt(var_sum, not(_3)) { panic_error_0x11() }
|
||||
var_sum := add(var_sum, _3)
|
||||
/// @src 0:407:423
|
||||
var_sum := /** @src 0:80:429 */ add(var_sum, _3)
|
||||
}
|
||||
let memPos := mload(64)
|
||||
return(memPos, sub(abi_encode_uint256(memPos, var_sum), memPos))
|
||||
|
||||
@@ -25,11 +25,13 @@ object "C_15" {
|
||||
memPtr := mload(64)
|
||||
}
|
||||
|
||||
/// @src 0:59:147
|
||||
function constructor_C_15() {
|
||||
|
||||
/// @src 0:59:147
|
||||
|
||||
}
|
||||
/// @src 0:59:147
|
||||
|
||||
function revert_error_ca66f745a3ce8ff40e2ccaf1ad45db7774001b90d25810abd9040049be7bf4bb() {
|
||||
|
||||
@@ -217,10 +219,11 @@ object "C_15" {
|
||||
mstore(64, newFreePtr)
|
||||
}
|
||||
|
||||
/// @src 0:93:145
|
||||
function fun_f_14(var__7_mpos, var_e_10) {
|
||||
/// @src 0:93:145
|
||||
|
||||
}
|
||||
/// @src 0:59:147
|
||||
|
||||
function panic_error_0x41() {
|
||||
mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)
|
||||
|
||||
@@ -5,8 +5,10 @@
|
||||
* !USE AT YOUR OWN RISK! *
|
||||
*=====================================================*/
|
||||
|
||||
/// @use-src 0:\"A\", 1:\"#utility.yul\"
|
||||
object \"C_7\" {
|
||||
code {
|
||||
/// @src 0:79:121
|
||||
mstore(64, 128)
|
||||
if callvalue()
|
||||
{
|
||||
@@ -25,6 +27,7 @@ object \"C_7\" {
|
||||
}
|
||||
object \"C_7_deployed\" {
|
||||
code {
|
||||
/// @src 0:79:121
|
||||
mstore(64, 128)
|
||||
if iszero(lt(calldatasize(), 4))
|
||||
{
|
||||
@@ -56,8 +59,10 @@ object \"C_7\" {
|
||||
{ tail := add(headStart, 0) }
|
||||
function allocate_unbounded() -> memPtr
|
||||
{ memPtr := mload(64) }
|
||||
/// @src 0:92:119
|
||||
function fun_f_6()
|
||||
{ }
|
||||
/// @src 0:79:121
|
||||
function revert_error_42b3090547df1d2001c96683413b8cf91c1b902ef5e3cb8d9f6f304cf7446f74()
|
||||
{ revert(0, 0) }
|
||||
function revert_error_ca66f745a3ce8ff40e2ccaf1ad45db7774001b90d25810abd9040049be7bf4bb()
|
||||
|
||||
@@ -24,11 +24,13 @@ object \"C_7\" {
|
||||
memPtr := mload(64)
|
||||
}
|
||||
|
||||
/// @src 0:79:121
|
||||
function constructor_C_7() {
|
||||
|
||||
/// @src 0:79:121
|
||||
|
||||
}
|
||||
/// @src 0:79:121
|
||||
|
||||
function revert_error_ca66f745a3ce8ff40e2ccaf1ad45db7774001b90d25810abd9040049be7bf4bb() {
|
||||
revert(0, 0)
|
||||
@@ -76,10 +78,11 @@ object \"C_7\" {
|
||||
memPtr := mload(64)
|
||||
}
|
||||
|
||||
/// @src 0:92:119
|
||||
function fun_f_6() {
|
||||
/// @src 0:92:119
|
||||
|
||||
}
|
||||
/// @src 0:79:121
|
||||
|
||||
function revert_error_42b3090547df1d2001c96683413b8cf91c1b902ef5e3cb8d9f6f304cf7446f74() {
|
||||
revert(0, 0)
|
||||
|
||||
@@ -24,11 +24,13 @@ object \"C_3\" {
|
||||
memPtr := mload(64)
|
||||
}
|
||||
|
||||
/// @src 0:79:92
|
||||
function constructor_C_3() {
|
||||
|
||||
/// @src 0:79:92
|
||||
|
||||
}
|
||||
/// @src 0:79:92
|
||||
|
||||
function revert_error_ca66f745a3ce8ff40e2ccaf1ad45db7774001b90d25810abd9040049be7bf4bb() {
|
||||
revert(0, 0)
|
||||
@@ -98,11 +100,13 @@ object \"D_16\" {
|
||||
memPtr := mload(64)
|
||||
}
|
||||
|
||||
/// @src 0:93:146
|
||||
function constructor_D_16() {
|
||||
|
||||
/// @src 0:93:146
|
||||
|
||||
}
|
||||
/// @src 0:93:146
|
||||
|
||||
function revert_error_ca66f745a3ce8ff40e2ccaf1ad45db7774001b90d25810abd9040049be7bf4bb() {
|
||||
revert(0, 0)
|
||||
@@ -150,8 +154,8 @@ object \"D_16\" {
|
||||
memPtr := mload(64)
|
||||
}
|
||||
|
||||
/// @src 0:106:144
|
||||
function fun_f_15() {
|
||||
/// @src 0:106:144
|
||||
|
||||
/// @src 0:134:141
|
||||
let _1 := allocate_unbounded()
|
||||
@@ -168,6 +172,7 @@ object \"D_16\" {
|
||||
let var_c_8_address := expr_12_address
|
||||
|
||||
}
|
||||
/// @src 0:93:146
|
||||
|
||||
function panic_error_0x41() {
|
||||
mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)
|
||||
@@ -226,11 +231,13 @@ object \"D_16\" {
|
||||
memPtr := mload(64)
|
||||
}
|
||||
|
||||
/// @src 0:79:92
|
||||
function constructor_C_3() {
|
||||
|
||||
/// @src 0:79:92
|
||||
|
||||
}
|
||||
/// @src 0:79:92
|
||||
|
||||
function revert_error_ca66f745a3ce8ff40e2ccaf1ad45db7774001b90d25810abd9040049be7bf4bb() {
|
||||
revert(0, 0)
|
||||
|
||||
@@ -25,11 +25,13 @@ object "test_11" {
|
||||
memPtr := mload(64)
|
||||
}
|
||||
|
||||
/// @src 0:79:169
|
||||
function constructor_test_11() {
|
||||
|
||||
/// @src 0:79:169
|
||||
|
||||
}
|
||||
/// @src 0:79:169
|
||||
|
||||
function revert_error_ca66f745a3ce8ff40e2ccaf1ad45db7774001b90d25810abd9040049be7bf4bb() {
|
||||
revert(0, 0)
|
||||
@@ -87,8 +89,8 @@ object "test_11" {
|
||||
cleaned := iszero(iszero(value))
|
||||
}
|
||||
|
||||
/// @src 0:99:167
|
||||
function fun_f_10() -> var__5 {
|
||||
/// @src 0:99:167
|
||||
/// @src 0:133:137
|
||||
let zero_t_bool_1 := zero_value_for_split_t_bool()
|
||||
var__5 := zero_t_bool_1
|
||||
@@ -100,6 +102,7 @@ object "test_11" {
|
||||
leave
|
||||
|
||||
}
|
||||
/// @src 0:79:169
|
||||
|
||||
function revert_error_42b3090547df1d2001c96683413b8cf91c1b902ef5e3cb8d9f6f304cf7446f74() {
|
||||
revert(0, 0)
|
||||
|
||||
@@ -12,9 +12,11 @@ Optimized IR:
|
||||
* !USE AT YOUR OWN RISK! *
|
||||
*=====================================================*/
|
||||
|
||||
/// @use-src 0:"viair_subobjects/input.sol", 1:"#utility.yul"
|
||||
object "C_3" {
|
||||
code {
|
||||
{
|
||||
/// @src 0:82:95
|
||||
mstore(64, 128)
|
||||
if callvalue() { revert(0, 0) }
|
||||
let _1 := datasize("C_3_deployed")
|
||||
@@ -25,6 +27,7 @@ object "C_3" {
|
||||
object "C_3_deployed" {
|
||||
code {
|
||||
{
|
||||
/// @src 0:82:95
|
||||
mstore(64, 128)
|
||||
revert(0, 0)
|
||||
}
|
||||
@@ -47,9 +50,11 @@ Optimized IR:
|
||||
* !USE AT YOUR OWN RISK! *
|
||||
*=====================================================*/
|
||||
|
||||
/// @use-src 0:"viair_subobjects/input.sol", 1:"#utility.yul"
|
||||
object "D_16" {
|
||||
code {
|
||||
{
|
||||
/// @src 0:96:165
|
||||
mstore(64, 128)
|
||||
if callvalue() { revert(0, 0) }
|
||||
let _1 := datasize("D_16_deployed")
|
||||
@@ -60,6 +65,7 @@ object "D_16" {
|
||||
object "D_16_deployed" {
|
||||
code {
|
||||
{
|
||||
/// @src 0:96:165
|
||||
mstore(64, 128)
|
||||
if iszero(lt(calldatasize(), 4))
|
||||
{
|
||||
@@ -68,17 +74,22 @@ object "D_16" {
|
||||
{
|
||||
if callvalue() { revert(_1, _1) }
|
||||
if slt(add(calldatasize(), not(3)), _1) { revert(_1, _1) }
|
||||
/// @src 0:149:156
|
||||
let _2 := datasize("C_3")
|
||||
let _3 := add(128, _2)
|
||||
if or(gt(_3, 0xffffffffffffffff), lt(_3, 128))
|
||||
let _3 := add(/** @src 0:96:165 */ 128, /** @src 0:149:156 */ _2)
|
||||
if or(gt(_3, 0xffffffffffffffff), lt(_3, /** @src 0:96:165 */ 128))
|
||||
/// @src 0:149:156
|
||||
{
|
||||
/// @src 0:96:165
|
||||
mstore(_1, shl(224, 0x4e487b71))
|
||||
mstore(4, 0x41)
|
||||
revert(_1, 0x24)
|
||||
}
|
||||
datacopy(128, dataoffset("C_3"), _2)
|
||||
if iszero(create(_1, 128, _2))
|
||||
/// @src 0:149:156
|
||||
datacopy(/** @src 0:96:165 */ 128, /** @src 0:149:156 */ dataoffset("C_3"), _2)
|
||||
if iszero(create(/** @src 0:96:165 */ _1, 128, /** @src 0:149:156 */ _2))
|
||||
{
|
||||
/// @src 0:96:165
|
||||
let pos := mload(64)
|
||||
returndatacopy(pos, _1, returndatasize())
|
||||
revert(pos, returndatasize())
|
||||
@@ -92,6 +103,7 @@ object "D_16" {
|
||||
object "C_3" {
|
||||
code {
|
||||
{
|
||||
/// @src 0:82:95
|
||||
mstore(64, 128)
|
||||
if callvalue() { revert(0, 0) }
|
||||
let _1 := datasize("C_3_deployed")
|
||||
@@ -102,6 +114,7 @@ object "D_16" {
|
||||
object "C_3_deployed" {
|
||||
code {
|
||||
{
|
||||
/// @src 0:82:95
|
||||
mstore(64, 128)
|
||||
revert(0, 0)
|
||||
}
|
||||
|
||||
@@ -6,9 +6,11 @@ Optimized IR:
|
||||
* !USE AT YOUR OWN RISK! *
|
||||
*=====================================================*/
|
||||
|
||||
/// @use-src 0:"yul_optimizer_steps/input.sol", 1:"#utility.yul"
|
||||
object "C_7" {
|
||||
code {
|
||||
{
|
||||
/// @src 0:80:112
|
||||
mstore(64, 128)
|
||||
if callvalue()
|
||||
{
|
||||
@@ -26,6 +28,7 @@ object "C_7" {
|
||||
object "C_7_deployed" {
|
||||
code {
|
||||
{
|
||||
/// @src 0:80:112
|
||||
mstore(64, 128)
|
||||
if iszero(lt(calldatasize(), 4))
|
||||
{
|
||||
|
||||
@@ -53,6 +53,7 @@ object \"C_54\" {
|
||||
cleaned := value
|
||||
}
|
||||
|
||||
/// @src 0:175:223
|
||||
function constructor_C_54(var__init_12) {
|
||||
|
||||
/// @src 0:175:223
|
||||
@@ -70,6 +71,7 @@ object \"C_54\" {
|
||||
let expr_17 := expr_16
|
||||
|
||||
}
|
||||
/// @src 0:79:428
|
||||
|
||||
function convert_t_int256_to_t_int256(value) -> converted {
|
||||
converted := cleanup_t_int256(value)
|
||||
@@ -303,17 +305,18 @@ object \"C_54\" {
|
||||
mstore(64, newFreePtr)
|
||||
}
|
||||
|
||||
/// @src 0:343:426
|
||||
function fun_f2_53() -> var__42 {
|
||||
/// @src 0:343:426
|
||||
/// @src 0:375:378
|
||||
let zero_t_int256_4 := zero_value_for_split_t_int256()
|
||||
var__42 := zero_t_int256_4
|
||||
|
||||
var__42 := modifier_m_40(var__42)
|
||||
}
|
||||
/// @src 0:79:428
|
||||
|
||||
/// @src 0:343:426
|
||||
function fun_f2_53_inner(_8) -> var__42 {
|
||||
/// @src 0:343:426
|
||||
var__42 := _8
|
||||
|
||||
/// @src 0:392:400
|
||||
@@ -359,9 +362,10 @@ object \"C_54\" {
|
||||
leave
|
||||
|
||||
}
|
||||
/// @src 0:79:428
|
||||
|
||||
/// @src 0:226:302
|
||||
function fun_f_30() -> var__23 {
|
||||
/// @src 0:226:302
|
||||
/// @src 0:262:265
|
||||
let zero_t_int256_1 := zero_value_for_split_t_int256()
|
||||
var__23 := zero_t_int256_1
|
||||
@@ -379,9 +383,10 @@ object \"C_54\" {
|
||||
leave
|
||||
|
||||
}
|
||||
/// @src 0:79:428
|
||||
|
||||
/// @src 0:152:171
|
||||
function getter_fun_stateVar_10() -> ret {
|
||||
/// @src 0:152:171
|
||||
|
||||
let slot := 0
|
||||
let offset := 0
|
||||
@@ -389,6 +394,7 @@ object \"C_54\" {
|
||||
ret := read_from_storage_split_dynamic_t_int256(slot, offset)
|
||||
|
||||
}
|
||||
/// @src 0:79:428
|
||||
|
||||
function increment_t_int256(value) -> ret {
|
||||
value := cleanup_t_int256(value)
|
||||
@@ -396,8 +402,8 @@ object \"C_54\" {
|
||||
ret := add(value, 1)
|
||||
}
|
||||
|
||||
/// @src 0:304:341
|
||||
function modifier_m_40(var__42) -> _5 {
|
||||
/// @src 0:304:341
|
||||
_5 := var__42
|
||||
|
||||
/// @src 0:322:332
|
||||
@@ -409,6 +415,7 @@ object \"C_54\" {
|
||||
_5 := fun_f2_53_inner(var__42)
|
||||
|
||||
}
|
||||
/// @src 0:79:428
|
||||
|
||||
function panic_error_0x11() {
|
||||
mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)
|
||||
@@ -599,6 +606,7 @@ object \"D_72\" {
|
||||
cleaned := value
|
||||
}
|
||||
|
||||
/// @src 0:175:223
|
||||
function constructor_C_54(var__init_12) {
|
||||
|
||||
/// @src 0:175:223
|
||||
@@ -616,7 +624,9 @@ object \"D_72\" {
|
||||
let expr_17 := expr_16
|
||||
|
||||
}
|
||||
/// @src 1:91:166
|
||||
|
||||
/// @src 1:113:164
|
||||
function constructor_D_72(var__init2_63) {
|
||||
/// @src 1:107:108
|
||||
let expr_60 := 0x03
|
||||
@@ -635,6 +645,7 @@ object \"D_72\" {
|
||||
update_storage_value_offset_0t_int256_to_t_int256(0x00, expr_68)
|
||||
|
||||
}
|
||||
/// @src 1:91:166
|
||||
|
||||
function convert_t_int256_to_t_int256(value) -> converted {
|
||||
converted := cleanup_t_int256(value)
|
||||
@@ -894,17 +905,18 @@ object \"D_72\" {
|
||||
mstore(64, newFreePtr)
|
||||
}
|
||||
|
||||
/// @src 0:343:426
|
||||
function fun_f2_53() -> var__42 {
|
||||
/// @src 0:343:426
|
||||
/// @src 0:375:378
|
||||
let zero_t_int256_4 := zero_value_for_split_t_int256()
|
||||
var__42 := zero_t_int256_4
|
||||
|
||||
var__42 := modifier_m_40(var__42)
|
||||
}
|
||||
/// @src 1:91:166
|
||||
|
||||
/// @src 0:343:426
|
||||
function fun_f2_53_inner(_8) -> var__42 {
|
||||
/// @src 0:343:426
|
||||
var__42 := _8
|
||||
|
||||
/// @src 0:392:400
|
||||
@@ -950,9 +962,10 @@ object \"D_72\" {
|
||||
leave
|
||||
|
||||
}
|
||||
/// @src 1:91:166
|
||||
|
||||
/// @src 0:226:302
|
||||
function fun_f_30() -> var__23 {
|
||||
/// @src 0:226:302
|
||||
/// @src 0:262:265
|
||||
let zero_t_int256_1 := zero_value_for_split_t_int256()
|
||||
var__23 := zero_t_int256_1
|
||||
@@ -970,9 +983,10 @@ object \"D_72\" {
|
||||
leave
|
||||
|
||||
}
|
||||
/// @src 1:91:166
|
||||
|
||||
/// @src 0:152:171
|
||||
function getter_fun_stateVar_10() -> ret {
|
||||
/// @src 0:152:171
|
||||
|
||||
let slot := 0
|
||||
let offset := 0
|
||||
@@ -980,6 +994,7 @@ object \"D_72\" {
|
||||
ret := read_from_storage_split_dynamic_t_int256(slot, offset)
|
||||
|
||||
}
|
||||
/// @src 1:91:166
|
||||
|
||||
function increment_t_int256(value) -> ret {
|
||||
value := cleanup_t_int256(value)
|
||||
@@ -987,8 +1002,8 @@ object \"D_72\" {
|
||||
ret := add(value, 1)
|
||||
}
|
||||
|
||||
/// @src 0:304:341
|
||||
function modifier_m_40(var__42) -> _5 {
|
||||
/// @src 0:304:341
|
||||
_5 := var__42
|
||||
|
||||
/// @src 0:322:332
|
||||
@@ -1000,6 +1015,7 @@ object \"D_72\" {
|
||||
_5 := fun_f2_53_inner(var__42)
|
||||
|
||||
}
|
||||
/// @src 1:91:166
|
||||
|
||||
function panic_error_0x11() {
|
||||
mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)
|
||||
|
||||
@@ -0,0 +1,24 @@
|
||||
{
|
||||
"language": "Solidity",
|
||||
"sources":
|
||||
{
|
||||
"C":
|
||||
{
|
||||
"content": "//SPDX-License-Identifier: GPL-2.0\npragma solidity >=0.0;\npragma abicoder v2;\n\ncontract C\n{\n int constant constVar = 41;\n int immutable immutVar = 42;\n int public stateVar;\n\n constructor(int _init)\n {\n stateVar = _init;\n }\n\n function f() external pure returns (int)\n {\n return constVar + immutVar;\n }\n modifier m()\n {\n stateVar++;\n _;\n }\n function f2() m public returns (int)\n {\n return stateVar + this.f() + immutVar;\n }\n}\n"
|
||||
},
|
||||
"D":
|
||||
{
|
||||
"content": "//SPDX-License-Identifier: GPL-2.0\npragma solidity >=0.0;\npragma abicoder v2;\nimport \"C\";\n\ncontract D is C(3)\n{\n constructor(int _init2)\n {\n stateVar += _init2;\n }\n}\n"
|
||||
}
|
||||
},
|
||||
"settings":
|
||||
{
|
||||
"viaIR": true,
|
||||
"optimizer": { "enabled": true },
|
||||
|
||||
"outputSelection":
|
||||
{
|
||||
"*": { "*": ["evm.assembly"] }
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,888 @@
|
||||
{"contracts":{"C":{"C":{"evm":{"assembly":" /* \"C\":79:428 contract C... */
|
||||
mstore(0x40, 0xa0)
|
||||
jumpi(tag_1, iszero(callvalue))
|
||||
0x00
|
||||
dup1
|
||||
revert
|
||||
tag_1:
|
||||
bytecodeSize
|
||||
codesize
|
||||
dup2
|
||||
swap1
|
||||
sub
|
||||
0xa0
|
||||
0x1f
|
||||
dup3
|
||||
add
|
||||
not(0x1f)
|
||||
and
|
||||
dup2
|
||||
add
|
||||
swap1
|
||||
sub(shl(0x40, 0x01), 0x01)
|
||||
dup3
|
||||
gt
|
||||
swap1
|
||||
dup3
|
||||
lt
|
||||
or
|
||||
iszero
|
||||
tag_2
|
||||
jumpi
|
||||
mstore(0x00, shl(0xe0, 0x4e487b71))
|
||||
mstore(0x04, 0x41)
|
||||
revert(0x00, 0x24)
|
||||
tag_2:
|
||||
0x40
|
||||
mstore
|
||||
dup1
|
||||
dup3
|
||||
0xa0
|
||||
codecopy
|
||||
0x20
|
||||
dup2
|
||||
slt
|
||||
iszero
|
||||
tag_3
|
||||
jumpi
|
||||
0x00
|
||||
dup1
|
||||
revert
|
||||
tag_3:
|
||||
pop
|
||||
pop
|
||||
tag_4
|
||||
mload(0xa0)
|
||||
/* \"C\":147:149 42 */
|
||||
mstore(0x80, 0x2a)
|
||||
0x00
|
||||
/* \"C\":79:428 contract C... */
|
||||
sstore
|
||||
/* \"C\":175:223 constructor(int _init)... */
|
||||
jump
|
||||
/* \"C\":79:428 contract C... */
|
||||
tag_4:
|
||||
mload(0x40)
|
||||
dataSize(sub_0)
|
||||
dup1
|
||||
dataOffset(sub_0)
|
||||
dup4
|
||||
codecopy
|
||||
mload(0x80)
|
||||
dup3
|
||||
assignImmutable(\"0xe4b1702d9298fee62dfeccc57d322a463ad55ca201256d01f62b45b2e1c21c10\")
|
||||
dup1
|
||||
dup3
|
||||
return
|
||||
stop
|
||||
|
||||
sub_0: assembly {
|
||||
/* \"C\":79:428 contract C... */
|
||||
mstore(0x40, 0x80)
|
||||
jumpi(tag_1, lt(calldatasize, 0x04))
|
||||
0x00
|
||||
dup1
|
||||
calldataload
|
||||
0xe0
|
||||
shr
|
||||
0x26121ff0
|
||||
dup2
|
||||
eq
|
||||
tag_3
|
||||
jumpi
|
||||
0x793816ec
|
||||
dup2
|
||||
eq
|
||||
tag_4
|
||||
jumpi
|
||||
0x9942ec6f
|
||||
dup2
|
||||
eq
|
||||
tag_5
|
||||
jumpi
|
||||
jump(tag_2)
|
||||
tag_3:
|
||||
jumpi(tag_6, iszero(callvalue))
|
||||
dup2
|
||||
dup3
|
||||
revert
|
||||
tag_6:
|
||||
tag_7
|
||||
calldatasize
|
||||
tag_8
|
||||
jump\t// in
|
||||
tag_7:
|
||||
/* \"C\":279:298 constVar + immutVar */
|
||||
tag_9
|
||||
/* \"C\":290:298 immutVar */
|
||||
immutable(\"0xe4b1702d9298fee62dfeccc57d322a463ad55ca201256d01f62b45b2e1c21c10\")
|
||||
/* \"C\":279:298 constVar + immutVar */
|
||||
tag_10
|
||||
jump\t// in
|
||||
tag_9:
|
||||
/* \"C\":79:428 contract C... */
|
||||
mload(0x40)
|
||||
dup2
|
||||
dup2
|
||||
mstore
|
||||
0x20
|
||||
dup2
|
||||
return
|
||||
tag_4:
|
||||
jumpi(tag_13, iszero(callvalue))
|
||||
dup2
|
||||
dup3
|
||||
revert
|
||||
tag_13:
|
||||
tag_14
|
||||
calldatasize
|
||||
tag_8
|
||||
jump\t// in
|
||||
tag_14:
|
||||
dup2
|
||||
sload
|
||||
mload(0x40)
|
||||
dup2
|
||||
dup2
|
||||
mstore
|
||||
0x20
|
||||
dup2
|
||||
return
|
||||
tag_5:
|
||||
jumpi(tag_16, iszero(callvalue))
|
||||
dup2
|
||||
dup3
|
||||
revert
|
||||
tag_16:
|
||||
tag_17
|
||||
calldatasize
|
||||
tag_8
|
||||
jump\t// in
|
||||
tag_17:
|
||||
/* \"C\":375:378 int */
|
||||
tag_9
|
||||
tag_19
|
||||
jump\t// in
|
||||
/* \"C\":79:428 contract C... */
|
||||
tag_2:
|
||||
pop
|
||||
pop
|
||||
tag_1:
|
||||
0x00
|
||||
dup1
|
||||
revert
|
||||
tag_8:
|
||||
0x00
|
||||
not(0x03)
|
||||
dup3
|
||||
add
|
||||
slt
|
||||
iszero
|
||||
tag_23
|
||||
jumpi
|
||||
0x00
|
||||
dup1
|
||||
revert
|
||||
tag_23:
|
||||
pop
|
||||
jump\t// out
|
||||
tag_24:
|
||||
0x00
|
||||
0x20
|
||||
dup3
|
||||
dup5
|
||||
sub
|
||||
slt
|
||||
iszero
|
||||
tag_26
|
||||
jumpi
|
||||
0x00
|
||||
dup1
|
||||
revert
|
||||
tag_26:
|
||||
pop
|
||||
mload
|
||||
swap2
|
||||
swap1
|
||||
pop
|
||||
jump\t// out
|
||||
tag_10:
|
||||
0x00
|
||||
sub(shl(0xff, 0x01), 0x2a)
|
||||
dup3
|
||||
sgt
|
||||
0x01
|
||||
and
|
||||
iszero
|
||||
tag_30
|
||||
jumpi
|
||||
tag_30
|
||||
tag_31
|
||||
jump\t// in
|
||||
tag_30:
|
||||
pop
|
||||
/* \"C\":117:119 41 */
|
||||
0x29
|
||||
/* \"C\":79:428 contract C... */
|
||||
add
|
||||
swap1
|
||||
jump\t// out
|
||||
tag_32:
|
||||
0x00
|
||||
dup1
|
||||
dup3
|
||||
slt
|
||||
dup1
|
||||
iszero
|
||||
sub(shl(0xff, 0x01), 0x01)
|
||||
dup5
|
||||
swap1
|
||||
sub
|
||||
dup6
|
||||
sgt
|
||||
and
|
||||
iszero
|
||||
tag_35
|
||||
jumpi
|
||||
tag_35
|
||||
tag_31
|
||||
jump\t// in
|
||||
tag_35:
|
||||
shl(0xff, 0x01)
|
||||
dup4
|
||||
swap1
|
||||
sub
|
||||
dup5
|
||||
slt
|
||||
dup2
|
||||
and
|
||||
iszero
|
||||
tag_37
|
||||
jumpi
|
||||
tag_37
|
||||
tag_31
|
||||
jump\t// in
|
||||
tag_37:
|
||||
pop
|
||||
pop
|
||||
add
|
||||
swap1
|
||||
jump\t// out
|
||||
/* \"C\":304:341 modifier m()... */
|
||||
tag_19:
|
||||
0x00
|
||||
/* \"C\":79:428 contract C... */
|
||||
dup1
|
||||
sload
|
||||
/* \"C\":304:341 modifier m()... */
|
||||
dup2
|
||||
swap1
|
||||
sub(shl(0xff, 0x01), 0x01)
|
||||
/* \"C\":79:428 contract C... */
|
||||
dup2
|
||||
eq
|
||||
iszero
|
||||
tag_40
|
||||
jumpi
|
||||
tag_40
|
||||
tag_31
|
||||
jump\t// in
|
||||
tag_40:
|
||||
0x01
|
||||
add
|
||||
dup1
|
||||
dup3
|
||||
sstore
|
||||
/* \"C\":403:407 this */
|
||||
address
|
||||
/* \"C\":403:411 this.f() */
|
||||
extcodesize
|
||||
tag_41
|
||||
jumpi
|
||||
/* \"C\":79:428 contract C... */
|
||||
dup2
|
||||
dup3
|
||||
revert
|
||||
/* \"C\":403:411 this.f() */
|
||||
tag_41:
|
||||
/* \"C\":79:428 contract C... */
|
||||
mload(0x40)
|
||||
shl(0xe4, 0x026121ff)
|
||||
/* \"C\":403:411 this.f() */
|
||||
dup2
|
||||
mstore
|
||||
0x20
|
||||
/* \"C\":79:428 contract C... */
|
||||
dup2
|
||||
/* \"C\":403:411 this.f() */
|
||||
0x04
|
||||
/* \"C\":79:428 contract C... */
|
||||
dup2
|
||||
/* \"C\":403:407 this */
|
||||
address
|
||||
/* \"C\":403:411 this.f() */
|
||||
gas
|
||||
staticcall
|
||||
dup1
|
||||
tag_42
|
||||
jumpi
|
||||
/* \"C\":79:428 contract C... */
|
||||
mload(0x40)
|
||||
returndatasize
|
||||
dup6
|
||||
dup3
|
||||
returndatacopy
|
||||
returndatasize
|
||||
dup2
|
||||
revert
|
||||
/* \"C\":403:411 this.f() */
|
||||
tag_42:
|
||||
/* \"C\":79:428 contract C... */
|
||||
dup4
|
||||
/* \"C\":403:411 this.f() */
|
||||
dup2
|
||||
iszero
|
||||
tag_43
|
||||
jumpi
|
||||
returndatasize
|
||||
/* \"C\":79:428 contract C... */
|
||||
0x1f
|
||||
add
|
||||
not(0x1f)
|
||||
and
|
||||
/* \"C\":117:119 41 */
|
||||
dup4
|
||||
add
|
||||
0xffffffffffffffff
|
||||
dup2
|
||||
gt
|
||||
dup5
|
||||
dup3
|
||||
lt
|
||||
or
|
||||
iszero
|
||||
tag_44
|
||||
jumpi
|
||||
shl(0xe0, 0x4e487b71)
|
||||
/* \"C\":79:428 contract C... */
|
||||
dup7
|
||||
mstore
|
||||
0x41
|
||||
/* \"C\":403:411 this.f() */
|
||||
0x04
|
||||
/* \"C\":79:428 contract C... */
|
||||
mstore
|
||||
0x24
|
||||
dup7
|
||||
revert
|
||||
/* \"C\":117:119 41 */
|
||||
tag_44:
|
||||
/* \"C\":79:428 contract C... */
|
||||
0x40
|
||||
/* \"C\":117:119 41 */
|
||||
mstore
|
||||
/* \"C\":403:411 this.f() */
|
||||
tag_45
|
||||
returndatasize
|
||||
dup5
|
||||
add
|
||||
dup5
|
||||
tag_24
|
||||
jump\t// in
|
||||
tag_45:
|
||||
swap1
|
||||
pop
|
||||
tag_43:
|
||||
/* \"C\":392:411 stateVar + this.f() */
|
||||
tag_46
|
||||
dup2
|
||||
dup6
|
||||
tag_32
|
||||
jump\t// in
|
||||
tag_46:
|
||||
swap5
|
||||
pop
|
||||
pop
|
||||
pop
|
||||
pop
|
||||
pop
|
||||
/* \"C\":392:422 stateVar + this.f() + immutVar */
|
||||
tag_47
|
||||
/* \"C\":414:422 immutVar */
|
||||
immutable(\"0xe4b1702d9298fee62dfeccc57d322a463ad55ca201256d01f62b45b2e1c21c10\")
|
||||
/* \"C\":392:422 stateVar + this.f() + immutVar */
|
||||
dup3
|
||||
tag_32
|
||||
jump\t// in
|
||||
tag_47:
|
||||
/* \"C\":336:337 _ */
|
||||
swap2
|
||||
pop
|
||||
pop
|
||||
/* \"C\":304:341 modifier m()... */
|
||||
swap1
|
||||
jump\t// out
|
||||
/* \"C\":79:428 contract C... */
|
||||
tag_31:
|
||||
mstore(0x00, shl(0xe0, 0x4e487b71))
|
||||
mstore(0x04, 0x11)
|
||||
revert(0x00, 0x24)
|
||||
|
||||
auxdata: <AUXDATA REMOVED>
|
||||
}
|
||||
"}}},"D":{"D":{"evm":{"assembly":" /* \"D\":91:166 contract D is C(3)... */
|
||||
mstore(0x40, 0xa0)
|
||||
jumpi(tag_1, iszero(callvalue))
|
||||
0x00
|
||||
dup1
|
||||
revert
|
||||
tag_1:
|
||||
bytecodeSize
|
||||
codesize
|
||||
dup2
|
||||
swap1
|
||||
sub
|
||||
0xa0
|
||||
0x1f
|
||||
dup3
|
||||
add
|
||||
not(0x1f)
|
||||
and
|
||||
dup2
|
||||
add
|
||||
swap1
|
||||
sub(shl(0x40, 0x01), 0x01)
|
||||
dup3
|
||||
gt
|
||||
swap1
|
||||
dup3
|
||||
lt
|
||||
or
|
||||
iszero
|
||||
tag_2
|
||||
jumpi
|
||||
mstore(0x00, shl(0xe0, 0x4e487b71))
|
||||
mstore(0x04, 0x41)
|
||||
revert(0x00, 0x24)
|
||||
tag_2:
|
||||
0x40
|
||||
mstore
|
||||
dup1
|
||||
dup3
|
||||
0xa0
|
||||
codecopy
|
||||
0x20
|
||||
dup2
|
||||
slt
|
||||
iszero
|
||||
tag_3
|
||||
jumpi
|
||||
0x00
|
||||
dup1
|
||||
revert
|
||||
tag_3:
|
||||
pop
|
||||
pop
|
||||
tag_4
|
||||
mload(0xa0)
|
||||
tag_5
|
||||
jump\t// in
|
||||
tag_4:
|
||||
mload(0x40)
|
||||
dataSize(sub_0)
|
||||
dup1
|
||||
dataOffset(sub_0)
|
||||
dup4
|
||||
codecopy
|
||||
mload(0x80)
|
||||
dup3
|
||||
assignImmutable(\"0xe4b1702d9298fee62dfeccc57d322a463ad55ca201256d01f62b45b2e1c21c10\")
|
||||
dup1
|
||||
dup3
|
||||
return
|
||||
/* \"D\":113:164 constructor(int _init2)... */
|
||||
tag_5:
|
||||
/* \"C\":147:149 42 */
|
||||
mstore(0x80, 0x2a)
|
||||
/* \"D\":107:108 3 */
|
||||
0x03
|
||||
0x00
|
||||
/* \"D\":91:166 contract D is C(3)... */
|
||||
sstore
|
||||
sub(shl(0xff, 0x01), 0x04)
|
||||
dup2
|
||||
sgt
|
||||
0x01
|
||||
and
|
||||
iszero
|
||||
tag_8
|
||||
jumpi
|
||||
mstore(0x00, shl(0xe0, 0x4e487b71))
|
||||
mstore(0x04, 0x11)
|
||||
revert(0x00, 0x24)
|
||||
tag_8:
|
||||
/* \"D\":107:108 3 */
|
||||
0x03
|
||||
/* \"D\":91:166 contract D is C(3)... */
|
||||
add
|
||||
0x00
|
||||
sstore
|
||||
/* \"D\":113:164 constructor(int _init2)... */
|
||||
jump\t// out
|
||||
stop
|
||||
|
||||
sub_0: assembly {
|
||||
/* \"D\":91:166 contract D is C(3)... */
|
||||
mstore(0x40, 0x80)
|
||||
jumpi(tag_1, lt(calldatasize, 0x04))
|
||||
0x00
|
||||
dup1
|
||||
calldataload
|
||||
0xe0
|
||||
shr
|
||||
0x26121ff0
|
||||
dup2
|
||||
eq
|
||||
tag_3
|
||||
jumpi
|
||||
0x793816ec
|
||||
dup2
|
||||
eq
|
||||
tag_4
|
||||
jumpi
|
||||
0x9942ec6f
|
||||
dup2
|
||||
eq
|
||||
tag_5
|
||||
jumpi
|
||||
jump(tag_2)
|
||||
tag_3:
|
||||
jumpi(tag_6, iszero(callvalue))
|
||||
dup2
|
||||
dup3
|
||||
revert
|
||||
tag_6:
|
||||
tag_7
|
||||
calldatasize
|
||||
tag_8
|
||||
jump\t// in
|
||||
tag_7:
|
||||
/* \"C\":279:298 constVar + immutVar */
|
||||
tag_9
|
||||
/* \"C\":290:298 immutVar */
|
||||
immutable(\"0xe4b1702d9298fee62dfeccc57d322a463ad55ca201256d01f62b45b2e1c21c10\")
|
||||
/* \"C\":279:298 constVar + immutVar */
|
||||
tag_10
|
||||
jump\t// in
|
||||
tag_9:
|
||||
/* \"D\":91:166 contract D is C(3)... */
|
||||
mload(0x40)
|
||||
dup2
|
||||
dup2
|
||||
mstore
|
||||
0x20
|
||||
dup2
|
||||
return
|
||||
tag_4:
|
||||
jumpi(tag_13, iszero(callvalue))
|
||||
dup2
|
||||
dup3
|
||||
revert
|
||||
tag_13:
|
||||
tag_14
|
||||
calldatasize
|
||||
tag_8
|
||||
jump\t// in
|
||||
tag_14:
|
||||
dup2
|
||||
sload
|
||||
mload(0x40)
|
||||
dup2
|
||||
dup2
|
||||
mstore
|
||||
0x20
|
||||
dup2
|
||||
return
|
||||
tag_5:
|
||||
jumpi(tag_16, iszero(callvalue))
|
||||
dup2
|
||||
dup3
|
||||
revert
|
||||
tag_16:
|
||||
tag_17
|
||||
calldatasize
|
||||
tag_8
|
||||
jump\t// in
|
||||
tag_17:
|
||||
/* \"C\":375:378 int */
|
||||
tag_9
|
||||
tag_19
|
||||
jump\t// in
|
||||
/* \"D\":91:166 contract D is C(3)... */
|
||||
tag_2:
|
||||
pop
|
||||
pop
|
||||
tag_1:
|
||||
0x00
|
||||
dup1
|
||||
revert
|
||||
tag_8:
|
||||
0x00
|
||||
not(0x03)
|
||||
dup3
|
||||
add
|
||||
slt
|
||||
iszero
|
||||
tag_23
|
||||
jumpi
|
||||
0x00
|
||||
dup1
|
||||
revert
|
||||
tag_23:
|
||||
pop
|
||||
jump\t// out
|
||||
tag_24:
|
||||
0x00
|
||||
0x20
|
||||
dup3
|
||||
dup5
|
||||
sub
|
||||
slt
|
||||
iszero
|
||||
tag_26
|
||||
jumpi
|
||||
0x00
|
||||
dup1
|
||||
revert
|
||||
tag_26:
|
||||
pop
|
||||
mload
|
||||
swap2
|
||||
swap1
|
||||
pop
|
||||
jump\t// out
|
||||
tag_10:
|
||||
0x00
|
||||
sub(shl(0xff, 0x01), 0x2a)
|
||||
dup3
|
||||
sgt
|
||||
0x01
|
||||
and
|
||||
iszero
|
||||
tag_30
|
||||
jumpi
|
||||
tag_30
|
||||
tag_31
|
||||
jump\t// in
|
||||
tag_30:
|
||||
pop
|
||||
/* \"C\":117:119 41 */
|
||||
0x29
|
||||
/* \"D\":91:166 contract D is C(3)... */
|
||||
add
|
||||
swap1
|
||||
jump\t// out
|
||||
tag_32:
|
||||
0x00
|
||||
dup1
|
||||
dup3
|
||||
slt
|
||||
dup1
|
||||
iszero
|
||||
sub(shl(0xff, 0x01), 0x01)
|
||||
dup5
|
||||
swap1
|
||||
sub
|
||||
dup6
|
||||
sgt
|
||||
and
|
||||
iszero
|
||||
tag_35
|
||||
jumpi
|
||||
tag_35
|
||||
tag_31
|
||||
jump\t// in
|
||||
tag_35:
|
||||
shl(0xff, 0x01)
|
||||
dup4
|
||||
swap1
|
||||
sub
|
||||
dup5
|
||||
slt
|
||||
dup2
|
||||
and
|
||||
iszero
|
||||
tag_37
|
||||
jumpi
|
||||
tag_37
|
||||
tag_31
|
||||
jump\t// in
|
||||
tag_37:
|
||||
pop
|
||||
pop
|
||||
add
|
||||
swap1
|
||||
jump\t// out
|
||||
/* \"C\":304:341 modifier m()... */
|
||||
tag_19:
|
||||
0x00
|
||||
/* \"D\":91:166 contract D is C(3)... */
|
||||
dup1
|
||||
sload
|
||||
/* \"C\":304:341 modifier m()... */
|
||||
dup2
|
||||
swap1
|
||||
sub(shl(0xff, 0x01), 0x01)
|
||||
/* \"D\":91:166 contract D is C(3)... */
|
||||
dup2
|
||||
eq
|
||||
iszero
|
||||
tag_40
|
||||
jumpi
|
||||
tag_40
|
||||
tag_31
|
||||
jump\t// in
|
||||
tag_40:
|
||||
0x01
|
||||
add
|
||||
dup1
|
||||
dup3
|
||||
sstore
|
||||
/* \"C\":403:407 this */
|
||||
address
|
||||
/* \"C\":403:411 this.f() */
|
||||
extcodesize
|
||||
tag_41
|
||||
jumpi
|
||||
/* \"D\":91:166 contract D is C(3)... */
|
||||
dup2
|
||||
dup3
|
||||
revert
|
||||
/* \"C\":403:411 this.f() */
|
||||
tag_41:
|
||||
/* \"D\":91:166 contract D is C(3)... */
|
||||
mload(0x40)
|
||||
shl(0xe4, 0x026121ff)
|
||||
/* \"C\":403:411 this.f() */
|
||||
dup2
|
||||
mstore
|
||||
0x20
|
||||
/* \"D\":91:166 contract D is C(3)... */
|
||||
dup2
|
||||
/* \"C\":403:411 this.f() */
|
||||
0x04
|
||||
/* \"D\":91:166 contract D is C(3)... */
|
||||
dup2
|
||||
/* \"C\":403:407 this */
|
||||
address
|
||||
/* \"C\":403:411 this.f() */
|
||||
gas
|
||||
staticcall
|
||||
dup1
|
||||
tag_42
|
||||
jumpi
|
||||
/* \"D\":91:166 contract D is C(3)... */
|
||||
mload(0x40)
|
||||
returndatasize
|
||||
dup6
|
||||
dup3
|
||||
returndatacopy
|
||||
returndatasize
|
||||
dup2
|
||||
revert
|
||||
/* \"C\":403:411 this.f() */
|
||||
tag_42:
|
||||
/* \"D\":91:166 contract D is C(3)... */
|
||||
dup4
|
||||
/* \"C\":403:411 this.f() */
|
||||
dup2
|
||||
iszero
|
||||
tag_43
|
||||
jumpi
|
||||
returndatasize
|
||||
/* \"D\":91:166 contract D is C(3)... */
|
||||
0x1f
|
||||
add
|
||||
not(0x1f)
|
||||
and
|
||||
/* \"C\":117:119 41 */
|
||||
dup4
|
||||
add
|
||||
0xffffffffffffffff
|
||||
dup2
|
||||
gt
|
||||
dup5
|
||||
dup3
|
||||
lt
|
||||
or
|
||||
iszero
|
||||
tag_44
|
||||
jumpi
|
||||
shl(0xe0, 0x4e487b71)
|
||||
/* \"D\":91:166 contract D is C(3)... */
|
||||
dup7
|
||||
mstore
|
||||
0x41
|
||||
/* \"C\":403:411 this.f() */
|
||||
0x04
|
||||
/* \"D\":91:166 contract D is C(3)... */
|
||||
mstore
|
||||
0x24
|
||||
dup7
|
||||
revert
|
||||
/* \"C\":117:119 41 */
|
||||
tag_44:
|
||||
/* \"D\":91:166 contract D is C(3)... */
|
||||
0x40
|
||||
/* \"C\":117:119 41 */
|
||||
mstore
|
||||
/* \"C\":403:411 this.f() */
|
||||
tag_45
|
||||
returndatasize
|
||||
dup5
|
||||
add
|
||||
dup5
|
||||
tag_24
|
||||
jump\t// in
|
||||
tag_45:
|
||||
swap1
|
||||
pop
|
||||
tag_43:
|
||||
/* \"C\":392:411 stateVar + this.f() */
|
||||
tag_46
|
||||
dup2
|
||||
dup6
|
||||
tag_32
|
||||
jump\t// in
|
||||
tag_46:
|
||||
swap5
|
||||
pop
|
||||
pop
|
||||
pop
|
||||
pop
|
||||
pop
|
||||
/* \"C\":392:422 stateVar + this.f() + immutVar */
|
||||
tag_47
|
||||
/* \"C\":414:422 immutVar */
|
||||
immutable(\"0xe4b1702d9298fee62dfeccc57d322a463ad55ca201256d01f62b45b2e1c21c10\")
|
||||
/* \"C\":392:422 stateVar + this.f() + immutVar */
|
||||
dup3
|
||||
tag_32
|
||||
jump\t// in
|
||||
tag_47:
|
||||
/* \"C\":336:337 _ */
|
||||
swap2
|
||||
pop
|
||||
pop
|
||||
/* \"C\":304:341 modifier m()... */
|
||||
swap1
|
||||
jump\t// out
|
||||
/* \"D\":91:166 contract D is C(3)... */
|
||||
tag_31:
|
||||
mstore(0x00, shl(0xe0, 0x4e487b71))
|
||||
mstore(0x04, 0x11)
|
||||
revert(0x00, 0x24)
|
||||
|
||||
auxdata: <AUXDATA REMOVED>
|
||||
}
|
||||
"}}}},"sources":{"C":{"id":0},"D":{"id":1}}}
|
||||
@@ -24,11 +24,13 @@ object \"C_11\" {
|
||||
memPtr := mload(64)
|
||||
}
|
||||
|
||||
/// @src 0:78:164
|
||||
function constructor_C_11() {
|
||||
|
||||
/// @src 0:78:164
|
||||
|
||||
}
|
||||
/// @src 0:78:164
|
||||
|
||||
function revert_error_ca66f745a3ce8ff40e2ccaf1ad45db7774001b90d25810abd9040049be7bf4bb() {
|
||||
revert(0, 0)
|
||||
@@ -150,8 +152,8 @@ object \"C_11\" {
|
||||
mstore(64, newFreePtr)
|
||||
}
|
||||
|
||||
/// @src 0:91:162
|
||||
function fun_f_10() -> var__5_mpos {
|
||||
/// @src 0:91:162
|
||||
/// @src 0:127:140
|
||||
let zero_t_string_memory_ptr_1_mpos := zero_value_for_split_t_string_memory_ptr()
|
||||
var__5_mpos := zero_t_string_memory_ptr_1_mpos
|
||||
@@ -161,6 +163,7 @@ object \"C_11\" {
|
||||
leave
|
||||
|
||||
}
|
||||
/// @src 0:78:164
|
||||
|
||||
function panic_error_0x41() {
|
||||
mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)
|
||||
|
||||
@@ -24,11 +24,13 @@ object \"C_11\" {
|
||||
memPtr := mload(64)
|
||||
}
|
||||
|
||||
/// @src 0:78:158
|
||||
function constructor_C_11() {
|
||||
|
||||
/// @src 0:78:158
|
||||
|
||||
}
|
||||
/// @src 0:78:158
|
||||
|
||||
function revert_error_ca66f745a3ce8ff40e2ccaf1ad45db7774001b90d25810abd9040049be7bf4bb() {
|
||||
revert(0, 0)
|
||||
@@ -90,8 +92,8 @@ object \"C_11\" {
|
||||
converted := 0x6162636162630000000000000000000000000000000000000000000000000000
|
||||
}
|
||||
|
||||
/// @src 0:91:156
|
||||
function fun_f_10() -> var__5 {
|
||||
/// @src 0:91:156
|
||||
/// @src 0:127:134
|
||||
let zero_t_bytes32_1 := zero_value_for_split_t_bytes32()
|
||||
var__5 := zero_t_bytes32_1
|
||||
@@ -101,6 +103,7 @@ object \"C_11\" {
|
||||
leave
|
||||
|
||||
}
|
||||
/// @src 0:78:158
|
||||
|
||||
function revert_error_42b3090547df1d2001c96683413b8cf91c1b902ef5e3cb8d9f6f304cf7446f74() {
|
||||
revert(0, 0)
|
||||
|
||||
@@ -24,11 +24,13 @@ object \"C_11\" {
|
||||
memPtr := mload(64)
|
||||
}
|
||||
|
||||
/// @src 0:78:159
|
||||
function constructor_C_11() {
|
||||
|
||||
/// @src 0:78:159
|
||||
|
||||
}
|
||||
/// @src 0:78:159
|
||||
|
||||
function revert_error_ca66f745a3ce8ff40e2ccaf1ad45db7774001b90d25810abd9040049be7bf4bb() {
|
||||
revert(0, 0)
|
||||
@@ -94,8 +96,8 @@ object \"C_11\" {
|
||||
converted := shift_left_224(cleanup_t_rational_1633837924_by_1(value))
|
||||
}
|
||||
|
||||
/// @src 0:91:157
|
||||
function fun_f_10() -> var__5 {
|
||||
/// @src 0:91:157
|
||||
/// @src 0:127:133
|
||||
let zero_t_bytes4_1 := zero_value_for_split_t_bytes4()
|
||||
var__5 := zero_t_bytes4_1
|
||||
@@ -107,6 +109,7 @@ object \"C_11\" {
|
||||
leave
|
||||
|
||||
}
|
||||
/// @src 0:78:159
|
||||
|
||||
function revert_error_42b3090547df1d2001c96683413b8cf91c1b902ef5e3cb8d9f6f304cf7446f74() {
|
||||
revert(0, 0)
|
||||
|
||||
@@ -24,11 +24,13 @@ object \"C_11\" {
|
||||
memPtr := mload(64)
|
||||
}
|
||||
|
||||
/// @src 0:78:243
|
||||
function constructor_C_11() {
|
||||
|
||||
/// @src 0:78:243
|
||||
|
||||
}
|
||||
/// @src 0:78:243
|
||||
|
||||
function revert_error_ca66f745a3ce8ff40e2ccaf1ad45db7774001b90d25810abd9040049be7bf4bb() {
|
||||
revert(0, 0)
|
||||
@@ -150,8 +152,8 @@ object \"C_11\" {
|
||||
mstore(64, newFreePtr)
|
||||
}
|
||||
|
||||
/// @src 0:91:241
|
||||
function fun_f_10() -> var__5_mpos {
|
||||
/// @src 0:91:241
|
||||
/// @src 0:127:140
|
||||
let zero_t_string_memory_ptr_1_mpos := zero_value_for_split_t_string_memory_ptr()
|
||||
var__5_mpos := zero_t_string_memory_ptr_1_mpos
|
||||
@@ -161,6 +163,7 @@ object \"C_11\" {
|
||||
leave
|
||||
|
||||
}
|
||||
/// @src 0:78:243
|
||||
|
||||
function panic_error_0x41() {
|
||||
mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)
|
||||
|
||||
@@ -24,11 +24,13 @@ object \"C_11\" {
|
||||
memPtr := mload(64)
|
||||
}
|
||||
|
||||
/// @src 0:78:159
|
||||
function constructor_C_11() {
|
||||
|
||||
/// @src 0:78:159
|
||||
|
||||
}
|
||||
/// @src 0:78:159
|
||||
|
||||
function revert_error_ca66f745a3ce8ff40e2ccaf1ad45db7774001b90d25810abd9040049be7bf4bb() {
|
||||
revert(0, 0)
|
||||
@@ -94,8 +96,8 @@ object \"C_11\" {
|
||||
converted := shift_left_224(cleanup_t_rational_2864434397_by_1(value))
|
||||
}
|
||||
|
||||
/// @src 0:91:157
|
||||
function fun_f_10() -> var__5 {
|
||||
/// @src 0:91:157
|
||||
/// @src 0:127:133
|
||||
let zero_t_bytes4_1 := zero_value_for_split_t_bytes4()
|
||||
var__5 := zero_t_bytes4_1
|
||||
@@ -107,6 +109,7 @@ object \"C_11\" {
|
||||
leave
|
||||
|
||||
}
|
||||
/// @src 0:78:159
|
||||
|
||||
function revert_error_42b3090547df1d2001c96683413b8cf91c1b902ef5e3cb8d9f6f304cf7446f74() {
|
||||
revert(0, 0)
|
||||
|
||||
@@ -108,7 +108,7 @@ Error expectError(string const& _source, bool _allowWarnings = false)
|
||||
return *error;
|
||||
}
|
||||
|
||||
tuple<optional<ObjectParser::SourceNameMap>, ErrorList> tryGetSourceLocationMapping(string _source)
|
||||
tuple<optional<SourceNameMap>, ErrorList> tryGetSourceLocationMapping(string _source)
|
||||
{
|
||||
vector<string> lines;
|
||||
boost::split(lines, _source, boost::is_any_of("\n"));
|
||||
|
||||
Reference in New Issue
Block a user