aboutsummaryrefslogtreecommitdiffstats
path: root/libsolidity/inlineasm/AsmCodeGen.cpp
diff options
context:
space:
mode:
authorchriseth <chris@ethereum.org>2017-05-23 18:18:18 +0800
committerGitHub <noreply@github.com>2017-05-23 18:18:18 +0800
commit14b22150a1e3ad66cdbed70bcfacb5487f66aef8 (patch)
treef71af087d97b991da73b7d9e80b471c9ed037968 /libsolidity/inlineasm/AsmCodeGen.cpp
parent74d2e7311aed67e3bb6fcf1f0fa138bc3d304095 (diff)
parentfb46268982f9c19f15e01f0ee50764c58bb351d4 (diff)
downloaddexon-solidity-14b22150a1e3ad66cdbed70bcfacb5487f66aef8.tar
dexon-solidity-14b22150a1e3ad66cdbed70bcfacb5487f66aef8.tar.gz
dexon-solidity-14b22150a1e3ad66cdbed70bcfacb5487f66aef8.tar.bz2
dexon-solidity-14b22150a1e3ad66cdbed70bcfacb5487f66aef8.tar.lz
dexon-solidity-14b22150a1e3ad66cdbed70bcfacb5487f66aef8.tar.xz
dexon-solidity-14b22150a1e3ad66cdbed70bcfacb5487f66aef8.tar.zst
dexon-solidity-14b22150a1e3ad66cdbed70bcfacb5487f66aef8.zip
Merge pull request #2244 from ethereum/inlineasm-let-multi
Support tuple assignment in inline assembly
Diffstat (limited to 'libsolidity/inlineasm/AsmCodeGen.cpp')
-rw-r--r--libsolidity/inlineasm/AsmCodeGen.cpp12
1 files changed, 8 insertions, 4 deletions
diff --git a/libsolidity/inlineasm/AsmCodeGen.cpp b/libsolidity/inlineasm/AsmCodeGen.cpp
index b8af9dc6..02d5ced0 100644
--- a/libsolidity/inlineasm/AsmCodeGen.cpp
+++ b/libsolidity/inlineasm/AsmCodeGen.cpp
@@ -251,11 +251,15 @@ public:
void operator()(assembly::VariableDeclaration const& _varDecl)
{
int height = m_assembly.stackHeight();
+ int expectedItems = _varDecl.variables.size();
boost::apply_visitor(*this, *_varDecl.value);
- expectDeposit(1, height);
- auto& var = boost::get<Scope::Variable>(m_scope.identifiers.at(_varDecl.variable.name));
- var.stackHeight = height;
- var.active = true;
+ expectDeposit(expectedItems, height);
+ for (auto const& variable: _varDecl.variables)
+ {
+ auto& var = boost::get<Scope::Variable>(m_scope.identifiers.at(variable.name));
+ var.stackHeight = height++;
+ var.active = true;
+ }
}
void operator()(assembly::Block const& _block)
{