klee
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
klee::ExprEvaluator Class Referenceabstract

#include <ExprEvaluator.h>

Inheritance diagram for klee::ExprEvaluator:
Collaboration diagram for klee::ExprEvaluator:

Public Member Functions

 ExprEvaluator ()
 
virtual ref< ExprgetInitialValue (const Array &os, unsigned index)=0
 
- Public Member Functions inherited from klee::ExprVisitor
ref< Exprvisit (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)
 
- Protected Member Functions inherited from klee::ExprVisitor
 ExprVisitor (bool _recursive=false)
 
virtual ~ExprVisitor ()
 
virtual Action visitExprPost (const Expr &)
 
virtual Action visitNotOptimized (const NotOptimizedExpr &)
 
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 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 &)
 

Detailed Description

Definition at line 17 of file ExprEvaluator.h.

Constructor & Destructor Documentation

klee::ExprEvaluator::ExprEvaluator ( )
inline

Definition at line 30 of file ExprEvaluator.h.

Member Function Documentation

ExprVisitor::Action ExprEvaluator::evalRead ( const UpdateList ul,
unsigned  index 
)
protected
virtual ref<Expr> klee::ExprEvaluator::getInitialValue ( const Array os,
unsigned  index 
)
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 CexExactEvaluator, CexPossibleEvaluator, and klee::AssignmentEvaluator.

Referenced by evalRead().

Here is the caller graph for this function:

ExprVisitor::Action ExprEvaluator::protectedDivOperation ( const BinaryExpr e)
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().

Here is the call graph for this function:

Here is the caller graph for this function:

ExprVisitor::Action ExprEvaluator::visitExpr ( const Expr e)
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().

Here is the call graph for this function:

ExprVisitor::Action ExprEvaluator::visitRead ( const ReadExpr re)
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().

Here is the call graph for this function:

ExprVisitor::Action ExprEvaluator::visitSDiv ( const SDivExpr &  e)
protectedvirtual

Reimplemented from klee::ExprVisitor.

Definition at line 91 of file ExprEvaluator.cpp.

References protectedDivOperation().

Here is the call graph for this function:

ExprVisitor::Action ExprEvaluator::visitSRem ( const SRemExpr &  e)
protectedvirtual

Reimplemented from klee::ExprVisitor.

Definition at line 97 of file ExprEvaluator.cpp.

References protectedDivOperation().

Here is the call graph for this function:

ExprVisitor::Action ExprEvaluator::visitUDiv ( const UDivExpr &  e)
protectedvirtual

Reimplemented from klee::ExprVisitor.

Definition at line 88 of file ExprEvaluator.cpp.

References protectedDivOperation().

Here is the call graph for this function:

ExprVisitor::Action ExprEvaluator::visitURem ( const URemExpr &  e)
protectedvirtual

Reimplemented from klee::ExprVisitor.

Definition at line 94 of file ExprEvaluator.cpp.

References protectedDivOperation().

Here is the call graph for this function:


The documentation for this class was generated from the following files: