Merge pull request #9373 from ethereum/develop

Merge develop into breaking.
This commit is contained in:
chriseth
2020-07-09 16:15:43 +02:00
committed by GitHub
52 changed files with 674 additions and 100 deletions
@@ -16,6 +16,7 @@ contract C {
return (x[199], y[203][1], z[170].a[1], z[170].b[99]);
}
}
// ====
// compileViaYul: also
// ----
// f() -> "A", 8, 4, "B"
@@ -0,0 +1,17 @@
contract C {
function len() public returns (uint ret) {
uint[] memory data = new uint[](2);
data[0] = 234;
data[1] = 123;
delete data;
assembly {
ret := mload(data)
}
}
}
// ====
// compileViaYul: also
// ----
// len() -> 0
@@ -0,0 +1,40 @@
contract C {
uint[] data;
function len() public returns (uint ret) {
data.push(234);
data.push(123);
delete data;
assembly {
ret := sload(data_slot)
}
}
function val() public returns (uint ret) {
assembly {
sstore(0, 2)
mstore(0, 0)
sstore(keccak256(0, 32), 234)
sstore(add(keccak256(0, 32), 1), 123)
}
assert(data[0] == 234);
assert(data[1] == 123);
delete data;
uint size = 999;
assembly {
size := sload(0)
mstore(0, 0)
ret := sload(keccak256(0, 32))
}
}
}
// ====
// compileViaYul: also
// ----
// len() -> 0
// val() -> 0