mirror of
https://github.com/ethereum/solidity
synced 2023-10-03 13:03:40 +00:00
4a66723ff9
Co-authored-by: chriseth <chris@ethereum.org>
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
|