ROSE  0.11.145.0
BasicBlockUnit.h
1 #ifndef ROSE_BinaryAnalysis_ModelChecker_BasicBlockUnit_H
2 #define ROSE_BinaryAnalysis_ModelChecker_BasicBlockUnit_H
3 #include <featureTests.h>
4 #ifdef ROSE_ENABLE_MODEL_CHECKER
5 
6 #include <Rose/BinaryAnalysis/ModelChecker/ExecutionUnit.h>
7 #include <Rose/BinaryAnalysis/Partitioner2/BasicTypes.h>
8 
9 namespace Rose {
10 namespace BinaryAnalysis {
11 namespace ModelChecker {
12 
16 class BasicBlockUnit: public ExecutionUnit {
17 public:
18  using Ptr = BasicBlockUnitPtr;
19 
20 private:
21  Partitioner2::PartitionerConstPtr partitioner_; // not null
23 
24 protected:
25  BasicBlockUnit() = delete;
26  BasicBlockUnit(const Partitioner2::PartitionerConstPtr &partitioner, const Partitioner2::BasicBlockPtr&);
27 public:
28  ~BasicBlockUnit();
29 
30 public:
37 
38 public:
45  Partitioner2::BasicBlockPtr basicBlock() const;
46 
47 public:
48  virtual std::string printableName() const override;
49  virtual void printSteps(const SettingsPtr&, std::ostream&, const std::string &prefix,
50  size_t stepOrigin, size_t maxSteps) const override;
51  virtual void toYamlHeader(const SettingsPtr&, std::ostream&, const std::string &prefix) const override;
52  virtual void toYamlSteps(const SettingsPtr&, std::ostream&, const std::string &prefix,
53  size_t stepOrigin, size_t maxSteps) const override;
54  virtual size_t nSteps() const override;
55  virtual Sawyer::Optional<rose_addr_t> address() const override;
56  virtual bool containsUnknownInsn() const override;
57 
58  virtual std::vector<TagPtr>
59  execute(const SettingsPtr&, const SemanticCallbacksPtr&,
61 };
62 
63 
64 } // namespace
65 } // namespace
66 } // namespace
67 
68 #endif
69 #endif
boost::shared_ptr< RiscOperators > RiscOperatorsPtr
Shared-ownership pointer to a RISC operators object.
Main namespace for the ROSE library.
Sawyer::SharedPointer< BasicBlock > BasicBlockPtr
Shared-ownersip pointer for BasicBlock.
Sawyer::SharedPointer< const Partitioner > PartitionerConstPtr
Shared-ownership pointer for Partitioner.
Sawyer::SharedPointer< Node > Ptr
Reference counting pointer.