mirror of
https://github.com/ethereum/solidity
synced 2023-10-03 13:03:40 +00:00
Merge pull request #13514 from ethereum/yul-interpreter-create2
Fix create2 memory access in yul interpreter.
This commit is contained in:
commit
1730e43bf7
13
test/libyul/yulInterpreterTests/create2.yul
Normal file
13
test/libyul/yulInterpreterTests/create2.yul
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
{
|
||||||
|
pop(create2(0, 0, 32, 32))
|
||||||
|
// This used to store 64
|
||||||
|
sstore(0, msize())
|
||||||
|
}
|
||||||
|
// ====
|
||||||
|
// EVMVersion: >=constantinople
|
||||||
|
// ----
|
||||||
|
// Trace:
|
||||||
|
// CREATE2(0, 0, 32, 32)
|
||||||
|
// Memory dump:
|
||||||
|
// Storage dump:
|
||||||
|
// 0000000000000000000000000000000000000000000000000000000000000000: 0000000000000000000000000000000000000000000000000000000000000020
|
@ -317,7 +317,7 @@ u256 EVMInstructionInterpreter::eval(
|
|||||||
logTrace(_instruction, arg);
|
logTrace(_instruction, arg);
|
||||||
return (0xcccccc + arg[1]) & u256("0xffffffffffffffffffffffffffffffffffffffff");
|
return (0xcccccc + arg[1]) & u256("0xffffffffffffffffffffffffffffffffffffffff");
|
||||||
case Instruction::CREATE2:
|
case Instruction::CREATE2:
|
||||||
accessMemory(arg[2], arg[3]);
|
accessMemory(arg[1], arg[2]);
|
||||||
logTrace(_instruction, arg);
|
logTrace(_instruction, arg);
|
||||||
return (0xdddddd + arg[1]) & u256("0xffffffffffffffffffffffffffffffffffffffff");
|
return (0xdddddd + arg[1]) & u256("0xffffffffffffffffffffffffffffffffffffffff");
|
||||||
case Instruction::CALL:
|
case Instruction::CALL:
|
||||||
|
Loading…
Reference in New Issue
Block a user