Bugfix in handling of multi-dimensional memories
authorClifford Wolf <clifford@clifford.at>
Wed, 23 Sep 2015 05:56:17 +0000 (07:56 +0200)
committerClifford Wolf <clifford@clifford.at>
Wed, 23 Sep 2015 05:56:17 +0000 (07:56 +0200)
frontends/ast/simplify.cc

index 2abb48a584a37aa8c247a092324f8e6bad8b44b7..d9a466e041474f0e0851510cfe73b86f0a9d769c 100644 (file)
@@ -760,10 +760,10 @@ bool AstNode::simplify(bool const_fold, bool at_zero, bool in_lvalue, int stage,
                        if (i == 0)
                                index_expr = new_index_expr;
                        else
-                               index_expr = new AstNode(AST_ADD, new AstNode(AST_MUL, index_expr, AstNode::mkconst_int(id2ast->multirange_dimensions[2*i-1], true)), new_index_expr);
+                               index_expr = new AstNode(AST_ADD, new AstNode(AST_MUL, index_expr, AstNode::mkconst_int(id2ast->multirange_dimensions[2*i+1], true)), new_index_expr);
                }
 
-               for (int i = GetSize(id2ast->multirange_dimensions)/1; i < GetSize(children[0]->children); i++)
+               for (int i = GetSize(id2ast->multirange_dimensions)/2; i < GetSize(children[0]->children); i++)
                        children.push_back(children[0]->children[i]->clone());
 
                delete children[0];