Support multiple assignment in inline assembly

This commit is contained in:
Alex Beregszaszi
2017-09-20 11:16:23 +02:00
committed by chriseth
parent c0b3e5b078
commit 3b813ed295
10 changed files with 145 additions and 25 deletions
+5 -1
View File
@@ -116,7 +116,11 @@ string AsmPrinter::operator()(assembly::StackAssignment const& _assignment)
string AsmPrinter::operator()(assembly::Assignment const& _assignment)
{
return (*this)(_assignment.variableName) + " := " + boost::apply_visitor(*this, *_assignment.value);
solAssert(_assignment.variableNames.size() >= 1, "");
string variables = (*this)(_assignment.variableNames.front());
for (size_t i = 1; i < _assignment.variableNames.size(); ++i)
variables += ", " + (*this)(_assignment.variableNames[i]);
return variables + " := " + boost::apply_visitor(*this, *_assignment.value);
}
string AsmPrinter::operator()(assembly::VariableDeclaration const& _variableDeclaration)