You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The translation of Act to Expr is not faithful to the Solidity storage layout for values shorted than a word. The current translation naively puts every storage value in 256bit word slots. As a result, equivalence for the following fails:
constructor of A
interface constructor()
iff
CALLVALUE == 0
creates
uint128 x := 11
uint128 y := 42
contract A {
uint128 x;
uint128 y;
constructor() {
x = 11;
y = 42;
}
}
Correct encoding of the layout will also fix #175.
The text was updated successfully, but these errors were encountered:
Note that this will make the order of declaring storage variables in Act relevant. An alternative would be for the user to provide the storage layout in the specification or read the layout from the compiler generated json, so that we don't make compiler-specific assumptions.
The translation of Act to Expr is not faithful to the Solidity storage layout for values shorted than a word. The current translation naively puts every storage value in 256bit word slots. As a result, equivalence for the following fails:
Correct encoding of the layout will also fix #175.
The text was updated successfully, but these errors were encountered: