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>;
22 class BestCoverageFirst;
23 using BestCoverageFirstPtr = std::shared_ptr<BestCoverageFirst>;
26 using EnginePtr = std::shared_ptr<Engine>;
29 using ErrorTagPtr = std::shared_ptr<ErrorTag>;
34 using ExecutionUnitPtr = std::shared_ptr<ExecutionUnit>;
36 class ExternalFunctionUnit;
37 using ExternalFunctionUnitPtr = std::shared_ptr<ExternalFunctionUnit>;
40 using FailureUnitPtr = std::shared_ptr<FailureUnit>;
42 class FastestPathFirst;
43 using FastestPathFirstPtr = std::shared_ptr<FastestPathFirst>;
48 using HasFinalTagsPtr = std::shared_ptr<HasFinalTags>;
50 class InstructionUnit;
51 using InstructionUnitPtr = std::shared_ptr<InstructionUnit>;
53 class LongestPathFirst;
54 using LongestPathFirstPtr = std::shared_ptr<LongestPathFirst>;
57 using NameTagPtr = std::shared_ptr<NameTag>;
59 class NullDereferenceTag;
60 using NullDereferenceTagPtr = std::shared_ptr<NullDereferenceTag>;
63 using OutOfBoundsTagPtr = std::shared_ptr<OutOfBoundsTag>;
68 using PathPtr = std::shared_ptr<Path>;
71 using PathNodePtr = std::shared_ptr<PathNode>;
74 using PathPredicatePtr = std::shared_ptr<PathPredicate>;
76 class PathPrioritizer;
77 using PathPrioritizerPtr = std::shared_ptr<PathPrioritizer>;
80 using PathQueuePtr = std::shared_ptr<PathQueue>;
83 using PeriodicPtr = std::shared_ptr<Periodic>;
85 class RandomPathFirst;
86 using RandomPathFirstPtr = std::shared_ptr<RandomPathFirst>;
88 class SemanticCallbacks;
89 using SemanticCallbacksPtr = std::shared_ptr<SemanticCallbacks>;
92 using SettingsPtr = std::shared_ptr<Settings>;
94 class ShortestPathFirst;
95 using ShortestPathFirstPtr = std::shared_ptr<ShortestPathFirst>;
98 using SourceListerPtr = std::shared_ptr<SourceLister>;
101 using TagPtr = std::shared_ptr<Tag>;
103 class UninitializedVariableTag;
104 using UninitializedVariableTagPtr = std::shared_ptr<UninitializedVariableTag>;
107 using WorkerStatusPtr = std::shared_ptr<WorkerStatus>;
110 using WorkPredicatePtr = std::shared_ptr<WorkPredicate>;
115 namespace PartitionerModel {
122 class SemanticCallbacks;
123 using SemanticCallbacksPtr = std::shared_ptr<SemanticCallbacks>;
148 #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.
Sawyer::SharedPointer< Engine > EnginePtr
Shared-ownership pointer for Engine.
const char * WorkerState(int64_t)
Convert Rose::BinaryAnalysis::ModelChecker::WorkerState enum constant to a string.
void initDiagnostics()
Initialize diagnostics.