aboutsummaryrefslogtreecommitdiffstats
path: root/libjulia
diff options
context:
space:
mode:
authorAlex Beregszaszi <alex@rtfs.hu>2017-12-05 21:44:20 +0800
committerAlex Beregszaszi <alex@rtfs.hu>2017-12-05 22:52:11 +0800
commit745eefa36f9bc04c91cb28e81bd16f8d01a11c7c (patch)
treef6a3497b5355de175f6535c14c1996052654ce1e /libjulia
parenta08d853bbb0d5f052cc264a84340bde577f54c4e (diff)
downloaddexon-solidity-745eefa36f9bc04c91cb28e81bd16f8d01a11c7c.tar
dexon-solidity-745eefa36f9bc04c91cb28e81bd16f8d01a11c7c.tar.gz
dexon-solidity-745eefa36f9bc04c91cb28e81bd16f8d01a11c7c.tar.bz2
dexon-solidity-745eefa36f9bc04c91cb28e81bd16f8d01a11c7c.tar.lz
dexon-solidity-745eefa36f9bc04c91cb28e81bd16f8d01a11c7c.tar.xz
dexon-solidity-745eefa36f9bc04c91cb28e81bd16f8d01a11c7c.tar.zst
dexon-solidity-745eefa36f9bc04c91cb28e81bd16f8d01a11c7c.zip
Split Instruction and FunctionalInstruction in Julia
Diffstat (limited to 'libjulia')
-rw-r--r--libjulia/backends/evm/EVMCodeTransform.cpp9
-rw-r--r--libjulia/optimiser/ASTCopier.cpp5
2 files changed, 8 insertions, 6 deletions
diff --git a/libjulia/backends/evm/EVMCodeTransform.cpp b/libjulia/backends/evm/EVMCodeTransform.cpp
index 733e39e9..f92939be 100644
--- a/libjulia/backends/evm/EVMCodeTransform.cpp
+++ b/libjulia/backends/evm/EVMCodeTransform.cpp
@@ -125,11 +125,11 @@ void CodeTransform::operator()(FunctionCall const& _call)
void CodeTransform::operator()(FunctionalInstruction const& _instruction)
{
if (m_evm15 && (
- _instruction.instruction.instruction == solidity::Instruction::JUMP ||
- _instruction.instruction.instruction == solidity::Instruction::JUMPI
+ _instruction.instruction == solidity::Instruction::JUMP ||
+ _instruction.instruction == solidity::Instruction::JUMPI
))
{
- bool const isJumpI = _instruction.instruction.instruction == solidity::Instruction::JUMPI;
+ bool const isJumpI = _instruction.instruction == solidity::Instruction::JUMPI;
if (isJumpI)
{
solAssert(_instruction.arguments.size() == 2, "");
@@ -150,7 +150,8 @@ void CodeTransform::operator()(FunctionalInstruction const& _instruction)
{
for (auto const& arg: _instruction.arguments | boost::adaptors::reversed)
visitExpression(arg);
- (*this)(_instruction.instruction);
+ m_assembly.setSourceLocation(_instruction.location);
+ m_assembly.appendInstruction(_instruction.instruction);
}
checkStackHeight(&_instruction);
}
diff --git a/libjulia/optimiser/ASTCopier.cpp b/libjulia/optimiser/ASTCopier.cpp
index d777d731..a461f434 100644
--- a/libjulia/optimiser/ASTCopier.cpp
+++ b/libjulia/optimiser/ASTCopier.cpp
@@ -31,9 +31,10 @@ using namespace dev;
using namespace dev::julia;
-Statement ASTCopier::operator()(Instruction const& _instruction)
+Statement ASTCopier::operator()(Instruction const&)
{
- return _instruction;
+ solAssert(false, "Invalid operation.");
+ return {};
}
Statement ASTCopier::operator()(VariableDeclaration const& _varDecl)