10#ifndef KLEE_ADDRESSSPACE_H
11#define KLEE_ADDRESSSPACE_H
25 template<
class T>
class ref;
27 typedef std::pair<const MemoryObject*, const ObjectState*>
ObjectPair;
101 unsigned maxResolutions=0,
148 uint64_t src_address);
void unbindObject(const MemoryObject *mo)
Remove a binding from the address space.
AddressSpace(const AddressSpace &b)
int checkPointerInObject(ExecutionState &state, TimingSolver *solver, ref< Expr > p, const ObjectPair &op, ResolutionList &rl, unsigned maxResolutions) const
bool resolveOne(const ref< ConstantExpr > &address, ObjectPair &result) const
bool copyInConcrete(const MemoryObject *mo, const ObjectState *os, uint64_t src_address)
bool resolve(ExecutionState &state, TimingSolver *solver, ref< Expr > p, ResolutionList &rl, unsigned maxResolutions=0, time::Span timeout=time::Span()) const
void bindObject(const MemoryObject *mo, ObjectState *os)
Add a binding to the address space.
unsigned cowKey
Epoch counter used to control ownership of objects.
const ObjectState * findObject(const MemoryObject *mo) const
Lookup a binding from a MemoryObject.
ObjectState * getWriteable(const MemoryObject *mo, const ObjectState *os)
Obtain an ObjectState suitable for writing.
AddressSpace & operator=(const AddressSpace &)
Unsupported, use copy constructor.
ExecutionState representing a path under exploration.
std::vector< ObjectPair > ResolutionList
ImmutableMap< const MemoryObject *, ref< ObjectState >, MemoryObjectLT > MemoryMap
std::pair< const MemoryObject *, const ObjectState * > ObjectPair
Function object ordering MemoryObject's by address.
bool operator()(const MemoryObject *a, const MemoryObject *b) const