klee::ExtractExpr Class Reference

#include <Expr.h>

Inheritance diagram for klee::ExtractExpr:

Inheritance graph
[legend]
Collaboration diagram for klee::ExtractExpr:

Collaboration graph
[legend]

List of all members.

Public Member Functions

Width getWidth () const
Kind getKind () const
unsigned getNumKids () const
ref< ExprgetKid (unsigned i) const
int compareContents (const Expr &b) const
virtual ref< Exprrebuild (ref< Expr > kids[]) const
virtual unsigned computeHash ()

Static Public Member Functions

static ref< Expralloc (const ref< Expr > &e, unsigned o, Width w)
static ref< Exprcreate (ref< Expr > e, unsigned bitOff, Width w)
 Creates an ExtractExpr with the given bit offset and width.
static ref< ExprcreateByteOff (ref< Expr > e, unsigned byteOff, Width w=Expr::Int8)
 Creates an ExtractExpr with the given byte offset and width.
static bool classof (const Expr *E)
static bool classof (const ExtractExpr *)

Public Attributes

ref< Exprexpr
unsigned offset
Width width

Static Public Attributes

static const Kind kind = Extract
static const unsigned numKids = 1

Private Member Functions

 ExtractExpr (const ref< Expr > &e, unsigned b, Width w)


Detailed Description

This class represents an extract from expression { expr}, at bit offset { offset} of width { width}. Bit 0 is the right most bit of the expression.

Definition at line 696 of file Expr.h.


Constructor & Destructor Documentation

klee::ExtractExpr::ExtractExpr ( const ref< Expr > &  e,
unsigned  b,
Width  w 
) [inline, private]

Definition at line 739 of file Expr.h.

Referenced by alloc().

Here is the caller graph for this function:


Member Function Documentation

static ref<Expr> klee::ExtractExpr::alloc ( const ref< Expr > &  e,
unsigned  o,
Width  w 
) [inline, static]

Definition at line 707 of file Expr.h.

References ExtractExpr().

Referenced by create().

Here is the call graph for this function:

Here is the caller graph for this function:

static bool klee::ExtractExpr::classof ( const ExtractExpr  )  [inline, static]

Definition at line 746 of file Expr.h.

static bool klee::ExtractExpr::classof ( const Expr E  )  [inline, static]

Reimplemented from klee::Expr.

Definition at line 743 of file Expr.h.

References klee::Expr::Extract, and klee::Expr::getKind().

Here is the call graph for this function:

int klee::ExtractExpr::compareContents ( const Expr b  )  const [inline, virtual]

Reimplemented from klee::Expr.

Definition at line 725 of file Expr.h.

References offset, and width.

unsigned ExtractExpr::computeHash (  )  [virtual]

(Re)computes the hash of the current expression. Returns the hash value.

Reimplemented from klee::Expr.

Definition at line 178 of file Expr.cpp.

References expr, getWidth(), klee::Expr::hashValue, klee::Expr::MAGIC_HASH_CONSTANT, and offset.

Here is the call graph for this function:

ref< Expr > ExtractExpr::create ( ref< Expr e,
unsigned  bitOff,
Width  w 
) [static]

Creates an ExtractExpr with the given bit offset and width.

Definition at line 474 of file Expr.cpp.

References alloc(), and klee::ints::trunc().

Referenced by createByteOff(), and rebuild().

Here is the call graph for this function:

Here is the caller graph for this function:

ref< Expr > ExtractExpr::createByteOff ( ref< Expr e,
unsigned  byteOff,
Width  w = Expr::Int8 
) [static]

Creates an ExtractExpr with the given byte offset and width.

Definition at line 504 of file Expr.cpp.

References create().

Referenced by klee::Executor::evalConstantExpr(), klee::Executor::executeInstruction(), klee::ObjectState::read1(), klee::ObjectState::write16(), klee::ObjectState::write32(), and klee::ObjectState::write64().

Here is the call graph for this function:

Here is the caller graph for this function:

ref<Expr> klee::ExtractExpr::getKid ( unsigned  i  )  const [inline, virtual]

Implements klee::Expr.

Definition at line 723 of file Expr.h.

References expr.

Kind klee::ExtractExpr::getKind (  )  const [inline, virtual]

Implements klee::Expr.

Definition at line 720 of file Expr.h.

References klee::Expr::Extract.

unsigned klee::ExtractExpr::getNumKids (  )  const [inline, virtual]

Implements klee::Expr.

Definition at line 722 of file Expr.h.

References numKids.

Width klee::ExtractExpr::getWidth (  )  const [inline, virtual]

Implements klee::Expr.

Definition at line 719 of file Expr.h.

References width.

Referenced by computeHash(), and klee::STPBuilder::constructActual().

Here is the caller graph for this function:

virtual ref<Expr> klee::ExtractExpr::rebuild ( ref< Expr kids[]  )  const [inline, virtual]

Implements klee::Expr.

Definition at line 732 of file Expr.h.

References create(), offset, and width.

Here is the call graph for this function:


Member Data Documentation

const Kind klee::ExtractExpr::kind = Extract [static]

Definition at line 698 of file Expr.h.

const unsigned klee::ExtractExpr::numKids = 1 [static]

Definition at line 699 of file Expr.h.

Referenced by getNumKids().

Definition at line 704 of file Expr.h.

Referenced by compareContents(), getWidth(), and rebuild().


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

Generated on Fri Jun 5 03:33:02 2009 for klee by  doxygen 1.5.8