ROSE 0.11.145.237
ReadWriteSets.h
1#ifndef ROSE_BinaryAnalysis_ReadWriteSets_H
2#define ROSE_BinaryAnalysis_ReadWriteSets_H
3#include <featureTests.h>
4#ifdef ROSE_ENABLE_BINARY_ANALYSIS
5#include <Rose/BinaryAnalysis/BasicTypes.h>
6
7#include <Rose/BinaryAnalysis/Variables.h>
8
9namespace Rose {
10namespace BinaryAnalysis {
11
17public:
20
41
42private:
43 Settings settings_;
45 Variables::StackVariables stackVariables_;
46 Variables::GlobalVariables globalVariables_;
47
48public:
50protected:
51 ReadWriteSets() = delete;
52 ReadWriteSets(const Partitioner2::PartitionerConstPtr&, const Settings&);
53public:
56
60 const Settings& settings() const;
70
75
89 std::vector<Variables::StackVariable> localVariables(Variables::AccessFlags required = Variables::AccessFlags(),
91
95 void print(std::ostream&, const std::string &prefix = "") const;
96};
97
99std::ostream& operator<<(std::ostream&, const ReadWriteSets&);
100
101} // namespace
102} // namespace
103
104#endif
105#endif
Sets of variables based on whether they're read or written.
std::vector< Variables::StackVariable > localVariables(Variables::AccessFlags required=Variables::AccessFlags(), Variables::AccessFlags forbidden=Variables::AccessFlags()) const
Local variables.
Settings & settings()
Property: Settings for this analysis.
static Sawyer::CommandLine::SwitchGroup commandLineSwitches(Settings &)
Command-line switches for this analysis.
static Ptr instance(const Partitioner2::PartitionerConstPtr &, const Settings &=Settings())
Allocating constructor.
void analyze(const Partitioner2::FunctionPtr &)
Analyze a function.
const Settings & settings() const
Property: Settings for this analysis.
ReadWriteSetsPtr Ptr
Shared ownership pointer for ReadWriteSets.
void print(std::ostream &, const std::string &prefix="") const
Print results.
A collection of related switch declarations.
std::shared_ptr< ReadWriteSets > ReadWriteSetsPtr
Reference counting pointer.
The ROSE library.
Settings that control this analysis.
Variables::VariableFinder::Settings variableFinder
Settings for the analysis that finds the variables.
bool findingLocalVariables
Whether to find local (stack) variables.
bool findingGlobalVariables
Whether to find global variables.