1 #ifndef Rose_BinaryAnalysis_AbstractLocation_H
2 #define Rose_BinaryAnalysis_AbstractLocation_H
3 #include <featureTests.h>
4 #ifdef ROSE_ENABLE_BINARY_ANALYSIS
6 #include "BaseSemantics2.h"
44 : reg_(other.reg_), addr_(other.addr_), nBytes_(other.nBytes_), regdict_(other.regdict_) {}
50 : reg_(reg), nBytes_(0), regdict_(regdict) {}
61 nBytes_ = other.nBytes_;
62 regdict_ = other.regdict_;
133 print(out, regdict, fmt);
136 print(out, NULL, fmt);
142 std::ostream& operator<<(std::ostream&,
const AbstractLocation&);
AbstractLocation(const AbstractLocation &other)
Copy constructor.
bool isValid() const
Validity checker.
size_t nBytes() const
Returns size of memory location in bytes.
AbstractLocation()
Default constructor.
void print(std::ostream &out, InstructionSemantics2::BaseSemantics::Formatter &fmt) const
Print an abstract location.
Main namespace for the ROSE library.
Sawyer::SharedPointer< class SmtSolver > SmtSolverPtr
Reference-counting pointer for SMT solvers.
RegisterDescriptor getRegister() const
Returns register.
const Address getAddress() const
Returns memory address.
void print(std::ostream &out, const RegisterDictionary *regdict=NULL) const
Print an abstract location.
AbstractLocation & operator=(const AbstractLocation &other)
Assignment operator.
Describes (part of) a physical CPU register.
bool isAddress() const
Checks memory reference.
AbstractLocation(RegisterDescriptor reg, const RegisterDictionary *regdict=NULL)
Register referent.
bool mayAlias(const AbstractLocation &other, const SmtSolverPtr &solver=SmtSolverPtr()) const
True if two abstract locations could be aliases.
bool mustAlias(const AbstractLocation &other, const SmtSolverPtr &solver=SmtSolverPtr()) const
True if two abstract locations are certainly aliases.
InstructionSemantics2::BaseSemantics::SValuePtr Address
Type of memory address.
Defines registers available for a particular architecture.
bool isEmpty() const
Predicate returns true if the width is zero.
bool isRegister() const
Checks register reference.
AbstractLocation(const Address &addr, size_t nBytes=0)
Memory referent.