3 #ifndef Rose_SymbolicMemory_H
4 #define Rose_SymbolicMemory_H
5 #include <featureTests.h>
6 #ifdef ROSE_ENABLE_BINARY_ANALYSIS
8 #include <BaseSemantics2.h>
12 namespace InstructionSemantics2 {
28 : MemoryState(addrProtoval, valProtoval) {
42 return instance(addrProtoval, valProtoval);
54 SymbolicMemoryPtr retval = boost::dynamic_pointer_cast<
SymbolicMemory>(x);
55 ASSERT_not_null(retval);
70 virtual void clear() ROSE_OVERRIDE;
84 virtual
void print(
std::ostream&,
Formatter&) const ROSE_OVERRIDE;
boost::shared_ptr< MemoryState > MemoryStatePtr
Shared-ownership pointer to a memory state.
static SymbolicMemoryPtr instance(const SValuePtr &addrProtoval, const SValuePtr &valProtoval)
Instantiate a new empty memory state on the heap.
Main namespace for the ROSE library.
static SymbolicMemoryPtr promote(const MemoryStatePtr &x)
Convert pointer to a SymbolicMemory pointer.
SymbolicExpr::Ptr expression() const
Property: the symbolic expression for the memory.
boost::shared_ptr< class SymbolicMemory > SymbolicMemoryPtr
Shared-ownership pointer for symbolic memory state.
Base classes for instruction semantics.
Purely symbolic memory state.
Base class for most instruction semantics RISC operators.
LeafPtr makeMemoryVariable(size_t addressWidth, size_t valueWidth, const std::string &comment="", unsigned flags=0)
Leaf constructor.