mirror of
https://github.com/ethereum/solidity
synced 2023-10-03 13:03:40 +00:00
Merge pull request #3070 from ethereum/lll-assembly
lll: disallow useless PUSHn in assembly
This commit is contained in:
@@ -121,6 +121,23 @@ BOOST_AUTO_TEST_CASE(switch_inconsistent_return_count)
|
||||
BOOST_CHECK(!successCompile(sourceCode));
|
||||
}
|
||||
|
||||
BOOST_AUTO_TEST_CASE(disallowed_asm_instructions)
|
||||
{
|
||||
for (unsigned i = 1; i <= 32; i++)
|
||||
BOOST_CHECK(!successCompile("(asm PUSH" + boost::lexical_cast<string>(i) + ")"));
|
||||
}
|
||||
|
||||
BOOST_AUTO_TEST_CASE(disallowed_functional_asm_instructions)
|
||||
{
|
||||
for (unsigned i = 1; i <= 32; i++)
|
||||
BOOST_CHECK(!successCompile("(PUSH" + boost::lexical_cast<string>(i) + ")"));
|
||||
for (unsigned i = 1; i <= 16; i++)
|
||||
BOOST_CHECK(!successCompile("(DUP" + boost::lexical_cast<string>(i) + ")"));
|
||||
for (unsigned i = 1; i <= 16; i++)
|
||||
BOOST_CHECK(!successCompile("(SWAP" + boost::lexical_cast<string>(i) + ")"));
|
||||
BOOST_CHECK(!successCompile("(JUMPDEST)"));
|
||||
}
|
||||
|
||||
BOOST_AUTO_TEST_SUITE_END()
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user