mirror of
https://github.com/ethereum/solidity
synced 2023-10-03 13:03:40 +00:00
fixup! Do not split zeros in ExpressionSplitter
This commit is contained in:
parent
29ecd7b70a
commit
d0fb088f19
@ -19,7 +19,7 @@
|
|||||||
sstore(16, g)
|
sstore(16, g)
|
||||||
}
|
}
|
||||||
// ====
|
// ====
|
||||||
// EVMVersion: >byzantium
|
// EVMVersion: >=shanghai
|
||||||
// ----
|
// ----
|
||||||
// step: expressionSimplifier
|
// step: expressionSimplifier
|
||||||
//
|
//
|
||||||
|
@ -16,7 +16,7 @@
|
|||||||
sstore(20, e)
|
sstore(20, e)
|
||||||
}
|
}
|
||||||
// ====
|
// ====
|
||||||
// EVMVersion: >byzantium
|
// EVMVersion: >=shanghai
|
||||||
// ----
|
// ----
|
||||||
// step: expressionSimplifier
|
// step: expressionSimplifier
|
||||||
//
|
//
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
sstore(c, d)
|
sstore(c, d)
|
||||||
}
|
}
|
||||||
// ====
|
// ====
|
||||||
// EVMVersion: >=constantinople
|
// EVMVersion: >=shanghai
|
||||||
// ----
|
// ----
|
||||||
// step: expressionSimplifier
|
// step: expressionSimplifier
|
||||||
//
|
//
|
||||||
|
@ -7,6 +7,8 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
// ====
|
||||||
|
// EVMVersion: >=shanghai
|
||||||
// ----
|
// ----
|
||||||
// step: expressionSplitter
|
// step: expressionSplitter
|
||||||
//
|
//
|
||||||
|
@ -5,6 +5,8 @@
|
|||||||
}
|
}
|
||||||
sstore(x, f(mload(2), mload(2)))
|
sstore(x, f(mload(2), mload(2)))
|
||||||
}
|
}
|
||||||
|
// ====
|
||||||
|
// EVMVersion: >=shanghai
|
||||||
// ----
|
// ----
|
||||||
// step: expressionSplitter
|
// step: expressionSplitter
|
||||||
//
|
//
|
||||||
|
@ -9,6 +9,8 @@ object "main" {
|
|||||||
}
|
}
|
||||||
data "abc" "Hello, World!"
|
data "abc" "Hello, World!"
|
||||||
}
|
}
|
||||||
|
// ====
|
||||||
|
// EVMVersion: >=shanghai
|
||||||
// ----
|
// ----
|
||||||
// step: expressionSplitter
|
// step: expressionSplitter
|
||||||
//
|
//
|
||||||
|
@ -5,6 +5,8 @@
|
|||||||
default { mstore(0, mload(3)) }
|
default { mstore(0, mload(3)) }
|
||||||
x := add(mload(3), 4)
|
x := add(mload(3), 4)
|
||||||
}
|
}
|
||||||
|
// ====
|
||||||
|
// EVMVersion: >=shanghai
|
||||||
// ----
|
// ----
|
||||||
// step: expressionSplitter
|
// step: expressionSplitter
|
||||||
//
|
//
|
||||||
|
@ -4,6 +4,8 @@
|
|||||||
let b3, c3 := f(a1)
|
let b3, c3 := f(a1)
|
||||||
let b4, c4 := f(c3)
|
let b4, c4 := f(c3)
|
||||||
}
|
}
|
||||||
|
// ====
|
||||||
|
// EVMVersion: >=shanghai
|
||||||
// ----
|
// ----
|
||||||
// step: fullInliner
|
// step: fullInliner
|
||||||
//
|
//
|
||||||
|
@ -8,6 +8,8 @@
|
|||||||
r := add(a, calldatasize())
|
r := add(a, calldatasize())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
// ====
|
||||||
|
// EVMVersion: >=shanghai
|
||||||
// ----
|
// ----
|
||||||
// step: fullInliner
|
// step: fullInliner
|
||||||
//
|
//
|
||||||
|
@ -7,6 +7,8 @@
|
|||||||
mstore(0, verylongfunctionname(verylongvariablename2))
|
mstore(0, verylongfunctionname(verylongvariablename2))
|
||||||
mstore(1, verylongvariablename2)
|
mstore(1, verylongvariablename2)
|
||||||
}
|
}
|
||||||
|
// ====
|
||||||
|
// EVMVersion: >=shanghai
|
||||||
// ----
|
// ----
|
||||||
// step: fullInliner
|
// step: fullInliner
|
||||||
//
|
//
|
||||||
|
@ -22,6 +22,8 @@
|
|||||||
f(100)
|
f(100)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
// ====
|
||||||
|
// EVMVersion: >=shanghai
|
||||||
// ----
|
// ----
|
||||||
// step: fullInliner
|
// step: fullInliner
|
||||||
//
|
//
|
||||||
|
@ -6,6 +6,8 @@
|
|||||||
let r, s := f(mload(0))
|
let r, s := f(mload(0))
|
||||||
mstore(r, s)
|
mstore(r, s)
|
||||||
}
|
}
|
||||||
|
// ====
|
||||||
|
// EVMVersion: >=shanghai
|
||||||
// ----
|
// ----
|
||||||
// step: fullInliner
|
// step: fullInliner
|
||||||
//
|
//
|
||||||
|
@ -4,6 +4,8 @@
|
|||||||
let a1 := calldataload(0)
|
let a1 := calldataload(0)
|
||||||
f(a1)
|
f(a1)
|
||||||
}
|
}
|
||||||
|
// ====
|
||||||
|
// EVMVersion: >=shanghai
|
||||||
// ----
|
// ----
|
||||||
// step: fullInliner
|
// step: fullInliner
|
||||||
//
|
//
|
||||||
|
@ -18,6 +18,8 @@
|
|||||||
let d := keccak256(x, y)
|
let d := keccak256(x, y)
|
||||||
sstore(d, 2)
|
sstore(d, 2)
|
||||||
}
|
}
|
||||||
|
// ====
|
||||||
|
// EVMVersion: >=shanghai
|
||||||
// ----
|
// ----
|
||||||
// step: loadResolver
|
// step: loadResolver
|
||||||
//
|
//
|
||||||
|
@ -19,6 +19,8 @@
|
|||||||
let e := keccak256(x, y)
|
let e := keccak256(x, y)
|
||||||
sstore(e, 6)
|
sstore(e, 6)
|
||||||
}
|
}
|
||||||
|
// ====
|
||||||
|
// EVMVersion: >=shanghai
|
||||||
// ----
|
// ----
|
||||||
// step: loadResolver
|
// step: loadResolver
|
||||||
//
|
//
|
||||||
|
@ -22,6 +22,8 @@
|
|||||||
}
|
}
|
||||||
sstore(0, keccak256(start, 0x40))
|
sstore(0, keccak256(start, 0x40))
|
||||||
}
|
}
|
||||||
|
// ====
|
||||||
|
// EVMVersion: >=shanghai
|
||||||
// ----
|
// ----
|
||||||
// step: unusedStoreEliminator
|
// step: unusedStoreEliminator
|
||||||
//
|
//
|
||||||
|
@ -21,6 +21,8 @@
|
|||||||
}
|
}
|
||||||
sstore(0, keccak256(0, 0x40))
|
sstore(0, keccak256(0, 0x40))
|
||||||
}
|
}
|
||||||
|
// ====
|
||||||
|
// EVMVersion: >=shanghai
|
||||||
// ----
|
// ----
|
||||||
// step: unusedStoreEliminator
|
// step: unusedStoreEliminator
|
||||||
//
|
//
|
||||||
|
@ -7,6 +7,8 @@
|
|||||||
}
|
}
|
||||||
sstore(c, 3)
|
sstore(c, 3)
|
||||||
}
|
}
|
||||||
|
// ====
|
||||||
|
// EVMVersion: >=shanghai
|
||||||
// ----
|
// ----
|
||||||
// step: unusedStoreEliminator
|
// step: unusedStoreEliminator
|
||||||
//
|
//
|
||||||
|
@ -7,6 +7,8 @@
|
|||||||
}
|
}
|
||||||
f()
|
f()
|
||||||
}
|
}
|
||||||
|
// ====
|
||||||
|
// EVMVersion: >=shanghai
|
||||||
// ----
|
// ----
|
||||||
// step: unusedStoreEliminator
|
// step: unusedStoreEliminator
|
||||||
//
|
//
|
||||||
|
@ -8,6 +8,8 @@
|
|||||||
pop(f())
|
pop(f())
|
||||||
sstore(x, 10)
|
sstore(x, 10)
|
||||||
}
|
}
|
||||||
|
// ====
|
||||||
|
// EVMVersion: >=shanghai
|
||||||
// ----
|
// ----
|
||||||
// step: unusedStoreEliminator
|
// step: unusedStoreEliminator
|
||||||
//
|
//
|
||||||
|
@ -7,6 +7,8 @@
|
|||||||
let d := 0
|
let d := 0
|
||||||
revert(d, d)
|
revert(d, d)
|
||||||
}
|
}
|
||||||
|
// ====
|
||||||
|
// EVMVersion: >=shanghai
|
||||||
// ----
|
// ----
|
||||||
// step: unusedStoreEliminator
|
// step: unusedStoreEliminator
|
||||||
//
|
//
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
returndatacopy(0,0,returndatasize())
|
returndatacopy(0,0,returndatasize())
|
||||||
}
|
}
|
||||||
// ====
|
// ====
|
||||||
// EVMVersion: >homestead
|
// EVMVersion: >=shanghai
|
||||||
// ----
|
// ----
|
||||||
// step: unusedStoreEliminator
|
// step: unusedStoreEliminator
|
||||||
//
|
//
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
returndatacopy(0,0,s)
|
returndatacopy(0,0,s)
|
||||||
}
|
}
|
||||||
// ====
|
// ====
|
||||||
// EVMVersion: >homestead
|
// EVMVersion: >=shanghai
|
||||||
// ----
|
// ----
|
||||||
// step: unusedStoreEliminator
|
// step: unusedStoreEliminator
|
||||||
//
|
//
|
||||||
|
@ -8,6 +8,8 @@
|
|||||||
let x := mload(0)
|
let x := mload(0)
|
||||||
sstore(0, x)
|
sstore(0, x)
|
||||||
}
|
}
|
||||||
|
// ====
|
||||||
|
// EVMVersion: >=shanghai
|
||||||
// ----
|
// ----
|
||||||
// step: unusedStoreEliminator
|
// step: unusedStoreEliminator
|
||||||
//
|
//
|
||||||
|
@ -6,6 +6,8 @@
|
|||||||
mstore(c, 9)
|
mstore(c, 9)
|
||||||
mstore(add(c, 0x20), 20)
|
mstore(add(c, 0x20), 20)
|
||||||
}
|
}
|
||||||
|
// ====
|
||||||
|
// EVMVersion: >=shanghai
|
||||||
// ----
|
// ----
|
||||||
// step: unusedStoreEliminator
|
// step: unusedStoreEliminator
|
||||||
//
|
//
|
||||||
|
@ -9,6 +9,8 @@
|
|||||||
f()
|
f()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
// ====
|
||||||
|
// EVMVersion: >=shanghai
|
||||||
// ----
|
// ----
|
||||||
// step: unusedStoreEliminator
|
// step: unusedStoreEliminator
|
||||||
//
|
//
|
||||||
|
Loading…
Reference in New Issue
Block a user