Rename ErrorTag to invalidJumpLabel in inline assembly

This commit is contained in:
Alex Beregszaszi 2016-11-15 10:12:03 +00:00
parent 702ab4cb4f
commit ae8403ed08
5 changed files with 6 additions and 6 deletions

View File

@ -2,7 +2,7 @@
Features:
* Do-while loops: support for a C-style do{<block>}while(<expr>); control structure
* Inline assembly: support ``ErrorTag`` as a jump label.
* Inline assembly: support ``invalidJumpLabel`` as a jump label.
* Type checker: now more eagerly searches for a common type of an inline array with mixed types
* Code generator: generates a runtime error when an out-of-range value is converted into an enum type.

View File

@ -718,7 +718,7 @@ will have a wrong impression about the stack height at label ``two``:
.. note::
``ErrorTag`` is a pre-defined label. Jumping to this location will always
``invalidJumpLabel`` is a pre-defined label. Jumping to this location will always
result in an invalid jump, effectively aborting execution of the code.
Declaring Assembly-Local Variables

View File

@ -84,7 +84,7 @@ public:
LabelOrganizer(GeneratorState& _state): m_state(_state)
{
// Make the Solidity ErrorTag available to inline assembly
m_state.labels.insert(make_pair("ErrorTag", m_state.assembly.errorTag()));
m_state.labels.insert(make_pair("invalidJumpLabel", m_state.assembly.errorTag()));
}
template <class T>

View File

@ -179,7 +179,7 @@ BOOST_AUTO_TEST_CASE(imbalanced_stack)
BOOST_AUTO_TEST_CASE(error_tag)
{
BOOST_CHECK(successAssemble("{ ErrorTag }"));
BOOST_CHECK(successAssemble("{ invalidJumpLabel }"));
}
BOOST_AUTO_TEST_SUITE_END()

View File

@ -7692,13 +7692,13 @@ BOOST_AUTO_TEST_CASE(packed_storage_overflow)
BOOST_CHECK(callContractFunction("f()") == encodeArgs(u256(0x1234), u256(0), u256(0), u256(0xfffe)));
}
BOOST_AUTO_TEST_CASE(inline_assembly_errortag)
BOOST_AUTO_TEST_CASE(inline_assembly_invalidjumplabel)
{
char const* sourceCode = R"(
contract C {
function f() {
assembly {
jump(ErrorTag)
jump(invalidJumpLabel)
}
}
}