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>
8namespace BinaryAnalysis {
17class 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);
80std::ostream& operator<<(std::ostream&,
const ExecutionLocation&);
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.
When
When something should be done.