1 #ifndef ROSE_BinaryAnalysis_ModelChecker_Types_H
2 #define ROSE_BinaryAnalysis_ModelChecker_Types_H
3 #include <featureTests.h>
4 #ifdef ROSE_ENABLE_MODEL_CHECKER
9 namespace BinaryAnalysis {
14 namespace ModelChecker {
17 using AlwaysTruePtr = std::shared_ptr<AlwaysTrue>;
20 using BasicBlockUnitPtr = std::shared_ptr<BasicBlockUnit>;
23 using EnginePtr = std::shared_ptr<Engine>;
26 using ErrorTagPtr = std::shared_ptr<ErrorTag>;
31 using ExecutionUnitPtr = std::shared_ptr<ExecutionUnit>;
33 class ExternalFunctionUnit;
34 using ExternalFunctionUnitPtr = std::shared_ptr<ExternalFunctionUnit>;
37 using FailureUnitPtr = std::shared_ptr<FailureUnit>;
39 class FastestPathFirst;
40 using FastestPathFirstPtr = std::shared_ptr<FastestPathFirst>;
45 using HasFinalTagsPtr = std::shared_ptr<HasFinalTags>;
47 class InstructionUnit;
48 using InstructionUnitPtr = std::shared_ptr<InstructionUnit>;
50 class LongestPathFirst;
51 using LongestPathFirstPtr = std::shared_ptr<LongestPathFirst>;
54 using NameTagPtr = std::shared_ptr<NameTag>;
56 class NullDereferenceTag;
57 using NullDereferenceTagPtr = std::shared_ptr<NullDereferenceTag>;
60 using OutOfBoundsTagPtr = std::shared_ptr<OutOfBoundsTag>;
65 using PathPtr = std::shared_ptr<Path>;
68 using PathNodePtr = std::shared_ptr<PathNode>;
71 using PathPredicatePtr = std::shared_ptr<PathPredicate>;
73 class PathPrioritizer;
74 using PathPrioritizerPtr = std::shared_ptr<PathPrioritizer>;
77 using PathQueuePtr = std::shared_ptr<PathQueue>;
80 using PeriodicPtr = std::shared_ptr<Periodic>;
82 class RandomPathFirst;
83 using RandomPathFirstPtr = std::shared_ptr<RandomPathFirst>;
85 class SemanticCallbacks;
86 using SemanticCallbacksPtr = std::shared_ptr<SemanticCallbacks>;
89 using SettingsPtr = std::shared_ptr<Settings>;
91 class ShortestPathFirst;
92 using ShortestPathFirstPtr = std::shared_ptr<ShortestPathFirst>;
95 using SourceListerPtr = std::shared_ptr<SourceLister>;
98 using TagPtr = std::shared_ptr<Tag>;
100 class UninitializedVariableTag;
101 using UninitializedVariableTagPtr = std::shared_ptr<UninitializedVariableTag>;
104 using WorkerStatusPtr = std::shared_ptr<WorkerStatus>;
107 using WorkPredicatePtr = std::shared_ptr<WorkPredicate>;
112 namespace PartitionerModel {
119 class SemanticCallbacks;
120 using SemanticCallbacksPtr = std::shared_ptr<SemanticCallbacks>;
145 #define UNMANAGED_WORKER ((size_t)-1) // non-ID for an unmanaged worker; I.e., a user thread
boost::filesystem::path Path
Name of entities in a filesystem.
const char * TestMode(int64_t)
Convert Rose::BinaryAnalysis::ModelChecker::TestMode enum constant to a string.
Sawyer::SharedPointer< class SValue > SValuePtr
Smart-ownership pointer to a concrete semantic value.
ROSE_DLL_API Sawyer::Message::Facility mlog
Diagnostic facility for the ROSE library as a whole.
const char * IoMode(int64_t)
Convert Rose::BinaryAnalysis::FeasiblePath::IoMode enum constant to a string.
Main namespace for the ROSE library.
Rose::BinaryAnalysis::DataFlow::Engine< DfCfg, InstructionSemantics::BaseSemantics::StatePtr, TransferFunction, MergeFunction > Engine
Data-Flow engine.
boost::shared_ptr< class RiscOperators > RiscOperatorsPtr
Shared-ownership pointer to concrete RISC operations.
const char * WorkerState(int64_t)
Convert Rose::BinaryAnalysis::ModelChecker::WorkerState enum constant to a string.
void initDiagnostics()
Initialize diagnostics.