diff options
Diffstat (limited to 'c_compiler/src/function.cpp')
-rw-r--r-- | c_compiler/src/function.cpp | 4 |
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"; |