diff options
author | Alex Beregszaszi <alex@rtfs.hu> | 2016-11-15 18:12:03 +0800 |
---|---|---|
committer | Alex Beregszaszi <alex@rtfs.hu> | 2016-11-15 18:30:33 +0800 |
commit | ae8403ed08cf3b2b5bec1d3f8da0c6c7425a4d5a (patch) | |
tree | a531dc8c33440f920c2dd1e2972969c4e96c49d4 | |
parent | 702ab4cb4f9344ce6d8fb1311db7c9fc94431386 (diff) | |
download | dexon-solidity-ae8403ed08cf3b2b5bec1d3f8da0c6c7425a4d5a.tar dexon-solidity-ae8403ed08cf3b2b5bec1d3f8da0c6c7425a4d5a.tar.gz dexon-solidity-ae8403ed08cf3b2b5bec1d3f8da0c6c7425a4d5a.tar.bz2 dexon-solidity-ae8403ed08cf3b2b5bec1d3f8da0c6c7425a4d5a.tar.lz dexon-solidity-ae8403ed08cf3b2b5bec1d3f8da0c6c7425a4d5a.tar.xz dexon-solidity-ae8403ed08cf3b2b5bec1d3f8da0c6c7425a4d5a.tar.zst dexon-solidity-ae8403ed08cf3b2b5bec1d3f8da0c6c7425a4d5a.zip |
Rename ErrorTag to invalidJumpLabel in inline assembly
-rw-r--r-- | Changelog.md | 2 | ||||
-rw-r--r-- | docs/control-structures.rst | 2 | ||||
-rw-r--r-- | libsolidity/inlineasm/AsmCodeGen.cpp | 2 | ||||
-rw-r--r-- | test/libsolidity/InlineAssembly.cpp | 2 | ||||
-rw-r--r-- | test/libsolidity/SolidityEndToEndTest.cpp | 4 |
5 files changed, 6 insertions, 6 deletions
diff --git a/Changelog.md b/Changelog.md index d5f8cea9..a392ec01 100644 --- a/Changelog.md +++ b/Changelog.md @@ -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. diff --git a/docs/control-structures.rst b/docs/control-structures.rst index 351e4c91..7e1c690d 100644 --- a/docs/control-structures.rst +++ b/docs/control-structures.rst @@ -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 diff --git a/libsolidity/inlineasm/AsmCodeGen.cpp b/libsolidity/inlineasm/AsmCodeGen.cpp index 1b789c5f..771f1042 100644 --- a/libsolidity/inlineasm/AsmCodeGen.cpp +++ b/libsolidity/inlineasm/AsmCodeGen.cpp @@ -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> diff --git a/test/libsolidity/InlineAssembly.cpp b/test/libsolidity/InlineAssembly.cpp index a26e9470..185a6215 100644 --- a/test/libsolidity/InlineAssembly.cpp +++ b/test/libsolidity/InlineAssembly.cpp @@ -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() diff --git a/test/libsolidity/SolidityEndToEndTest.cpp b/test/libsolidity/SolidityEndToEndTest.cpp index e50c2a85..d8924250 100644 --- a/test/libsolidity/SolidityEndToEndTest.cpp +++ b/test/libsolidity/SolidityEndToEndTest.cpp @@ -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) } } } |