From 3ceba145d54f725c90436c7322a67320d4308ce8 Mon Sep 17 00:00:00 2001 From: Clifford Wolf Date: Thu, 8 Sep 2016 18:08:15 +0200 Subject: [PATCH] smt2 mem init bugfix --- backends/smt2/smt2.cc | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/backends/smt2/smt2.cc b/backends/smt2/smt2.cc index 000240a73..8d82d1baa 100644 --- a/backends/smt2/smt2.cc +++ b/backends/smt2/smt2.cc @@ -742,7 +742,7 @@ struct Smt2Worker for (int i = 0; i < memsize; i++) { - if (GetSize(init_data) < i*width) + if (i*width >= GetSize(init_data)) break; Const initword = init_data.extract(i*width, width, State::Sx); @@ -752,9 +752,11 @@ struct Smt2Worker if (bit == State::S0 || bit == State::S1) gen_init_constr = true; - init_list.push_back(stringf("(= (select (|%s#%d#0| state) #b%s) #b%s) ; %s[%d]", - get_id(module), arrayid, Const(i, abits).as_string().c_str(), - initword.as_string().c_str(), get_id(cell), i)); + if (gen_init_constr) { + init_list.push_back(stringf("(= (select (|%s#%d#0| state) #b%s) #b%s) ; %s[%d]", + get_id(module), arrayid, Const(i, abits).as_string().c_str(), + initword.as_string().c_str(), get_id(cell), i)); + } } } } -- 2.30.2