klee
|
#include <ExprEvaluator.h>
Public Member Functions | |
ExprEvaluator () | |
virtual ref< Expr > | getInitialValue (const Array &os, unsigned index)=0 |
![]() | |
ref< Expr > | visit (const ref< Expr > &e) |
Protected Member Functions | |
Action | evalRead (const UpdateList &ul, unsigned index) |
Action | visitRead (const ReadExpr &re) |
Action | visitExpr (const Expr &e) |
Action | protectedDivOperation (const BinaryExpr &e) |
Action | visitUDiv (const UDivExpr &e) |
Action | visitSDiv (const SDivExpr &e) |
Action | visitURem (const URemExpr &e) |
Action | visitSRem (const SRemExpr &e) |
Action | visitExprPost (const Expr &e) |
![]() | |
ExprVisitor (bool _recursive=false) | |
virtual | ~ExprVisitor () |
virtual Action | visitExpr (const Expr &) |
virtual Action | visitExprPost (const Expr &) |
virtual Action | visitNotOptimized (const NotOptimizedExpr &) |
virtual Action | visitRead (const ReadExpr &) |
virtual Action | visitSelect (const SelectExpr &) |
virtual Action | visitConcat (const ConcatExpr &) |
virtual Action | visitExtract (const ExtractExpr &) |
virtual Action | visitZExt (const ZExtExpr &) |
virtual Action | visitSExt (const SExtExpr &) |
virtual Action | visitAdd (const AddExpr &) |
virtual Action | visitSub (const SubExpr &) |
virtual Action | visitMul (const MulExpr &) |
virtual Action | visitUDiv (const UDivExpr &) |
virtual Action | visitSDiv (const SDivExpr &) |
virtual Action | visitURem (const URemExpr &) |
virtual Action | visitSRem (const SRemExpr &) |
virtual Action | visitNot (const NotExpr &) |
virtual Action | visitAnd (const AndExpr &) |
virtual Action | visitOr (const OrExpr &) |
virtual Action | visitXor (const XorExpr &) |
virtual Action | visitShl (const ShlExpr &) |
virtual Action | visitLShr (const LShrExpr &) |
virtual Action | visitAShr (const AShrExpr &) |
virtual Action | visitEq (const EqExpr &) |
virtual Action | visitNe (const NeExpr &) |
virtual Action | visitUlt (const UltExpr &) |
virtual Action | visitUle (const UleExpr &) |
virtual Action | visitUgt (const UgtExpr &) |
virtual Action | visitUge (const UgeExpr &) |
virtual Action | visitSlt (const SltExpr &) |
virtual Action | visitSle (const SleExpr &) |
virtual Action | visitSgt (const SgtExpr &) |
virtual Action | visitSge (const SgeExpr &) |
Definition at line 17 of file ExprEvaluator.h.
|
inline |
Definition at line 31 of file ExprEvaluator.h.
|
protected |
Definition at line 14 of file ExprEvaluator.cpp.
References klee::ConstantExpr::alloc(), klee::ExprVisitor::Action::changeTo(), klee::Array::constantValues, klee::ReadExpr::create(), klee::Array::getDomain(), getInitialValue(), klee::UpdateList::head, klee::Array::isConstantArray(), klee::UpdateList::root, and klee::ExprVisitor::visit().
Referenced by visitRead().
|
pure virtual |
getInitialValue - Return the initial value for a symbolic byte.
This will only be called for constant arrays if the index is out-of-bounds. If the value is unknown then the user should return a ReadExpr at the initial version of this array.
Implemented in CexPossibleEvaluator, CexExactEvaluator, and klee::AssignmentEvaluator.
Referenced by evalRead().
|
protected |
Definition at line 73 of file ExprEvaluator.cpp.
References klee::ExprVisitor::Action::changeTo(), klee::BinaryExpr::left, klee::Expr::rebuild(), klee::BinaryExpr::right, klee::ExprVisitor::Action::skipChildren(), and klee::ExprVisitor::visit().
Referenced by visitSDiv(), visitSRem(), visitUDiv(), and visitURem().
|
protectedvirtual |
Reimplemented from klee::ExprVisitor.
Definition at line 39 of file ExprEvaluator.cpp.
References klee::ExprVisitor::Action::changeTo(), klee::ExprVisitor::Action::doChildren(), klee::Expr::getKid(), klee::Expr::getNumKids(), and klee::Expr::rebuild().
|
protectedvirtual |
Reimplemented from klee::ExprVisitor.
Definition at line 101 of file ExprEvaluator.cpp.
References klee::ExprVisitor::Action::changeTo(), klee::Expr::getKind(), klee::Expr::NotOptimized, and klee::ExprVisitor::Action::skipChildren().
|
protectedvirtual |
Reimplemented from klee::ExprVisitor.
Definition at line 60 of file ExprEvaluator.cpp.
References klee::ExprVisitor::Action::doChildren(), evalRead(), klee::ReadExpr::index, klee::ReadExpr::updates, and klee::ExprVisitor::visit().
|
protectedvirtual |
Reimplemented from klee::ExprVisitor.
Definition at line 91 of file ExprEvaluator.cpp.
References protectedDivOperation().
|
protectedvirtual |
Reimplemented from klee::ExprVisitor.
Definition at line 97 of file ExprEvaluator.cpp.
References protectedDivOperation().
|
protectedvirtual |
Reimplemented from klee::ExprVisitor.
Definition at line 88 of file ExprEvaluator.cpp.
References protectedDivOperation().
|
protectedvirtual |
Reimplemented from klee::ExprVisitor.
Definition at line 94 of file ExprEvaluator.cpp.
References protectedDivOperation().