ROSE 0.11.145.147
ExecutionLocation.h
1#ifndef ROSE_BinaryAnalysis_Concolic_ExecutionLocation_H
2#define ROSE_BinaryAnalysis_Concolic_ExecutionLocation_H
3#include <featureTests.h>
4#ifdef ROSE_ENABLE_CONCOLIC_TESTING
5#include <Rose/BinaryAnalysis/Concolic/BasicTypes.h>
6
7namespace Rose {
8namespace BinaryAnalysis {
9namespace Concolic {
10
17class ExecutionLocation {
18private:
19 uint64_t primary_ = 0;
20 uint64_t secondary_ = 0;
21 When when_ = When::POST;
22
23public:
24 ExecutionLocation() {}
25
26 ExecutionLocation(uint64_t primary, uint64_t secondary, When when = When::PRE)
27 : primary_(primary), secondary_(secondary), when_(when) {}
28
29public:
33 uint64_t primary() const {
34 return primary_;
35 }
36
42 uint64_t secondary() const {
43 return secondary_;
44 }
45
51 When when() const {
52 return when_;
53 }
54
56 ExecutionLocation nextPrimary() const;
57
61 ExecutionLocation nextSecondary(When) const;
62
64 std::string toString() const;
65
67 void print(std::ostream&) const;
68
72 bool operator<(const ExecutionLocation &other) const;
73
77 static bool isSorted(const ExecutionLocation &a, const ExecutionLocation &b);
78};
79
80std::ostream& operator<<(std::ostream&, const ExecutionLocation&);
81
82} // namespace
83} // namespace
84} // namespace
85
86#endif
87#endif
void print(const StackVariables &, const Partitioner2::PartitionerConstPtr &, std::ostream &out, const std::string &prefix="")
Print info about multiple local variables.
ROSE_UTIL_API std::string toString(const Path &)
Convert a path to a string.
The ROSE library.
When
When something should be done.