1#ifndef ROSE_BinaryAnalysis_Variables_BaseVariable_H 
    2#define ROSE_BinaryAnalysis_Variables_BaseVariable_H 
    3#include <featureTests.h> 
    4#ifdef ROSE_ENABLE_BINARY_ANALYSIS 
    6#include <Rose/BinaryAnalysis/InstructionSemantics/BaseSemantics/BasicTypes.h> 
    7#include <Rose/BinaryAnalysis/Variables/InstructionAccess.h> 
    9#ifdef ROSE_ENABLE_BOOST_SERIALIZATION 
   10#include <boost/serialization/access.hpp> 
   14namespace BinaryAnalysis {
 
   21    std::vector<InstructionAccess> insns_;              
 
   24#ifdef ROSE_ENABLE_BOOST_SERIALIZATION 
   26    friend class boost::serialization::access;
 
   29    void serialize(S &s, 
const unsigned ) {
 
   30        s & BOOST_SERIALIZATION_NVP(maxSizeBytes_);
 
   31        s & BOOST_SERIALIZATION_NVP(insns_);
 
   32        s & BOOST_SERIALIZATION_NVP(name_);
 
   87    const std::string& 
name() 
const;
 
   88    void name(
const std::string &s);
 
 
Base class describing a source-level variable.
 
BaseVariable()
Default constructor.
 
Address maxSizeBytes() const
Property: Maximum variable size in bytes.
 
InstructionSemantics::BaseSemantics::InputOutputPropertySet ioProperties() const
Property: I/O properties.
 
BaseVariable(size_t maxSizeBytes, const std::vector< InstructionAccess > &definingInstructions, const std::string &name)
Construct a variable with a given maximum size.
 
void name(const std::string &s)
Property: Optional variable name.
 
const std::vector< InstructionAccess > & instructionsAccessing() const
Property: Defining instructions.
 
AccessFlags accessFlags() const
Read/write status.
 
void instructionsAccessing(const std::vector< InstructionAccess > &)
Property: Defining instructions.
 
void maxSizeBytes(Address size)
Property: Maximum variable size in bytes.
 
const std::string & name() const
Property: Optional variable name.
 
void insertAccess(Address insnAddr, AccessFlags)
Insert information about how an instruction accesses this variable.
 
std::uint64_t Address
Address.