mirror of
https://github.com/ethereum/solidity
synced 2023-10-03 13:03:40 +00:00
Assembly printing fixes.
This commit is contained in:
parent
58849cb1d5
commit
24197a2b3f
@ -52,9 +52,7 @@ string AsmPrinter::operator()(assembly::Literal const& _literal)
|
||||
if (c == '\\')
|
||||
out += "\\\\";
|
||||
else if (c == '"')
|
||||
out += "\\";
|
||||
else if (c == '\'')
|
||||
out += "\\'";
|
||||
out += "\\\"";
|
||||
else if (c == '\b')
|
||||
out += "\\b";
|
||||
else if (c == '\f')
|
||||
@ -70,7 +68,7 @@ string AsmPrinter::operator()(assembly::Literal const& _literal)
|
||||
else if (!isprint(c, locale::classic()))
|
||||
{
|
||||
ostringstream o;
|
||||
o << std::hex << setfill('0') << setw(2) << unsigned(c);
|
||||
o << std::hex << setfill('0') << setw(2) << (unsigned)(unsigned char)(c);
|
||||
out += "\\x" + o.str();
|
||||
}
|
||||
else
|
||||
@ -86,7 +84,7 @@ string AsmPrinter::operator()(assembly::Identifier const& _identifier)
|
||||
string AsmPrinter::operator()(assembly::FunctionalInstruction const& _functionalInstruction)
|
||||
{
|
||||
return
|
||||
(*this)(_functionalInstruction.instruction); +
|
||||
(*this)(_functionalInstruction.instruction) +
|
||||
"(" +
|
||||
boost::algorithm::join(
|
||||
_functionalInstruction.arguments | boost::adaptors::transformed(boost::apply_visitor(*this)),
|
||||
@ -116,6 +114,8 @@ string AsmPrinter::operator()(assembly::VariableDeclaration const& _variableDecl
|
||||
|
||||
string AsmPrinter::operator()(Block const& _block)
|
||||
{
|
||||
if (_block.statements.empty())
|
||||
return "{\n}";
|
||||
string body = boost::algorithm::join(
|
||||
_block.statements | boost::adaptors::transformed(boost::apply_visitor(*this)),
|
||||
"\n"
|
||||
|
Loading…
Reference in New Issue
Block a user