From 915c49f93d9a4120dc89872f609824603b9310bb Mon Sep 17 00:00:00 2001 From: Yann Herklotz Date: Tue, 28 Mar 2017 12:39:37 +0100 Subject: Multidimensional array working --- c_compiler/src/declaration.cpp | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'c_compiler/src/declaration.cpp') diff --git a/c_compiler/src/declaration.cpp b/c_compiler/src/declaration.cpp index 149bdab..0865619 100644 --- a/c_compiler/src/declaration.cpp +++ b/c_compiler/src/declaration.cpp @@ -3,6 +3,7 @@ #include "type.hpp" #include "expression.hpp" +#include #include #include #include @@ -214,8 +215,10 @@ Bindings ArrayDeclaration::localAsm(Bindings bindings, int &label_count) const std::shared_ptr initializer; initializer = std::static_pointer_cast(initializer_); initializer->printInitializerAsm(bindings, label_count, array_sizes.size()-1, array_sizes, type_->type()); - - bindings.insertBinding(getId(), type_, stack_position); + + // reverse vector to store in binding + std::reverse(array_sizes.begin(), array_sizes.end()); + bindings.insertBinding(getId(), type_, stack_position, array_sizes); } return bindings; -- cgit