mirror of
https://github.com/ethereum/solidity
synced 2023-10-03 13:03:40 +00:00
Rematerialize zero literals
This commit is contained in:
@@ -457,26 +457,25 @@
|
||||
}
|
||||
}
|
||||
// ====
|
||||
// EVMVersion: >=constantinople
|
||||
// EVMVersion: >=shanghai
|
||||
// ----
|
||||
// step: fullSuite
|
||||
//
|
||||
// {
|
||||
// {
|
||||
// let _1 := 0
|
||||
// let _2 := mload(_1)
|
||||
// let _1 := mload(0)
|
||||
// let pos := 0x20
|
||||
// let length := mload(_2)
|
||||
// let length := mload(_1)
|
||||
// mstore(pos, length)
|
||||
// pos := 64
|
||||
// let srcPtr := add(_2, 0x20)
|
||||
// let i := _1
|
||||
// let srcPtr := add(_1, 0x20)
|
||||
// let i := 0
|
||||
// for { } lt(i, length) { i := add(i, 1) }
|
||||
// {
|
||||
// let _3 := mload(srcPtr)
|
||||
// let _2 := mload(srcPtr)
|
||||
// let pos_1 := pos
|
||||
// let srcPtr_1 := _3
|
||||
// let i_1 := _1
|
||||
// let srcPtr_1 := _2
|
||||
// let i_1 := 0
|
||||
// for { } lt(i_1, 0x3) { i_1 := add(i_1, 1) }
|
||||
// {
|
||||
// mstore(pos_1, and(mload(srcPtr_1), sub(shl(160, 1), 1)))
|
||||
@@ -489,7 +488,7 @@
|
||||
// let a, b, c, d := abi_decode_uint256t_uint256t_array_uint256_dynt_array_array_uint256_memory_dyn(mload(0x20), mload(64))
|
||||
// sstore(a, b)
|
||||
// sstore(c, d)
|
||||
// sstore(_1, pos)
|
||||
// sstore(0, pos)
|
||||
// }
|
||||
// function abi_decode_array_array_uint256_memory_dyn(offset, end) -> array
|
||||
// {
|
||||
|
||||
@@ -6,6 +6,8 @@
|
||||
}
|
||||
if y { revert(0, 0) }
|
||||
}
|
||||
// ====
|
||||
// EVMVersion: >=shanghai
|
||||
// ----
|
||||
// step: fullSuite
|
||||
//
|
||||
@@ -13,15 +15,7 @@
|
||||
// {
|
||||
// let y := mload(0x20)
|
||||
// let _1 := iszero(and(y, 8))
|
||||
// for { }
|
||||
// iszero(_1)
|
||||
// {
|
||||
// if y
|
||||
// {
|
||||
// let _2 := 0
|
||||
// revert(_2, _2)
|
||||
// }
|
||||
// }
|
||||
// for { } iszero(_1) { if y { revert(0, 0) } }
|
||||
// {
|
||||
// if y { continue }
|
||||
// sstore(1, 0)
|
||||
|
||||
@@ -7,15 +7,14 @@
|
||||
sstore(a, b)
|
||||
}
|
||||
// ====
|
||||
// EVMVersion: >=constantinople
|
||||
// EVMVersion: >=shanghai
|
||||
// ----
|
||||
// step: fullSuite
|
||||
//
|
||||
// {
|
||||
// {
|
||||
// let _1 := sub(shl(160, 1), 1)
|
||||
// let _2 := 0
|
||||
// let a := and(create2(_2, _2, 0x20, _2), _1)
|
||||
// sstore(a, and(_1, create2(_2, _2, 0x20, _2)))
|
||||
// let a := and(create2(0, 0, 0x20, 0), _1)
|
||||
// sstore(a, and(_1, create2(0, 0, 0x20, 0)))
|
||||
// }
|
||||
// }
|
||||
|
||||
@@ -22,22 +22,21 @@
|
||||
}
|
||||
}
|
||||
// ====
|
||||
// EVMVersion: >=constantinople
|
||||
// EVMVersion: >=shanghai
|
||||
// ----
|
||||
// step: fullSuite
|
||||
//
|
||||
// {
|
||||
// {
|
||||
// let _1 := 0
|
||||
// if eq(0x26121ff0, shr(224, calldataload(_1)))
|
||||
// if eq(0x26121ff0, shr(224, calldataload(0)))
|
||||
// {
|
||||
// if callvalue() { revert(_1, _1) }
|
||||
// if slt(add(calldatasize(), not(3)), _1) { revert(_1, _1) }
|
||||
// if iszero(lt(0x0a, sload(_1)))
|
||||
// if callvalue() { revert(0, 0) }
|
||||
// if slt(add(calldatasize(), not(3)), 0) { revert(0, 0) }
|
||||
// if iszero(lt(0x0a, sload(0)))
|
||||
// {
|
||||
// mstore(_1, shl(224, 0x4e487b71))
|
||||
// mstore(0, shl(224, 0x4e487b71))
|
||||
// mstore(4, 0x32)
|
||||
// revert(_1, 0x24)
|
||||
// revert(0, 0x24)
|
||||
// }
|
||||
// sstore(0x290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56d, 0x05)
|
||||
// }
|
||||
|
||||
@@ -12,6 +12,8 @@
|
||||
}
|
||||
}
|
||||
}
|
||||
// ====
|
||||
// EVMVersion: >=shanghai
|
||||
// ----
|
||||
// step: fullSuite
|
||||
//
|
||||
@@ -25,13 +27,12 @@
|
||||
// function f()
|
||||
// {
|
||||
// let b := 10
|
||||
// let _1 := 0
|
||||
// let a := calldataload(_1)
|
||||
// let _2 := iszero(a)
|
||||
// let a := calldataload(0)
|
||||
// let _1 := iszero(a)
|
||||
// for { } iszero(b) { b := add(b, not(0)) }
|
||||
// {
|
||||
// mstore(a, _1)
|
||||
// if _2 { leave }
|
||||
// mstore(a, 0)
|
||||
// if _1 { leave }
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
|
||||
Reference in New Issue
Block a user