diff options
Diffstat (limited to 'lib/Expr/ExprEvaluator.cpp')
-rw-r--r-- | lib/Expr/ExprEvaluator.cpp | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/lib/Expr/ExprEvaluator.cpp b/lib/Expr/ExprEvaluator.cpp index bf229731..41cb7c48 100644 --- a/lib/Expr/ExprEvaluator.cpp +++ b/lib/Expr/ExprEvaluator.cpp @@ -25,10 +25,14 @@ ExprVisitor::Action ExprEvaluator::evalRead(const UpdateList &ul, // version though (mostly for debugging). return Action::changeTo(ReadExpr::create(UpdateList(ul.root, un), - ConstantExpr::alloc(index, Expr::Int32))); + ConstantExpr::alloc(index, + ul.root->getDomain()))); } } + if (ul.root->isConstantArray() && index < ul.root->size) + return Action::changeTo(ul.root->constantValues[index]); + return Action::changeTo(getInitialValue(*ul.root, index)); } |