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.cpp19
1 files changed, 3 insertions, 16 deletions
diff --git a/c_compiler/src/statement.cpp b/c_compiler/src/statement.cpp
index c266140..35bda61 100644
--- a/c_compiler/src/statement.cpp
+++ b/c_compiler/src/statement.cpp
@@ -234,27 +234,14 @@ VariableStackBindings CompoundStatement::printAsm(VariableStackBindings bindings
void CompoundStatement::countVariables(unsigned &var_count) const
{
- DeclarationPtr declaration = declaration_;
-
if(next_statement_ != nullptr)
next_statement_->countVariables(var_count);
+
+ if(declaration_ != nullptr)
+ declaration_->countDeclarations(var_count);
if(statement_ != nullptr)
statement_->countVariables(var_count);
-
- while(declaration != nullptr) {
- DeclarationPtr declaration_list = declaration->getNextListItem();
-
- while(declaration_list != nullptr) {
- var_count++;
-
- declaration_list = declaration_list->getNextListItem();
- }
-
- var_count++;
-
- declaration = declaration->getNext();
- }
}
void CompoundStatement::countArguments(unsigned &argument_count) const