Update tests.

This commit is contained in:
Daniel Kirchner
2021-09-15 17:09:57 +02:00
parent 6205b3a9d2
commit 58dbeb8e92
221 changed files with 2319 additions and 1753 deletions
+2 -2
View File
@@ -11,7 +11,7 @@ IR:
object "C_81" {
code {
/// @src 0:82:370 "contract C {..."
mstore(64, 128)
mstore(64, memoryguard(128))
if callvalue() { revert_error_ca66f745a3ce8ff40e2ccaf1ad45db7774001b90d25810abd9040049be7bf4bb() }
constructor_C_81()
@@ -42,7 +42,7 @@ object "C_81" {
object "C_81_deployed" {
code {
/// @src 0:82:370 "contract C {..."
mstore(64, 128)
mstore(64, memoryguard(128))
if iszero(lt(calldatasize(), 4))
{
@@ -11,11 +11,12 @@ object "C_7" {
code {
{
/// @src 0:82:117 "contract C {..."
mstore(64, 128)
let _1 := memoryguard(0x80)
mstore(64, _1)
if callvalue() { revert(0, 0) }
let _1 := datasize("C_7_deployed")
codecopy(128, dataoffset("C_7_deployed"), _1)
return(128, _1)
let _2 := datasize("C_7_deployed")
codecopy(_1, dataoffset("C_7_deployed"), _2)
return(_1, _2)
}
}
/// @use-src 0:"ir_compiler_inheritance_nosubobjects/input.sol"
@@ -23,7 +24,7 @@ object "C_7" {
code {
{
/// @src 0:82:117 "contract C {..."
mstore(64, 128)
mstore(64, memoryguard(0x80))
revert(0, 0)
}
}
@@ -44,11 +45,12 @@ object "D_10" {
code {
{
/// @src 0:118:137 "contract D is C {..."
mstore(64, 128)
let _1 := memoryguard(0x80)
mstore(64, _1)
if callvalue() { revert(0, 0) }
let _1 := datasize("D_10_deployed")
codecopy(128, dataoffset("D_10_deployed"), _1)
return(128, _1)
let _2 := datasize("D_10_deployed")
codecopy(_1, dataoffset("D_10_deployed"), _2)
return(_1, _2)
}
}
/// @use-src 0:"ir_compiler_inheritance_nosubobjects/input.sol"
@@ -56,7 +58,7 @@ object "D_10" {
code {
{
/// @src 0:118:137 "contract D is C {..."
mstore(64, 128)
mstore(64, memoryguard(0x80))
revert(0, 0)
}
}
+32 -29
View File
@@ -11,11 +11,12 @@ object "C_3" {
code {
{
/// @src 0:82:95 "contract C {}"
mstore(64, 128)
let _1 := memoryguard(0x80)
mstore(64, _1)
if callvalue() { revert(0, 0) }
let _1 := datasize("C_3_deployed")
codecopy(128, dataoffset("C_3_deployed"), _1)
return(128, _1)
let _2 := datasize("C_3_deployed")
codecopy(_1, dataoffset("C_3_deployed"), _2)
return(_1, _2)
}
}
/// @use-src 0:"ir_compiler_subobjects/input.sol"
@@ -23,7 +24,7 @@ object "C_3" {
code {
{
/// @src 0:82:95 "contract C {}"
mstore(64, 128)
mstore(64, memoryguard(0x80))
revert(0, 0)
}
}
@@ -44,11 +45,12 @@ object "D_16" {
code {
{
/// @src 0:96:165 "contract D {..."
mstore(64, 128)
let _1 := memoryguard(0x80)
mstore(64, _1)
if callvalue() { revert(0, 0) }
let _1 := datasize("D_16_deployed")
codecopy(128, dataoffset("D_16_deployed"), _1)
return(128, _1)
let _2 := datasize("D_16_deployed")
codecopy(_1, dataoffset("D_16_deployed"), _2)
return(_1, _2)
}
}
/// @use-src 0:"ir_compiler_subobjects/input.sol"
@@ -56,35 +58,35 @@ object "D_16" {
code {
{
/// @src 0:96:165 "contract D {..."
mstore(64, 128)
let _1 := memoryguard(0x80)
mstore(64, _1)
if iszero(lt(calldatasize(), 4))
{
let _1 := 0
if eq(0x26121ff0, shr(224, calldataload(_1)))
let _2 := 0
if eq(0x26121ff0, shr(224, calldataload(_2)))
{
if callvalue() { revert(_1, _1) }
if slt(add(calldatasize(), not(3)), _1) { revert(_1, _1) }
/// @src 0:149:156 "new C()"
let _2 := datasize("C_3")
let _3 := add(/** @src 0:96:165 "contract D {..." */ 128, /** @src 0:149:156 "new C()" */ _2)
if or(gt(_3, 0xffffffffffffffff), lt(_3, /** @src 0:96:165 "contract D {..." */ 128))
if callvalue() { revert(_2, _2) }
if slt(add(calldatasize(), not(3)), _2) { revert(_2, _2) }
/// @src 0:149:156 "new C()"
let _3 := datasize("C_3")
let _4 := add(_1, _3)
if or(gt(_4, 0xffffffffffffffff), lt(_4, _1))
{
/// @src 0:96:165 "contract D {..."
mstore(_1, shl(224, 0x4e487b71))
mstore(_2, shl(224, 0x4e487b71))
mstore(4, 0x41)
revert(_1, 0x24)
revert(_2, 0x24)
}
/// @src 0:149:156 "new C()"
datacopy(/** @src 0:96:165 "contract D {..." */ 128, /** @src 0:149:156 "new C()" */ dataoffset("C_3"), _2)
if iszero(create(/** @src 0:96:165 "contract D {..." */ _1, 128, /** @src 0:149:156 "new C()" */ _2))
datacopy(_1, dataoffset("C_3"), _3)
if iszero(create(/** @src 0:96:165 "contract D {..." */ _2, /** @src 0:149:156 "new C()" */ _1, sub(_4, _1)))
{
/// @src 0:96:165 "contract D {..."
let pos := mload(64)
returndatacopy(pos, _1, returndatasize())
returndatacopy(pos, _2, returndatasize())
revert(pos, returndatasize())
}
return(mload(64), _1)
return(mload(64), _2)
}
}
revert(0, 0)
@@ -95,11 +97,12 @@ object "D_16" {
code {
{
/// @src 0:82:95 "contract C {}"
mstore(64, 128)
let _1 := memoryguard(0x80)
mstore(64, _1)
if callvalue() { revert(0, 0) }
let _1 := datasize("C_3_deployed")
codecopy(128, dataoffset("C_3_deployed"), _1)
return(128, _1)
let _2 := datasize("C_3_deployed")
codecopy(_1, dataoffset("C_3_deployed"), _2)
return(_1, _2)
}
}
/// @use-src 0:"ir_compiler_subobjects/input.sol"
@@ -107,7 +110,7 @@ object "D_16" {
code {
{
/// @src 0:82:95 "contract C {}"
mstore(64, 128)
mstore(64, memoryguard(0x80))
revert(0, 0)
}
}
@@ -23,15 +23,16 @@ object "D_12" {
code {
{
/// @src 0:82:161 "contract D {..."
mstore(64, 128)
let _1 := memoryguard(0x80)
mstore(64, _1)
if iszero(lt(calldatasize(), 4))
{
let _1 := 0
if eq(0x26121ff0, shr(224, calldataload(_1)))
let _2 := 0
if eq(0x26121ff0, shr(224, calldataload(_2)))
{
if callvalue() { revert(_1, _1) }
if slt(add(calldatasize(), not(3)), _1) { revert(_1, _1) }
return(128, _1)
if callvalue() { revert(_2, _2) }
if slt(add(calldatasize(), not(3)), _2) { revert(_2, _2) }
return(_1, _2)
}
}
revert(0, 0)
@@ -11,11 +11,12 @@ object "D_8" {
code {
{
/// @src 0:82:153 "contract D {..."
mstore(64, 128)
let _1 := memoryguard(0x80)
mstore(64, _1)
if callvalue() { revert(0, 0) }
let _1 := datasize("D_8_deployed")
codecopy(128, dataoffset("D_8_deployed"), _1)
return(128, _1)
let _2 := datasize("D_8_deployed")
codecopy(_1, dataoffset("D_8_deployed"), _2)
return(_1, _2)
}
}
/// @use-src 0:"ir_with_assembly_no_memoryguard_runtime/input.sol"
@@ -11,11 +11,12 @@ object "C_7" {
code {
{
/// @src 0:62:285 "contract C {..."
mstore(64, 128)
let _1 := memoryguard(0x80)
mstore(64, _1)
if callvalue() { revert(0, 0) }
let _1 := datasize("C_7_deployed")
codecopy(128, dataoffset("C_7_deployed"), _1)
return(128, _1)
let _2 := datasize("C_7_deployed")
codecopy(_1, dataoffset("C_7_deployed"), _2)
return(_1, _2)
}
}
/// @use-src 0:"keccak_optimization_low_runs/input.sol"
+6 -5
View File
@@ -11,11 +11,12 @@ object "C_59" {
code {
{
/// @src 0:346:625 "contract C {..."
mstore(64, 128)
let _1 := memoryguard(0x80)
mstore(64, _1)
if callvalue() { revert(0, 0) }
let _1 := datasize("C_59_deployed")
codecopy(128, dataoffset("C_59_deployed"), _1)
return(128, _1)
let _2 := datasize("C_59_deployed")
codecopy(_1, dataoffset("C_59_deployed"), _2)
return(_1, _2)
}
}
/// @use-src 0:"name_simplifier/input.sol"
@@ -23,7 +24,7 @@ object "C_59" {
code {
{
/// @src 0:346:625 "contract C {..."
mstore(64, 128)
mstore(64, memoryguard(0x80))
if iszero(lt(calldatasize(), 4))
{
let _1 := 0
+2 -4
View File
@@ -23,7 +23,7 @@ object "MyContract" {
Binary representation:
33600055600b806011600039806000f3fe60005460005260206000f3
33600055600b8060106000396000f3fe60005460005260206000f3
Text representation:
/* "object_compiler/input.yul":128:136 */
@@ -34,15 +34,13 @@ Text representation:
sstore
/* "object_compiler/input.yul":240:259 */
dataSize(sub_0)
dup1
/* "object_compiler/input.yul":217:238 */
dup1
dataOffset(sub_0)
/* "object_compiler/input.yul":125:126 */
0x00
/* "object_compiler/input.yul":205:260 */
codecopy
/* "object_compiler/input.yul":275:294 */
dup1
/* "object_compiler/input.yul":125:126 */
0x00
/* "object_compiler/input.yul":265:295 */
@@ -11,11 +11,12 @@ object "Arraysum_34" {
code {
{
/// @src 0:80:429 "contract Arraysum {..."
mstore(64, 128)
let _1 := memoryguard(0x80)
mstore(64, _1)
if callvalue() { revert(0, 0) }
let _1 := datasize("Arraysum_34_deployed")
codecopy(128, dataoffset("Arraysum_34_deployed"), _1)
return(128, _1)
let _2 := datasize("Arraysum_34_deployed")
codecopy(_1, dataoffset("Arraysum_34_deployed"), _2)
return(_1, _2)
}
}
/// @use-src 0:"optimizer_array_sload/input.sol"
@@ -23,7 +24,7 @@ object "Arraysum_34" {
code {
{
/// @src 0:80:429 "contract Arraysum {..."
mstore(64, 128)
mstore(64, memoryguard(0x80))
if iszero(lt(calldatasize(), 4))
{
let _1 := 0
+2 -2
View File
@@ -11,7 +11,7 @@ IR:
object "C_15" {
code {
/// @src 0:59:147 "contract C {..."
mstore(64, 128)
mstore(64, memoryguard(128))
if callvalue() { revert_error_ca66f745a3ce8ff40e2ccaf1ad45db7774001b90d25810abd9040049be7bf4bb() }
constructor_C_15()
@@ -57,7 +57,7 @@ object "C_15" {
object "C_15_deployed" {
code {
/// @src 0:59:147 "contract C {..."
mstore(64, 128)
mstore(64, memoryguard(128))
if iszero(lt(calldatasize(), 4))
{
@@ -17,7 +17,7 @@
(local $z3 i64)
(local $_1 i64)
(block $label_
(local.set $p (call $u256_to_i32_726))
(local.set $p (call $u256_to_i32_716))
(local.set $r (i32.add (local.get $p) (i32.const 64)))
(if (i32.lt_u (local.get $r) (local.get $p)) (then
(unreachable)))
@@ -30,14 +30,14 @@
(call $eth.getCallValue (i32.const 0))
(local.set $z3 (i64.load (i32.const 8)))
(if (i32.eqz (i64.eqz (i64.or (i64.or (i64.const 0) (i64.const 0)) (i64.or (local.get $z3) (i64.load (i32.const 0)))))) (then
(call $eth.revert (call $to_internal_i32ptr) (call $u256_to_i32_344))))
(call $eth.revert (call $to_internal_i32ptr_334) (call $u256_to_i32_333))))
(local.set $_1 (datasize \"C_3_deployed\"))
(call $eth.codeCopy (call $to_internal_i32ptr_348) (call $u256_to_i32 (dataoffset \"C_3_deployed\")) (call $u256_to_i32 (local.get $_1)))
(call $eth.finish (call $to_internal_i32ptr_348) (call $u256_to_i32 (local.get $_1)))
(call $eth.codeCopy (call $to_internal_i32ptr) (call $u256_to_i32 (dataoffset \"C_3_deployed\")) (call $u256_to_i32 (local.get $_1)))
(call $eth.finish (call $to_internal_i32ptr) (call $u256_to_i32 (local.get $_1)))
)
)
(func $u256_to_i32_344
(func $u256_to_i32_333
(result i32)
(local $v i32)
(local $_1 i64)
@@ -68,7 +68,7 @@
(local.get $v)
)
(func $u256_to_i32_726
(func $u256_to_i32_716
(result i32)
(local $v i32)
(block $label__3
@@ -82,12 +82,12 @@
(local.get $v)
)
(func $to_internal_i32ptr
(func $to_internal_i32ptr_334
(result i32)
(local $r i32)
(local $p i32)
(block $label__4
(local.set $p (call $u256_to_i32_344))
(local.set $p (call $u256_to_i32_333))
(local.set $r (i32.add (local.get $p) (i32.const 64)))
(if (i32.lt_u (local.get $r) (local.get $p)) (then
(unreachable)))
@@ -96,7 +96,7 @@
(local.get $r)
)
(func $to_internal_i32ptr_348
(func $to_internal_i32ptr
(result i32)
(local $r i32)
(local $v i32)
@@ -9,7 +9,7 @@
object \"C_7\" {
code {
/// @src 0:79:121 \"contract C { function f() public pure {} }\"
mstore(64, 128)
mstore(64, memoryguard(128))
if callvalue()
{
revert_error_ca66f745a3ce8ff40e2ccaf1ad45db7774001b90d25810abd9040049be7bf4bb()
@@ -29,7 +29,7 @@ object \"C_7\" {
object \"C_7_deployed\" {
code {
/// @src 0:79:121 \"contract C { function f() public pure {} }\"
mstore(64, 128)
mstore(64, memoryguard(128))
if iszero(lt(calldatasize(), 4))
{
let selector := shift_right_224_unsigned(calldataload(0))
@@ -10,7 +10,7 @@
object \"C_7\" {
code {
/// @src 0:79:121 \"contract C { function f() public pure {} }\"
mstore(64, 128)
mstore(64, memoryguard(128))
if callvalue() { revert_error_ca66f745a3ce8ff40e2ccaf1ad45db7774001b90d25810abd9040049be7bf4bb() }
constructor_C_7()
@@ -41,7 +41,7 @@ object \"C_7\" {
object \"C_7_deployed\" {
code {
/// @src 0:79:121 \"contract C { function f() public pure {} }\"
mstore(64, 128)
mstore(64, memoryguard(128))
if iszero(lt(calldatasize(), 4))
{
@@ -10,7 +10,7 @@
object \"C_3\" {
code {
/// @src 0:79:92 \"contract C {}\"
mstore(64, 128)
mstore(64, memoryguard(128))
if callvalue() { revert_error_ca66f745a3ce8ff40e2ccaf1ad45db7774001b90d25810abd9040049be7bf4bb() }
constructor_C_3()
@@ -41,7 +41,7 @@ object \"C_3\" {
object \"C_3_deployed\" {
code {
/// @src 0:79:92 \"contract C {}\"
mstore(64, 128)
mstore(64, memoryguard(128))
if iszero(lt(calldatasize(), 4))
{
@@ -87,7 +87,7 @@ object \"C_3\" {
object \"D_16\" {
code {
/// @src 0:93:146 \"contract D { function f() public { C c = new C(); } }\"
mstore(64, 128)
mstore(64, memoryguard(128))
if callvalue() { revert_error_ca66f745a3ce8ff40e2ccaf1ad45db7774001b90d25810abd9040049be7bf4bb() }
constructor_D_16()
@@ -118,7 +118,7 @@ object \"D_16\" {
object \"D_16_deployed\" {
code {
/// @src 0:93:146 \"contract D { function f() public { C c = new C(); } }\"
mstore(64, 128)
mstore(64, memoryguard(128))
if iszero(lt(calldatasize(), 4))
{
@@ -219,7 +219,7 @@ object \"D_16\" {
object \"C_3\" {
code {
/// @src 0:79:92 \"contract C {}\"
mstore(64, 128)
mstore(64, memoryguard(128))
if callvalue() { revert_error_ca66f745a3ce8ff40e2ccaf1ad45db7774001b90d25810abd9040049be7bf4bb() }
constructor_C_3()
@@ -250,7 +250,7 @@ object \"D_16\" {
object \"C_3_deployed\" {
code {
/// @src 0:79:92 \"contract C {}\"
mstore(64, 128)
mstore(64, memoryguard(128))
if iszero(lt(calldatasize(), 4))
{
@@ -1,10 +1,12 @@
{"contracts":{"A":{"object":{"evm":{"assembly":" /* \"A\":17:18 */
{"contracts":{"A":{"object":{"evm":{"assembly":" /* \"A\":38:39 */
0x00
/* \"A\":11:19 */
dup1
mload
/* \"A\":20:40 */
sstore
/* \"A\":0:42 */
stop
","bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"<BYTECODE REMOVED>","opcodes":"<OPCODES REMOVED>","sourceMap":"<SOURCEMAP REMOVED>"}},"ir":"object \"object\" {
code {
let x := mload(0)
@@ -1,10 +1,12 @@
{"contracts":{"A":{"object":{"evm":{"assembly":" /* \"A\":17:18 */
0x00
dup1
/* \"A\":11:19 */
dup1
mload
/* \"A\":20:40 */
sstore
/* \"A\":0:42 */
stop
","bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"<BYTECODE REMOVED>","opcodes":"<OPCODES REMOVED>","sourceMap":"<SOURCEMAP REMOVED>"}},"ir":"object \"object\" {
code {
let x := mload(0)
@@ -1,17 +1,15 @@
{"contracts":{"A":{"object":{"evm":{"assembly":" /* \"A\":16:17 */
0x01
dup1
/* \"A\":27:28 */
0x00
/* \"A\":20:32 */
sstore
pop
/* \"A\":50:51 */
0x02
dup1
/* \"A\":61:63 */
0x20
/* \"A\":54:67 */
sstore
pop
/* \"A\":0:72 */
stop
"}}}},"errors":[{"component":"general","formattedMessage":"Yul is still experimental. Please use the output with care.","message":"Yul is still experimental. Please use the output with care.","severity":"warning","type":"Warning"}]}
@@ -25,7 +25,7 @@ object "C_6" {
Binary representation:
60806040523415600e57600080fd5b600e601c600039600e6000f3fe60806040523615600055600080fd
608060405234601557600e601b600039600e6000f35b600080fdfe60806040523615600055600080fd
Text representation:
/* "strict_asm_optimizer_steps/input.yul":45:48 */
@@ -37,17 +37,8 @@ Text representation:
/* "strict_asm_optimizer_steps/input.yul":61:72 */
callvalue
/* "strict_asm_optimizer_steps/input.yul":58:89 */
iszero
tag_1
jumpi
/* "strict_asm_optimizer_steps/input.yul":85:86 */
0x00
/* "strict_asm_optimizer_steps/input.yul":82:83 */
dup1
/* "strict_asm_optimizer_steps/input.yul":75:87 */
revert
/* "strict_asm_optimizer_steps/input.yul":58:89 */
tag_1:
/* "strict_asm_optimizer_steps/input.yul":138:162 */
dataSize(sub_0)
/* "strict_asm_optimizer_steps/input.yul":110:136 */
@@ -62,6 +53,13 @@ tag_1:
0x00
/* "strict_asm_optimizer_steps/input.yul":172:207 */
return
/* "strict_asm_optimizer_steps/input.yul":73:89 */
tag_1:
/* "strict_asm_optimizer_steps/input.yul":85:86 */
0x00
/* "strict_asm_optimizer_steps/input.yul":75:87 */
dup1
revert
stop
sub_0: assembly {
@@ -81,8 +79,7 @@ sub_0: assembly {
sstore
/* "strict_asm_optimizer_steps/input.yul":576:577 */
0x00
/* "strict_asm_optimizer_steps/input.yul":573:574 */
dup1
/* "strict_asm_optimizer_steps/input.yul":566:578 */
dup1
revert
}
+2 -2
View File
@@ -11,7 +11,7 @@ IR:
object "test_11" {
code {
/// @src 0:79:169 "contract test {..."
mstore(64, 128)
mstore(64, memoryguard(128))
if callvalue() { revert_error_ca66f745a3ce8ff40e2ccaf1ad45db7774001b90d25810abd9040049be7bf4bb() }
constructor_test_11()
@@ -42,7 +42,7 @@ object "test_11" {
object "test_11_deployed" {
code {
/// @src 0:79:169 "contract test {..."
mstore(64, 128)
mstore(64, memoryguard(128))
if iszero(lt(calldatasize(), 4))
{
+32 -29
View File
@@ -17,11 +17,12 @@ object "C_3" {
code {
{
/// @src 0:82:95 "contract C {}"
mstore(64, 128)
let _1 := memoryguard(0x80)
mstore(64, _1)
if callvalue() { revert(0, 0) }
let _1 := datasize("C_3_deployed")
codecopy(128, dataoffset("C_3_deployed"), _1)
return(128, _1)
let _2 := datasize("C_3_deployed")
codecopy(_1, dataoffset("C_3_deployed"), _2)
return(_1, _2)
}
}
/// @use-src 0:"viair_subobjects/input.sol"
@@ -29,7 +30,7 @@ object "C_3" {
code {
{
/// @src 0:82:95 "contract C {}"
mstore(64, 128)
mstore(64, memoryguard(0x80))
revert(0, 0)
}
}
@@ -56,11 +57,12 @@ object "D_16" {
code {
{
/// @src 0:96:165 "contract D {..."
mstore(64, 128)
let _1 := memoryguard(0x80)
mstore(64, _1)
if callvalue() { revert(0, 0) }
let _1 := datasize("D_16_deployed")
codecopy(128, dataoffset("D_16_deployed"), _1)
return(128, _1)
let _2 := datasize("D_16_deployed")
codecopy(_1, dataoffset("D_16_deployed"), _2)
return(_1, _2)
}
}
/// @use-src 0:"viair_subobjects/input.sol"
@@ -68,35 +70,35 @@ object "D_16" {
code {
{
/// @src 0:96:165 "contract D {..."
mstore(64, 128)
let _1 := memoryguard(0x80)
mstore(64, _1)
if iszero(lt(calldatasize(), 4))
{
let _1 := 0
if eq(0x26121ff0, shr(224, calldataload(_1)))
let _2 := 0
if eq(0x26121ff0, shr(224, calldataload(_2)))
{
if callvalue() { revert(_1, _1) }
if slt(add(calldatasize(), not(3)), _1) { revert(_1, _1) }
/// @src 0:149:156 "new C()"
let _2 := datasize("C_3")
let _3 := add(/** @src 0:96:165 "contract D {..." */ 128, /** @src 0:149:156 "new C()" */ _2)
if or(gt(_3, 0xffffffffffffffff), lt(_3, /** @src 0:96:165 "contract D {..." */ 128))
if callvalue() { revert(_2, _2) }
if slt(add(calldatasize(), not(3)), _2) { revert(_2, _2) }
/// @src 0:149:156 "new C()"
let _3 := datasize("C_3")
let _4 := add(_1, _3)
if or(gt(_4, 0xffffffffffffffff), lt(_4, _1))
{
/// @src 0:96:165 "contract D {..."
mstore(_1, shl(224, 0x4e487b71))
mstore(_2, shl(224, 0x4e487b71))
mstore(4, 0x41)
revert(_1, 0x24)
revert(_2, 0x24)
}
/// @src 0:149:156 "new C()"
datacopy(/** @src 0:96:165 "contract D {..." */ 128, /** @src 0:149:156 "new C()" */ dataoffset("C_3"), _2)
if iszero(create(/** @src 0:96:165 "contract D {..." */ _1, 128, /** @src 0:149:156 "new C()" */ _2))
datacopy(_1, dataoffset("C_3"), _3)
if iszero(create(/** @src 0:96:165 "contract D {..." */ _2, /** @src 0:149:156 "new C()" */ _1, sub(_4, _1)))
{
/// @src 0:96:165 "contract D {..."
let pos := mload(64)
returndatacopy(pos, _1, returndatasize())
returndatacopy(pos, _2, returndatasize())
revert(pos, returndatasize())
}
return(mload(64), _1)
return(mload(64), _2)
}
}
revert(0, 0)
@@ -107,11 +109,12 @@ object "D_16" {
code {
{
/// @src 0:82:95 "contract C {}"
mstore(64, 128)
let _1 := memoryguard(0x80)
mstore(64, _1)
if callvalue() { revert(0, 0) }
let _1 := datasize("C_3_deployed")
codecopy(128, dataoffset("C_3_deployed"), _1)
return(128, _1)
let _2 := datasize("C_3_deployed")
codecopy(_1, dataoffset("C_3_deployed"), _2)
return(_1, _2)
}
}
/// @use-src 0:"viair_subobjects/input.sol"
@@ -119,7 +122,7 @@ object "D_16" {
code {
{
/// @src 0:82:95 "contract C {}"
mstore(64, 128)
mstore(64, memoryguard(0x80))
revert(0, 0)
}
}
+4 -5
View File
@@ -21,20 +21,18 @@ object "RunsTest1" {
Binary representation:
602480600d600039806000f3fe7fabc1234500000000000000000000000000000000000000000000000000000000600052
602580600c6000396000f3fe7fabc123450000000000000000000000000000000000000000000000000000000060005200
Text representation:
/* "yul_optimize_runs/input.yul":106:125 */
dataSize(sub_0)
dup1
/* "yul_optimize_runs/input.yul":83:104 */
dup1
dataOffset(sub_0)
/* "yul_optimize_runs/input.yul":80:81 */
0x00
/* "yul_optimize_runs/input.yul":71:126 */
codecopy
/* "yul_optimize_runs/input.yul":145:164 */
dup1
/* "yul_optimize_runs/input.yul":80:81 */
0x00
/* "yul_optimize_runs/input.yul":135:165 */
@@ -48,5 +46,6 @@ sub_0: assembly {
0x00
/* "yul_optimize_runs/input.yul":270:288 */
mstore
/* "yul_optimize_runs/input.yul":208:298 */
stop
}
+2 -2
View File
@@ -11,7 +11,7 @@ object "C_7" {
code {
{
/// @src 0:80:112 "contract C..."
mstore(64, 128)
mstore(64, memoryguard(0x80))
if callvalue()
{
revert_error_ca66f745a3ce8ff40e2ccaf1ad45db7774001b90d25810abd9040049be7bf4bb()
@@ -30,7 +30,7 @@ object "C_7" {
code {
{
/// @src 0:80:112 "contract C..."
mstore(64, 128)
mstore(64, memoryguard(0x80))
if iszero(lt(calldatasize(), 4))
{
let selector := shift_right_unsigned(calldataload(0))
@@ -10,7 +10,7 @@
object \"C_54\" {
code {
/// @src 0:79:428 \"contract C...\"
mstore(64, 160)
mstore(64, memoryguard(160))
if callvalue() { revert_error_ca66f745a3ce8ff40e2ccaf1ad45db7774001b90d25810abd9040049be7bf4bb() }
let _1 := copy_arguments_for_constructor_20_object_C_54()
@@ -160,7 +160,7 @@ object \"C_54\" {
object \"C_54_deployed\" {
code {
/// @src 0:79:428 \"contract C...\"
mstore(64, 128)
mstore(64, memoryguard(128))
if iszero(lt(calldatasize(), 4))
{
@@ -568,7 +568,7 @@ object \"C_54\" {
object \"D_72\" {
code {
/// @src 1:91:166 \"contract D is C(3)...\"
mstore(64, 160)
mstore(64, memoryguard(160))
if callvalue() { revert_error_ca66f745a3ce8ff40e2ccaf1ad45db7774001b90d25810abd9040049be7bf4bb() }
let _1 := copy_arguments_for_constructor_71_object_D_72()
@@ -785,7 +785,7 @@ object \"D_72\" {
object \"D_72_deployed\" {
code {
/// @src 1:91:166 \"contract D is C(3)...\"
mstore(64, 128)
mstore(64, memoryguard(128))
if iszero(lt(calldatasize(), 4))
{
@@ -11,7 +11,7 @@ IR:
object "C_2" {
code {
/// @src 0:265:278 "contract C {}"
mstore(64, 128)
mstore(64, memoryguard(128))
if callvalue() { revert_error_ca66f745a3ce8ff40e2ccaf1ad45db7774001b90d25810abd9040049be7bf4bb() }
constructor_C_2()
@@ -42,7 +42,7 @@ object "C_2" {
object "C_2_deployed" {
code {
/// @src 0:265:278 "contract C {}"
mstore(64, 128)
mstore(64, memoryguard(128))
if iszero(lt(calldatasize(), 4))
{
@@ -90,11 +90,12 @@ object "C_2" {
code {
{
/// @src 0:265:278 "contract C {}"
mstore(64, 128)
let _1 := memoryguard(0x80)
mstore(64, _1)
if callvalue() { revert(0, 0) }
let _1 := datasize("C_2_deployed")
codecopy(128, dataoffset("C_2_deployed"), _1)
return(128, _1)
let _2 := datasize("C_2_deployed")
codecopy(_1, dataoffset("C_2_deployed"), _2)
return(_1, _2)
}
}
/// @use-src 0:"yul_source_locations_code_snippet_escaping/input.sol"
@@ -102,7 +103,7 @@ object "C_2" {
code {
{
/// @src 0:265:278 "contract C {}"
mstore(64, 128)
mstore(64, memoryguard(0x80))
revert(0, 0)
}
}
@@ -123,7 +124,7 @@ IR:
object "D_27" {
code {
/// @src 0:279:599 "contract D /** @src 0:96:165 \"contract D {...\" *\/ {..."
mstore(64, 128)
mstore(64, memoryguard(128))
if callvalue() { revert_error_ca66f745a3ce8ff40e2ccaf1ad45db7774001b90d25810abd9040049be7bf4bb() }
constructor_D_27()
@@ -154,7 +155,7 @@ object "D_27" {
object "D_27_deployed" {
code {
/// @src 0:279:599 "contract D /** @src 0:96:165 \"contract D {...\" *\/ {..."
mstore(64, 128)
mstore(64, memoryguard(128))
if iszero(lt(calldatasize(), 4))
{
@@ -379,7 +380,7 @@ object "D_27" {
object "C_2" {
code {
/// @src 0:265:278 "contract C {}"
mstore(64, 128)
mstore(64, memoryguard(128))
if callvalue() { revert_error_ca66f745a3ce8ff40e2ccaf1ad45db7774001b90d25810abd9040049be7bf4bb() }
constructor_C_2()
@@ -410,7 +411,7 @@ object "D_27" {
object "C_2_deployed" {
code {
/// @src 0:265:278 "contract C {}"
mstore(64, 128)
mstore(64, memoryguard(128))
if iszero(lt(calldatasize(), 4))
{
@@ -463,11 +464,12 @@ object "D_27" {
code {
{
/// @src 0:279:599 "contract D /** @src 0:96:165 \"contract D {...\" *\/ {..."
mstore(64, 128)
let _1 := memoryguard(0x80)
mstore(64, _1)
if callvalue() { revert(0, 0) }
let _1 := datasize("D_27_deployed")
codecopy(128, dataoffset("D_27_deployed"), _1)
return(128, _1)
let _2 := datasize("D_27_deployed")
codecopy(_1, dataoffset("D_27_deployed"), _2)
return(_1, _2)
}
}
/// @use-src 0:"yul_source_locations_code_snippet_escaping/input.sol"
@@ -475,26 +477,25 @@ object "D_27" {
code {
{
/// @src 0:279:599 "contract D /** @src 0:96:165 \"contract D {...\" *\/ {..."
mstore(64, 128)
let _1 := memoryguard(0x80)
mstore(64, _1)
if iszero(lt(calldatasize(), 4))
{
let _1 := 0
if eq(0x26121ff0, shr(224, calldataload(_1)))
let _2 := 0
if eq(0x26121ff0, shr(224, calldataload(_2)))
{
if callvalue() { revert(_1, _1) }
if slt(add(calldatasize(), not(3)), _1) { revert(_1, _1) }
if callvalue() { revert(_2, _2) }
if slt(add(calldatasize(), not(3)), _2) { revert(_2, _2) }
/// @src 0:446:491 "new /// @src 0:149:156 \"new C()\"..."
let _2 := datasize("C_2")
let _3 := add(/** @src 0:279:599 "contract D /** @src 0:96:165 \"contract D {...\" *\/ {..." */ 128, /** @src 0:446:491 "new /// @src 0:149:156 \"new C()\"..." */ _2)
if or(gt(_3, 0xffffffffffffffff), lt(_3, /** @src 0:279:599 "contract D /** @src 0:96:165 \"contract D {...\" *\/ {..." */ 128))
/// @src 0:446:491 "new /// @src 0:149:156 \"new C()\"..."
{ panic_error_0x41() }
datacopy(/** @src 0:279:599 "contract D /** @src 0:96:165 \"contract D {...\" *\/ {..." */ 128, /** @src 0:446:491 "new /// @src 0:149:156 \"new C()\"..." */ dataoffset("C_2"), _2)
if iszero(create(/** @src 0:279:599 "contract D /** @src 0:96:165 \"contract D {...\" *\/ {..." */ _1, 128, /** @src 0:446:491 "new /// @src 0:149:156 \"new C()\"..." */ _2))
let _3 := datasize("C_2")
let _4 := add(_1, _3)
if or(gt(_4, 0xffffffffffffffff), lt(_4, _1)) { panic_error_0x41() }
datacopy(_1, dataoffset("C_2"), _3)
if iszero(create(/** @src 0:279:599 "contract D /** @src 0:96:165 \"contract D {...\" *\/ {..." */ _2, /** @src 0:446:491 "new /// @src 0:149:156 \"new C()\"..." */ _1, sub(_4, _1)))
{
/// @src 0:279:599 "contract D /** @src 0:96:165 \"contract D {...\" *\/ {..."
let pos := mload(64)
returndatacopy(pos, _1, returndatasize())
returndatacopy(pos, _2, returndatasize())
revert(pos, returndatasize())
}
mstore(add(allocate_memory_array_string(), 32), "/*")
@@ -554,11 +555,12 @@ object "D_27" {
code {
{
/// @src 0:265:278 "contract C {}"
mstore(64, 128)
let _1 := memoryguard(0x80)
mstore(64, _1)
if callvalue() { revert(0, 0) }
let _1 := datasize("C_2_deployed")
codecopy(128, dataoffset("C_2_deployed"), _1)
return(128, _1)
let _2 := datasize("C_2_deployed")
codecopy(_1, dataoffset("C_2_deployed"), _2)
return(_1, _2)
}
}
/// @use-src 0:"yul_source_locations_code_snippet_escaping/input.sol"
@@ -566,7 +568,7 @@ object "D_27" {
code {
{
/// @src 0:265:278 "contract C {}"
mstore(64, 128)
mstore(64, memoryguard(0x80))
revert(0, 0)
}
}
File diff suppressed because it is too large Load Diff
@@ -10,7 +10,7 @@
object \"C_11\" {
code {
/// @src 0:78:164 \"contract C { function f() external pure returns (string memory) { return \\\"abcabc\\\"; } }\"
mstore(64, 128)
mstore(64, memoryguard(128))
if callvalue() { revert_error_ca66f745a3ce8ff40e2ccaf1ad45db7774001b90d25810abd9040049be7bf4bb() }
constructor_C_11()
@@ -41,7 +41,7 @@ object \"C_11\" {
object \"C_11_deployed\" {
code {
/// @src 0:78:164 \"contract C { function f() external pure returns (string memory) { return \\\"abcabc\\\"; } }\"
mstore(64, 128)
mstore(64, memoryguard(128))
if iszero(lt(calldatasize(), 4))
{
@@ -10,7 +10,7 @@
object \"C_11\" {
code {
/// @src 0:78:158 \"contract C { function f() external pure returns (bytes32) { return \\\"abcabc\\\"; } }\"
mstore(64, 128)
mstore(64, memoryguard(128))
if callvalue() { revert_error_ca66f745a3ce8ff40e2ccaf1ad45db7774001b90d25810abd9040049be7bf4bb() }
constructor_C_11()
@@ -41,7 +41,7 @@ object \"C_11\" {
object \"C_11_deployed\" {
code {
/// @src 0:78:158 \"contract C { function f() external pure returns (bytes32) { return \\\"abcabc\\\"; } }\"
mstore(64, 128)
mstore(64, memoryguard(128))
if iszero(lt(calldatasize(), 4))
{
@@ -10,7 +10,7 @@
object \"C_11\" {
code {
/// @src 0:78:159 \"contract C { function f() external pure returns (bytes4) { return 0x61626364; } }\"
mstore(64, 128)
mstore(64, memoryguard(128))
if callvalue() { revert_error_ca66f745a3ce8ff40e2ccaf1ad45db7774001b90d25810abd9040049be7bf4bb() }
constructor_C_11()
@@ -41,7 +41,7 @@ object \"C_11\" {
object \"C_11_deployed\" {
code {
/// @src 0:78:159 \"contract C { function f() external pure returns (bytes4) { return 0x61626364; } }\"
mstore(64, 128)
mstore(64, memoryguard(128))
if iszero(lt(calldatasize(), 4))
{
@@ -10,7 +10,7 @@
object \"C_11\" {
code {
/// @src 0:78:243 \"contract C { function f() external pure returns (string memory) { return \\\"abcdabcdcafecafeabcdabcdcafecafeffffzzzzoooo0123456789,.<,>.?:;'[{]}|`~!@#$%^&*()-_=+\\\"; } }\"
mstore(64, 128)
mstore(64, memoryguard(128))
if callvalue() { revert_error_ca66f745a3ce8ff40e2ccaf1ad45db7774001b90d25810abd9040049be7bf4bb() }
constructor_C_11()
@@ -41,7 +41,7 @@ object \"C_11\" {
object \"C_11_deployed\" {
code {
/// @src 0:78:243 \"contract C { function f() external pure returns (string memory) { return \\\"abcdabcdcafecafeabcdabcdcafecafeffffzzzzoooo0123456789,.<,>.?:;'[{]}|`~!@#$%^&*()-_=+\\\"; } }\"
mstore(64, 128)
mstore(64, memoryguard(128))
if iszero(lt(calldatasize(), 4))
{
@@ -10,7 +10,7 @@
object \"C_11\" {
code {
/// @src 0:78:159 \"contract C { function f() external pure returns (bytes4) { return 0xaabbccdd; } }\"
mstore(64, 128)
mstore(64, memoryguard(128))
if callvalue() { revert_error_ca66f745a3ce8ff40e2ccaf1ad45db7774001b90d25810abd9040049be7bf4bb() }
constructor_C_11()
@@ -41,7 +41,7 @@ object \"C_11\" {
object \"C_11_deployed\" {
code {
/// @src 0:78:159 \"contract C { function f() external pure returns (bytes4) { return 0xaabbccdd; } }\"
mstore(64, 128)
mstore(64, memoryguard(128))
if iszero(lt(calldatasize(), 4))
{
+3 -1
View File
@@ -14,7 +14,7 @@ object "object" {
Binary representation:
612000515061616002600055
61200051506161600260005500
Text representation:
/* "yul_verbatim_msize/input.yul":125:131 */
@@ -30,3 +30,5 @@ Text representation:
0x00
/* "yul_verbatim_msize/input.yul":162:174 */
sstore
/* "yul_verbatim_msize/input.yul":0:176 */
stop