aboutsummaryrefslogtreecommitdiffstats
path: root/test/libsolidity/SolidityOptimizer.cpp
diff options
context:
space:
mode:
authorchriseth <chris@ethereum.org>2018-06-28 00:29:01 +0800
committerGitHub <noreply@github.com>2018-06-28 00:29:01 +0800
commit4a842ecc823c2d4152cdf2639eb83f2318499f1c (patch)
tree7733ac8095862aa2a9b43b93706ba56df7460a16 /test/libsolidity/SolidityOptimizer.cpp
parentce4b233f8f58f04d564aedc3061e7ecb1bf9737a (diff)
parent92cb4acd8a748ef2cf6a00a5a9f41975c23127c2 (diff)
downloaddexon-solidity-4a842ecc823c2d4152cdf2639eb83f2318499f1c.tar
dexon-solidity-4a842ecc823c2d4152cdf2639eb83f2318499f1c.tar.gz
dexon-solidity-4a842ecc823c2d4152cdf2639eb83f2318499f1c.tar.bz2
dexon-solidity-4a842ecc823c2d4152cdf2639eb83f2318499f1c.tar.lz
dexon-solidity-4a842ecc823c2d4152cdf2639eb83f2318499f1c.tar.xz
dexon-solidity-4a842ecc823c2d4152cdf2639eb83f2318499f1c.tar.zst
dexon-solidity-4a842ecc823c2d4152cdf2639eb83f2318499f1c.zip
Merge pull request #4097 from ethereum/noPackedExceptForPacked
[BREAKING] call only takes a single argument and does not pad
Diffstat (limited to 'test/libsolidity/SolidityOptimizer.cpp')
-rw-r--r--test/libsolidity/SolidityOptimizer.cpp20
1 files changed, 10 insertions, 10 deletions
diff --git a/test/libsolidity/SolidityOptimizer.cpp b/test/libsolidity/SolidityOptimizer.cpp
index 3a8585f7..4ea307c0 100644
--- a/test/libsolidity/SolidityOptimizer.cpp
+++ b/test/libsolidity/SolidityOptimizer.cpp
@@ -265,18 +265,18 @@ BOOST_AUTO_TEST_CASE(storage_write_in_loops)
// Information in joining branches is not retained anymore.
BOOST_AUTO_TEST_CASE(retain_information_in_branches)
{
- // This tests that the optimizer knows that we already have "z == keccak256(y)" inside both branches.
+ // This tests that the optimizer knows that we already have "z == keccak256(abi.encodePacked(y))" inside both branches.
char const* sourceCode = R"(
contract c {
bytes32 d;
uint a;
function f(uint x, bytes32 y) returns (uint r_a, bytes32 r_d) {
- bytes32 z = keccak256(y);
+ bytes32 z = keccak256(abi.encodePacked(y));
if (x > 8) {
- z = keccak256(y);
+ z = keccak256(abi.encodePacked(y));
a = x;
} else {
- z = keccak256(y);
+ z = keccak256(abi.encodePacked(y));
a = x;
}
r_a = a;
@@ -313,19 +313,19 @@ BOOST_AUTO_TEST_CASE(store_tags_as_unions)
contract test {
bytes32 data;
function f(uint x, bytes32 y) external returns (uint r_a, bytes32 r_d) {
- r_d = keccak256(y);
+ r_d = keccak256(abi.encodePacked(y));
shared(y);
- r_d = keccak256(y);
+ r_d = keccak256(abi.encodePacked(y));
r_a = 5;
}
function g(uint x, bytes32 y) external returns (uint r_a, bytes32 r_d) {
- r_d = keccak256(y);
+ r_d = keccak256(abi.encodePacked(y));
shared(y);
- r_d = bytes32(uint(keccak256(y)) + 2);
+ r_d = bytes32(uint(keccak256(abi.encodePacked(y))) + 2);
r_a = 7;
}
function shared(bytes32 y) internal {
- data = keccak256(y);
+ data = keccak256(abi.encodePacked(y));
}
}
)";
@@ -370,7 +370,7 @@ BOOST_AUTO_TEST_CASE(sequence_number_for_calls)
// to storage), so the sequence number should be incremented.
char const* sourceCode = R"(
contract test {
- function f(string a, string b) returns (bool) { return sha256(a) == sha256(b); }
+ function f(string a, string b) returns (bool) { return sha256(bytes(a)) == sha256(bytes(b)); }
}
)";
compileBothVersions(sourceCode);