From 868b5ad3aa9741609e9cd79d6033ee4b172dbe2f Mon Sep 17 00:00:00 2001 From: chriseth Date: Fri, 9 Jun 2017 13:59:16 +0200 Subject: Split block code generation into main and finalize. --- libjulia/backends/evm/EVMCodeTransform.h | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'libjulia/backends/evm/EVMCodeTransform.h') diff --git a/libjulia/backends/evm/EVMCodeTransform.h b/libjulia/backends/evm/EVMCodeTransform.h index 7824247a..57bd4ca5 100644 --- a/libjulia/backends/evm/EVMCodeTransform.h +++ b/libjulia/backends/evm/EVMCodeTransform.h @@ -61,9 +61,6 @@ public: { } - /// Processes the block and appends the resulting code to the assembly. - void run(solidity::assembly::Block const& _block); - protected: struct Context { @@ -113,6 +110,10 @@ private: /// Generates code for an expression that is supposed to return a single value. void visitExpression(solidity::assembly::Statement const& _expression); + /// Pops all variables declared in the block and checks that the stack height is equal + /// to @a _blackStartStackHeight. + void finalizeBlock(solidity::assembly::Block const& _block, int _blockStartStackHeight); + void generateAssignment(solidity::assembly::Identifier const& _variableName); /// Determines the stack height difference to the given variables. Throws -- cgit v1.2.3