16 for (
auto un = ul.
head; un; un = un->next) {
20 if (CE->getZExtValue() == index)
44 if (!N || isa<ReadExpr>(e))
47 for (
unsigned i = 0; i != N; ++i)
48 if (!isa<ConstantExpr>(e.
getKid(i)))
52 for (
unsigned i = 0; i != N; ++i) {
81 if (kids[0]!=e.
left || kids[1]!=e.
right) {
bool isConstantArray() const
const std::vector< ref< ConstantExpr > > constantValues
Expr::Width getDomain() const
static ref< ConstantExpr > alloc(const llvm::APInt &v)
Action protectedDivOperation(const BinaryExpr &e)
virtual ref< Expr > getInitialValue(const Array &os, unsigned index)=0
Action evalRead(const UpdateList &ul, unsigned index)
Action visitRead(const ReadExpr &re)
Action visitExpr(const Expr &e)
Action visitExprPost(const Expr &e)
Action visitSRem(const SRemExpr &e)
Action visitSDiv(const SDivExpr &e)
Action visitURem(const URemExpr &e)
Action visitUDiv(const UDivExpr &e)
static Action changeTo(const ref< Expr > &expr)
static Action doChildren()
static Action skipChildren()
ref< Expr > visit(const ref< Expr > &e)
Class representing symbolic expressions.
virtual Kind getKind() const =0
virtual unsigned getNumKids() const =0
virtual ref< Expr > rebuild(ref< Expr > kids[]) const =0
virtual ref< Expr > getKid(unsigned i) const =0
Class representing a one byte read from an array.
static ref< Expr > create(const UpdateList &updates, ref< Expr > i)
Class representing a complete list of updates into an array.
ref< UpdateNode > head
pointer to the most recent update node