aboutsummaryrefslogtreecommitdiffstats
path: root/c_compiler/src/statement.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'c_compiler/src/statement.cpp')
-rw-r--r--c_compiler/src/statement.cpp10
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;
}