mirror of
https://github.com/ethereum/solidity
synced 2023-10-03 13:03:40 +00:00
38 lines
729 B
Solidity
38 lines
729 B
Solidity
|
contract C {
|
||
|
bytes data;
|
||
|
|
||
|
function f() public returns (uint ret) {
|
||
|
data.push("a");
|
||
|
data.push("b");
|
||
|
delete data;
|
||
|
assembly {
|
||
|
ret := sload(data.slot)
|
||
|
}
|
||
|
}
|
||
|
|
||
|
function g() public returns (uint ret) {
|
||
|
assembly {
|
||
|
sstore(data.slot, 67)
|
||
|
}
|
||
|
data.push("a");
|
||
|
data.push("b");
|
||
|
assert(data.length == 35);
|
||
|
delete data;
|
||
|
assert(data.length == 0);
|
||
|
|
||
|
uint size = 999;
|
||
|
assembly {
|
||
|
size := sload(data.slot)
|
||
|
mstore(0, data.slot)
|
||
|
ret := sload(keccak256(0, 32))
|
||
|
}
|
||
|
assert(size == 0);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
// ====
|
||
|
// compileViaYul: also
|
||
|
// ----
|
||
|
// f() -> 0
|
||
|
// g() -> 0
|