diff options
author | chriseth <chris@ethereum.org> | 2017-05-25 00:34:19 +0800 |
---|---|---|
committer | chriseth <chris@ethereum.org> | 2017-05-29 21:40:32 +0800 |
commit | 9adff68ecc9fe725670c3752429d18d15379644b (patch) | |
tree | 06b2de6eab97c521dcd036423a1deb4da6e95e28 | |
parent | 002df12d13fb423be641878a20b73bd10f90a6df (diff) | |
download | dexon-solidity-9adff68ecc9fe725670c3752429d18d15379644b.tar dexon-solidity-9adff68ecc9fe725670c3752429d18d15379644b.tar.gz dexon-solidity-9adff68ecc9fe725670c3752429d18d15379644b.tar.bz2 dexon-solidity-9adff68ecc9fe725670c3752429d18d15379644b.tar.lz dexon-solidity-9adff68ecc9fe725670c3752429d18d15379644b.tar.xz dexon-solidity-9adff68ecc9fe725670c3752429d18d15379644b.tar.zst dexon-solidity-9adff68ecc9fe725670c3752429d18d15379644b.zip |
Introduce LabelID typedef.
-rw-r--r-- | libjulia/backends/evm/AbstractAssembly.h | 8 | ||||
-rw-r--r-- | libsolidity/inlineasm/AsmCodeGen.cpp | 4 | ||||
-rw-r--r-- | libsolidity/inlineasm/AsmScope.h | 3 |
3 files changed, 9 insertions, 6 deletions
diff --git a/libjulia/backends/evm/AbstractAssembly.h b/libjulia/backends/evm/AbstractAssembly.h index e3afa2b6..de31be28 100644 --- a/libjulia/backends/evm/AbstractAssembly.h +++ b/libjulia/backends/evm/AbstractAssembly.h @@ -44,6 +44,8 @@ namespace julia class AbstractAssembly { public: + using LabelID = size_t; + virtual ~AbstractAssembly() {} /// Set a new source location valid starting from the next instruction. @@ -56,11 +58,11 @@ public: /// Append a constant. virtual void appendConstant(u256 const& _constant) = 0; /// Append a label. - virtual void appendLabel(size_t _labelId) = 0; + virtual void appendLabel(LabelID _labelId) = 0; /// Append a label reference. - virtual void appendLabelReference(size_t _labelId) = 0; + virtual void appendLabelReference(LabelID _labelId) = 0; /// Generate a new unique label. - virtual size_t newLabelId() = 0; + virtual LabelID newLabelId() = 0; /// Append a reference to a to-be-linked symobl. /// Currently, we assume that the value is always a 20 byte number. virtual void appendLinkerSymbol(std::string const& _name) = 0; diff --git a/libsolidity/inlineasm/AsmCodeGen.cpp b/libsolidity/inlineasm/AsmCodeGen.cpp index 6a44faac..af3547fd 100644 --- a/libsolidity/inlineasm/AsmCodeGen.cpp +++ b/libsolidity/inlineasm/AsmCodeGen.cpp @@ -70,12 +70,12 @@ public: m_assembly.append(_constant); } /// Append a label. - virtual void appendLabel(size_t _labelId) override + virtual void appendLabel(LabelID _labelId) override { m_assembly.append(eth::AssemblyItem(eth::Tag, _labelId)); } /// Append a label reference. - virtual void appendLabelReference(size_t _labelId) override + virtual void appendLabelReference(LabelID _labelId) override { m_assembly.append(eth::AssemblyItem(eth::PushTag, _labelId)); } diff --git a/libsolidity/inlineasm/AsmScope.h b/libsolidity/inlineasm/AsmScope.h index 70786dce..498218b4 100644 --- a/libsolidity/inlineasm/AsmScope.h +++ b/libsolidity/inlineasm/AsmScope.h @@ -63,6 +63,7 @@ struct GenericVisitor<>: public boost::static_visitor<> { struct Scope { using JuliaType = std::string; + using LabelID = size_t; struct Variable { @@ -76,7 +77,7 @@ struct Scope struct Label { - boost::optional<size_t> id; + boost::optional<LabelID> id; }; struct Function |