klee::ConcatExpr Class Reference

#include <Expr.h>

Inheritance diagram for klee::ConcatExpr:

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

Collaboration graph
[legend]

List of all members.

Public Member Functions

Width getWidth () const
Kind getKind () const
ref< ExprgetLeft () const
ref< ExprgetRight () const
unsigned getNumKids () const
ref< ExprgetKid (unsigned i) const
virtual ref< Exprrebuild (ref< Expr > kids[]) const
bool is2ByteConcat () const
bool is4ByteConcat () const
bool is8ByteConcat () const

Static Public Member Functions

static ref< Expralloc (const ref< Expr > &l, const ref< Expr > &r)
static ref< Exprcreate (const ref< Expr > &l, const ref< Expr > &r)
static ref< ExprcreateN (unsigned nKids, const ref< Expr > kids[])
 Shortcuts to create larger concats. The chain returned is unbalanced to the right.
static ref< Exprcreate4 (const ref< Expr > &kid1, const ref< Expr > &kid2, const ref< Expr > &kid3, const ref< Expr > &kid4)
 Shortcut to concat 4 kids. The chain returned is unbalanced to the right.
static ref< Exprcreate8 (const ref< Expr > &kid1, const ref< Expr > &kid2, const ref< Expr > &kid3, const ref< Expr > &kid4, const ref< Expr > &kid5, const ref< Expr > &kid6, const ref< Expr > &kid7, const ref< Expr > &kid8)
 Shortcut to concat 8 kids. The chain returned is unbalanced to the right.
static bool classof (const Expr *E)
static bool classof (const ConcatExpr *)

Static Public Attributes

static const Kind kind = Concat
static const unsigned numKids = 2

Private Member Functions

 ConcatExpr (const ref< Expr > &l, const ref< Expr > &r)

Private Attributes

Width width
ref< Exprleft
ref< Exprright


Detailed Description

Children of a concat expression can have arbitrary widths. Kid 0 is the left kid, kid 1 is the right kid.

Definition at line 632 of file Expr.h.


Constructor & Destructor Documentation

klee::ConcatExpr::ConcatExpr ( const ref< Expr > &  l,
const ref< Expr > &  r 
) [inline, private]

Definition at line 680 of file Expr.h.

References width.

Referenced by alloc().

Here is the caller graph for this function:


Member Function Documentation

static ref<Expr> klee::ConcatExpr::alloc ( const ref< Expr > &  l,
const ref< Expr > &  r 
) [inline, static]

Definition at line 642 of file Expr.h.

References ConcatExpr().

Referenced by create().

Here is the call graph for this function:

Here is the caller graph for this function:

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

Definition at line 688 of file Expr.h.

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

Reimplemented from klee::Expr.

Definition at line 685 of file Expr.h.

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

Here is the call graph for this function:

ref< Expr > ConcatExpr::create ( const ref< Expr > &  l,
const ref< Expr > &  r 
) [static]

Definition at line 416 of file Expr.cpp.

References alloc().

Referenced by create4(), create8(), klee::Expr::createFromKind(), createN(), klee::Expr::createTempRead(), klee::ObjectState::read16(), and rebuild().

Here is the call graph for this function:

Here is the caller graph for this function:

ref< Expr > ConcatExpr::create4 ( const ref< Expr > &  kid1,
const ref< Expr > &  kid2,
const ref< Expr > &  kid3,
const ref< Expr > &  kid4 
) [static]

Shortcut to concat 4 kids. The chain returned is unbalanced to the right.

Definition at line 458 of file Expr.cpp.

References create().

Referenced by create8(), klee::Expr::createTempRead(), and klee::ObjectState::read32().

Here is the call graph for this function:

Here is the caller graph for this function:

ref< Expr > ConcatExpr::create8 ( const ref< Expr > &  kid1,
const ref< Expr > &  kid2,
const ref< Expr > &  kid3,
const ref< Expr > &  kid4,
const ref< Expr > &  kid5,
const ref< Expr > &  kid6,
const ref< Expr > &  kid7,
const ref< Expr > &  kid8 
) [static]

Shortcut to concat 8 kids. The chain returned is unbalanced to the right.

Definition at line 464 of file Expr.cpp.

References create(), and create4().

Referenced by klee::Expr::createTempRead(), and klee::ObjectState::read64().

Here is the call graph for this function:

Here is the caller graph for this function:

ref< Expr > ConcatExpr::createN ( unsigned  nKids,
const ref< Expr kids[] 
) [static]

Shortcuts to create larger concats. The chain returned is unbalanced to the right.

Shortcut to concat N kids. The chain returned is unbalanced to the right.

Definition at line 446 of file Expr.cpp.

References create().

Here is the call graph for this function:

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

Implements klee::Expr.

Definition at line 656 of file Expr.h.

References left, and right.

Referenced by _getImpliedValue(), klee::STPBuilder::constructActual(), and CexData::forceExprToRange().

Here is the caller graph for this function:

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

Implements klee::Expr.

Definition at line 651 of file Expr.h.

References kind.

ref<Expr> klee::ConcatExpr::getLeft (  )  const [inline]

Definition at line 652 of file Expr.h.

References left.

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

Implements klee::Expr.

Definition at line 655 of file Expr.h.

References numKids.

Referenced by klee::STPBuilder::constructActual().

Here is the caller graph for this function:

ref<Expr> klee::ConcatExpr::getRight (  )  const [inline]

Definition at line 653 of file Expr.h.

References right.

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

Implements klee::Expr.

Definition at line 650 of file Expr.h.

References width.

Referenced by klee::STPBuilder::constructActual().

Here is the caller graph for this function:

bool klee::ConcatExpr::is2ByteConcat (  )  const [inline]

Definition at line 675 of file Expr.h.

Referenced by CexData::forceExprToRange().

Here is the caller graph for this function:

bool klee::ConcatExpr::is4ByteConcat (  )  const [inline]

Definition at line 676 of file Expr.h.

Referenced by CexData::forceExprToRange().

Here is the caller graph for this function:

bool klee::ConcatExpr::is8ByteConcat (  )  const [inline]

Definition at line 677 of file Expr.h.

Referenced by CexData::forceExprToRange().

Here is the caller graph for this function:

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

Implements klee::Expr.

Definition at line 671 of file Expr.h.

References create().

Here is the call graph for this function:


Member Data Documentation

const Kind klee::ConcatExpr::kind = Concat [static]

Definition at line 634 of file Expr.h.

Referenced by getKind().

Definition at line 639 of file Expr.h.

Referenced by getKid(), and getLeft().

const unsigned klee::ConcatExpr::numKids = 2 [static]

Definition at line 635 of file Expr.h.

Referenced by getNumKids().

Definition at line 639 of file Expr.h.

Referenced by getKid(), and getRight().

Definition at line 638 of file Expr.h.

Referenced by ConcatExpr(), and getWidth().


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