1#ifndef ROSE_BinaryAnalysis_Variables_InstructionAccess_H
2#define ROSE_BinaryAnalysis_Variables_InstructionAccess_H
3#include <featureTests.h>
4#ifdef ROSE_ENABLE_BINARY_ANALYSIS
6#include <Rose/BinaryAnalysis/Variables/BasicTypes.h>
8#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
9#include <boost/serialization/access.hpp>
13namespace BinaryAnalysis {
31#ifdef ROSE_HAVE_BOOST_SERIALIZATION_LIB
33 friend class boost::serialization::access;
36 void serialize(S &s,
const unsigned ) {
37 s & BOOST_SERIALIZATION_NVP(
address_);
38 s & BOOST_SERIALIZATION_NVP(
access_);
Information about how an instruction accesses a variable.
std::string accessString() const
String describing access.
InstructionAccess(const AccessFlags)
Constructor for variables created by no instruction.
AccessFlags access() const
Property: Access type.
AccessFlags & access()
Property: Access type.
Sawyer::Optional< Address > address_
Address of instruction accessing the variable.
AccessFlags access_
How the instruction accesses the variable.
std::string toString() const
String representation of this object.
Sawyer::Optional< Address > address() const
Property: Instruction address.
InstructionAccess(const Address insnAddr, const AccessFlags)
Constructor for variables created by an instruction.
static std::string accessString(AccessFlags)
String describing access.
Holds a value or nothing.
std::uint64_t Address
Address.