(*Arrayname_ReadindicesMap)[e0[0]].push_back(e0[1]);
//e0 is the array read : READ(A,i) and e1 is a bvconst
Arrayread_SymbolMap[e0] = e1;
- arrayToIndexToRead[e0[0]].insert(make_pair(e0[1],ArrayRead (e0[1], e0[1])));
+ arrayToIndexToRead[e0[0]].insert(make_pair(e0[1],ArrayRead (e1, e1)));
return;
}
vector<ASTNode> concreteValues;
concreteValues.reserve(mapper.size());
- int i =0;
for (map<ASTNode, ArrayTransformer::ArrayRead>::const_iterator it =mapper.begin() ; it != mapper.end();it++)
{
-
const ASTNode& the_index = it->first;
- listOfIndices.push_back(it->first);
+ listOfIndices.push_back(the_index);
ASTNode arrsym = it->second.symbol;
read_node_symbols.push_back(arrsym);
+ assert(read_node_symbols[0].GetValueWidth() == arrsym.GetValueWidth());
+ assert(listOfIndices[0].GetValueWidth() == the_index.GetValueWidth());
+
jKind.push_back(the_index.GetKind());
concreteIndexes.push_back(TermToConstTermUsingModel(the_index));
concreteValues.push_back(TermToConstTermUsingModel(arrsym));
- i++;
}
assert(listOfIndices.size() == mapper.size());