aboutsummaryrefslogtreecommitdiffstats
path: root/c_compiler/src/function.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'c_compiler/src/function.cpp')
-rw-r--r--c_compiler/src/function.cpp4
1 files changed, 2 insertions, 2 deletions
diff --git a/c_compiler/src/function.cpp b/c_compiler/src/function.cpp
index 179079e..4fb9d95 100644
--- a/c_compiler/src/function.cpp
+++ b/c_compiler/src/function.cpp
@@ -6,7 +6,7 @@
// Function definition
-Function::Function(const std::string& id, Statement* statement, Declaration* parameter_list)
+Function::Function(const std::string& id, Statement* statement, DeclarationPtr parameter_list)
: id_(id), statement_(statement), parameter_list_(parameter_list)
{}
@@ -102,7 +102,7 @@ void Function::printParameterAsm(VariableStackBindings& bindings, unsigned& stac
}
for(auto itr = parameter_vector.rbegin(); itr != parameter_vector.rend(); ++itr) {
- unsigned i = parameter_vector.rbegin() - itr;
+ unsigned i = itr-parameter_vector.rbegin();
bindings.insertBinding((*itr)->getId(), (*itr)->getType(), (i+stack_offset)*4);
if(i < 4)
std::cout << "\tsw\t$" << 4+i << "," << (i+stack_offset)*4 << "($fp)\n";