2020-03-09 21:14:07 +00:00
|
|
|
contract C {
|
|
|
|
// these should take the same slot
|
|
|
|
function() internal returns (uint) a;
|
|
|
|
function() external returns (uint) b;
|
|
|
|
function() external returns (uint) c;
|
|
|
|
function() internal returns (uint) d;
|
|
|
|
uint8 public x;
|
|
|
|
|
|
|
|
function set() public {
|
|
|
|
x = 2;
|
|
|
|
d = g;
|
|
|
|
c = this.h;
|
|
|
|
b = this.h;
|
|
|
|
a = g;
|
|
|
|
}
|
|
|
|
|
|
|
|
function t1() public returns (uint256) {
|
|
|
|
return a();
|
|
|
|
}
|
|
|
|
|
|
|
|
function t2() public returns (uint256) {
|
|
|
|
return b();
|
|
|
|
}
|
|
|
|
|
|
|
|
function t3() public returns (uint256) {
|
|
|
|
return a();
|
|
|
|
}
|
|
|
|
|
|
|
|
function t4() public returns (uint256) {
|
|
|
|
return b();
|
|
|
|
}
|
|
|
|
|
|
|
|
function g() public returns (uint256) {
|
|
|
|
return 7;
|
|
|
|
}
|
|
|
|
|
|
|
|
function h() public returns (uint256) {
|
|
|
|
return 8;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2020-11-03 10:15:49 +00:00
|
|
|
// ====
|
|
|
|
// compileViaYul: also
|
2020-03-09 21:14:07 +00:00
|
|
|
// ----
|
|
|
|
// set() ->
|
|
|
|
// t1() -> 7
|
|
|
|
// t2() -> 8
|
|
|
|
// t3() -> 7
|
|
|
|
// t4() -> 8
|
|
|
|
// x() -> 2
|