diff options
Diffstat (limited to 'c_compiler/src/statement.cpp')
-rw-r--r-- | c_compiler/src/statement.cpp | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/c_compiler/src/statement.cpp b/c_compiler/src/statement.cpp index fa85df0..f86329f 100644 --- a/c_compiler/src/statement.cpp +++ b/c_compiler/src/statement.cpp @@ -153,9 +153,12 @@ VariableStackBindings ExpressionStatement::printasm(VariableStackBindings bindin { if(next_statement != nullptr) next_statement->printasm(bindings); - + if(m_expr != nullptr) + { + bindings.resetRegister(); m_expr->printasm(bindings); + } return bindings; } @@ -188,8 +191,11 @@ VariableStackBindings JumpStatement::printasm(VariableStackBindings bindings) co next_statement->printasm(bindings); if(m_expr != nullptr) + { + bindings.resetRegister(); m_expr->printasm(bindings); - + } + return bindings; } |