aboutsummaryrefslogtreecommitdiffstats
path: root/test
diff options
context:
space:
mode:
authorchriseth <chris@ethereum.org>2016-11-30 21:26:01 +0800
committerGitHub <noreply@github.com>2016-11-30 21:26:01 +0800
commite43a8ebc28cec3748ee96af6c32020c12da32f74 (patch)
tree39f58108b77e01c74ae38690ada92696bc0629d4 /test
parentf70f8cf06aea5dcd44b6256b040e05d2a3f7045d (diff)
parent9a6a5f219b74097c1a11278aad07df1ffd60ff45 (diff)
downloaddexon-solidity-e43a8ebc28cec3748ee96af6c32020c12da32f74.tar.gz
dexon-solidity-e43a8ebc28cec3748ee96af6c32020c12da32f74.tar.zst
dexon-solidity-e43a8ebc28cec3748ee96af6c32020c12da32f74.zip
Merge pull request #1345 from ethereum/optimiser-rules
More optimiser rules
Diffstat (limited to 'test')
-rw-r--r--test/libsolidity/SolidityOptimizer.cpp23
1 files changed, 23 insertions, 0 deletions
diff --git a/test/libsolidity/SolidityOptimizer.cpp b/test/libsolidity/SolidityOptimizer.cpp
index a53a2638..89c89adc 100644
--- a/test/libsolidity/SolidityOptimizer.cpp
+++ b/test/libsolidity/SolidityOptimizer.cpp
@@ -1304,6 +1304,29 @@ BOOST_AUTO_TEST_CASE(invalid_state_at_control_flow_join)
compareVersions("test()");
}
+BOOST_AUTO_TEST_CASE(cse_sub_zero)
+{
+ checkCSE({
+ u256(0),
+ Instruction::DUP2,
+ Instruction::SUB
+ }, {
+ Instruction::DUP1
+ });
+
+ checkCSE({
+ Instruction::DUP1,
+ u256(0),
+ Instruction::SUB
+ }, {
+ u256(0),
+ Instruction::DUP2,
+ Instruction::SWAP1,
+ Instruction::SUB
+ });
+}
+
+
BOOST_AUTO_TEST_SUITE_END()
}