solidity/test/libsolidity/semanticTests/array/reusing_memory.sol

30 lines
709 B
Solidity
Raw Normal View History

// Invoke some features that use memory and test that they do not interfere with each other.
contract Helper {
uint256 public flag;
2020-06-23 12:14:24 +00:00
constructor(uint256 x) {
flag = x;
}
}
contract Main {
mapping(uint256 => uint256) map;
function f(uint256 x) public returns (uint256) {
map[x] = x;
return
(new Helper(uint256(keccak256(abi.encodePacked(this.g(map[x]))))))
.flag();
}
function g(uint256 a) public returns (uint256) {
return map[a];
}
}
// ----
// f(uint256): 0x34 -> 0x46bddb1178e94d7f2892ff5f366840eb658911794f2c3a44c450aa2c505186c1
2022-05-23 10:54:18 +00:00
// gas irOptimized: 112899
// gas legacy: 126596
2021-11-04 17:20:10 +00:00
// gas legacyOptimized: 113823