solidity/test/libsolidity/semanticTests/various/code_access_create.sol

30 lines
455 B
Solidity

contract D {
uint256 x;
constructor() {
x = 7;
}
function f() public view returns (uint256) {
return x;
}
}
contract C {
function test() public returns (uint256) {
bytes memory c = type(D).creationCode;
D d;
assembly {
d := create(0, add(c, 0x20), mload(c))
}
return d.f();
}
}
// ====
// compileViaYul: also
// ----
// test() -> 7
// gas legacy: 102392