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>;
43 using HasFinalTagsPtr = std::shared_ptr<HasFinalTags>;
45 class InstructionUnit;
46 using InstructionUnitPtr = std::shared_ptr<InstructionUnit>;
48 class LongestPathFirst;
49 using LongestPathFirstPtr = std::shared_ptr<LongestPathFirst>;
52 using NameTagPtr = std::shared_ptr<NameTag>;
54 class NullDereferenceTag;
55 using NullDereferenceTagPtr = std::shared_ptr<NullDereferenceTag>;
58 using OutOfBoundsTagPtr = std::shared_ptr<OutOfBoundsTag>;
63 using PathPtr = std::shared_ptr<Path>;
66 using PathNodePtr = std::shared_ptr<PathNode>;
69 using PathPredicatePtr = std::shared_ptr<PathPredicate>;
71 class PathPrioritizer;
72 using PathPrioritizerPtr = std::shared_ptr<PathPrioritizer>;
75 using PathQueuePtr = std::shared_ptr<PathQueue>;
78 using PeriodicPtr = std::shared_ptr<Periodic>;
80 class RandomPathFirst;
81 using RandomPathFirstPtr = std::shared_ptr<RandomPathFirst>;
83 class SemanticCallbacks;
84 using SemanticCallbacksPtr = std::shared_ptr<SemanticCallbacks>;
87 using SettingsPtr = std::shared_ptr<Settings>;
89 class ShortestPathFirst;
90 using ShortestPathFirstPtr = std::shared_ptr<ShortestPathFirst>;
93 using SourceListerPtr = std::shared_ptr<SourceLister>;
96 using TagPtr = std::shared_ptr<Tag>;
98 class UninitializedVariableTag;
99 using UninitializedVariableTagPtr = std::shared_ptr<UninitializedVariableTag>;
102 using WorkerStatusPtr = std::shared_ptr<WorkerStatus>;
105 using WorkPredicatePtr = std::shared_ptr<WorkPredicate>;
110 namespace PartitionerModel {
117 class SemanticCallbacks;
118 using SemanticCallbacksPtr = std::shared_ptr<SemanticCallbacks>;
143 #define UNMANAGED_WORKER ((size_t)-1) // non-ID for an unmanaged worker; I.e., a user thread
Rose::BinaryAnalysis::DataFlow::Engine< DfCfg, BaseSemantics::StatePtr, TransferFunction, MergeFunction > Engine
Data-Flow engine.
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.
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.