mirror of
https://github.com/ethereum/solidity
synced 2023-10-03 13:03:40 +00:00
Tests for FunctionSpecializer
This commit is contained in:
@@ -45,14 +45,14 @@ object "C_59" {
|
||||
for { } lt(i, _4) { i := add(i, 1) }
|
||||
{
|
||||
if slt(sub(calldatasize(), src), _2) { revert(_1, _1) }
|
||||
let value := allocate_memory(_2)
|
||||
let value := allocate_memory_1246()
|
||||
mstore(value, calldataload(src))
|
||||
mstore(dst, value)
|
||||
dst := add(dst, _2)
|
||||
src := add(src, _2)
|
||||
}
|
||||
let ret, ret_1 := fun_sumArray(dst_1)
|
||||
let memPos := allocate_memory(_1)
|
||||
let memPos := allocate_memory_1247()
|
||||
return(memPos, sub(abi_encode_uint256_string(memPos, ret, ret_1), memPos))
|
||||
}
|
||||
}
|
||||
@@ -76,6 +76,19 @@ object "C_59" {
|
||||
}
|
||||
tail := add(add(headStart, and(add(length, 31), not(31))), 96)
|
||||
}
|
||||
function allocate_memory_1246() -> memPtr
|
||||
{
|
||||
memPtr := mload(64)
|
||||
let newFreePtr := add(memPtr, 32)
|
||||
if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }
|
||||
mstore(64, newFreePtr)
|
||||
}
|
||||
function allocate_memory_1247() -> memPtr
|
||||
{
|
||||
memPtr := mload(64)
|
||||
if gt(memPtr, 0xffffffffffffffff) { panic_error_0x41() }
|
||||
mstore(64, memPtr)
|
||||
}
|
||||
function allocate_memory(size) -> memPtr
|
||||
{
|
||||
memPtr := mload(64)
|
||||
@@ -85,7 +98,10 @@ object "C_59" {
|
||||
}
|
||||
function copy_literal_to_memory_64902fd228f7ef267f3b474dd6ef84bae434cf5546eee948e7ca26df3eda1927() -> memPtr
|
||||
{
|
||||
let memPtr_1 := allocate_memory(160)
|
||||
let memPtr_1 := mload(64)
|
||||
let newFreePtr := add(memPtr_1, 160)
|
||||
if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr_1)) { panic_error_0x41() }
|
||||
mstore(64, newFreePtr)
|
||||
mstore(memPtr_1, 100)
|
||||
memPtr := memPtr_1
|
||||
mstore(add(memPtr_1, 0x20), "longstringlongstringlongstringlo")
|
||||
@@ -101,7 +117,7 @@ object "C_59" {
|
||||
{
|
||||
if iszero(lt(var_mpos, mload(var_s_mpos))) { panic_error_0x32() }
|
||||
let _1 := mload(mload(add(add(var_s_mpos, shl(5, var_mpos)), 32)))
|
||||
let _2, _3 := storage_array_index_access_struct_S(var_mpos, var_mpos)
|
||||
let _2, _3 := storage_array_index_access_struct_S_1254()
|
||||
sstore(_2, _1)
|
||||
if iszero(lt(0x01, mload(var_s_mpos))) { panic_error_0x32() }
|
||||
let _4 := mload(mload(add(var_s_mpos, 64)))
|
||||
@@ -111,7 +127,7 @@ object "C_59" {
|
||||
let shiftBits := shl(3, var_mpos)
|
||||
let mask := shl(shiftBits, not(0))
|
||||
sstore(slot, or(and(_5, not(mask)), and(shl(shiftBits, _4), mask)))
|
||||
let _6, _7 := storage_array_index_access_struct_S(0x02, var_mpos)
|
||||
let _6, _7 := storage_array_index_access_struct_S()
|
||||
var := extract_from_storage_value_dynamict_uint256(sload(_6), _7)
|
||||
var_mpos := copy_literal_to_memory_64902fd228f7ef267f3b474dd6ef84bae434cf5546eee948e7ca26df3eda1927()
|
||||
}
|
||||
@@ -127,10 +143,16 @@ object "C_59" {
|
||||
mstore(4, 0x41)
|
||||
revert(0, 0x24)
|
||||
}
|
||||
function storage_array_index_access_struct_S(array, index) -> slot, offset
|
||||
function storage_array_index_access_struct_S_1254() -> slot, offset
|
||||
{
|
||||
if iszero(lt(index, 0x02)) { panic_error_0x32() }
|
||||
slot := add(array, index)
|
||||
if iszero(lt(slot, 0x02)) { panic_error_0x32() }
|
||||
slot := add(slot, slot)
|
||||
offset := offset
|
||||
}
|
||||
function storage_array_index_access_struct_S() -> slot, offset
|
||||
{
|
||||
if iszero(lt(slot, 0x02)) { panic_error_0x32() }
|
||||
slot := add(0x02, slot)
|
||||
offset := offset
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user