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>
8 namespace BinaryAnalysis {
17 class ExecutionLocation {
19 uint64_t primary_ = 0;
20 uint64_t secondary_ = 0;
21 When when_ = When::POST;
24 ExecutionLocation() {}
26 ExecutionLocation(uint64_t primary, uint64_t secondary, When when = When::PRE)
27 : primary_(primary), secondary_(secondary), when_(when) {}
33 uint64_t primary()
const {
42 uint64_t secondary()
const {
56 ExecutionLocation nextPrimary()
const;
61 ExecutionLocation nextSecondary(When)
const;
67 void print(std::ostream&)
const;
72 bool operator<(
const ExecutionLocation &other)
const;
77 static bool isSorted(
const ExecutionLocation &a,
const ExecutionLocation &b);
80 std::ostream& operator<<(std::ostream&,
const ExecutionLocation&);
Main namespace for the ROSE library.
const char * When(int64_t)
Convert Rose::BinaryAnalysis::Concolic::When enum constant to a string.
ROSE_UTIL_API std::string toString(const Path &)
Convert a path to a string.
void print(const StackVariables &, const Partitioner2::PartitionerConstPtr &, std::ostream &out, const std::string &prefix="")
Print info about multiple local variables.