ROSE  0.11.145.0
NullDereferenceTag.h
1 #ifndef ROSE_BinaryAnalysis_ModelChecker_NullDereferenceTag_H
2 #define ROSE_BinaryAnalysis_ModelChecker_NullDereferenceTag_H
3 #include <featureTests.h>
4 #ifdef ROSE_ENABLE_MODEL_CHECKER
5 
6 #include <Rose/BinaryAnalysis/ModelChecker/Tag.h>
7 #include <Rose/BinaryAnalysis/InstructionSemantics/BaseSemantics/BasicTypes.h>
8 
9 namespace Rose {
10 namespace BinaryAnalysis {
11 namespace ModelChecker {
12 
14 class NullDereferenceTag: public Tag {
15 public:
16  using Ptr = NullDereferenceTagPtr;
17 
18 private:
19  const TestMode testMode_; // may or must, but not off
20  const IoMode ioMode_; // read or write
21  SgAsmInstruction* const insn_; // instruction where the dereference occurs (optional)
22  const InstructionSemantics::BaseSemantics::SValuePtr addr_; // memory address that is considered to be null
23 
24 protected:
25  NullDereferenceTag() = delete;
26  NullDereferenceTag(size_t nodeStep, TestMode, IoMode, SgAsmInstruction*,
28 public:
29  ~NullDereferenceTag();
30 
34  static Ptr instance(size_t nodeStep, TestMode, IoMode, SgAsmInstruction*,
36 
37 public:
38  virtual std::string name() const override;
39  virtual std::string printableName() const override;
40  virtual void print(std::ostream&, const std::string &prefix) const override;
41  virtual void toYaml(std::ostream&, const std::string &prefix) const override;
42 };
43 
44 } // namespace
45 } // namespace
46 } // namespace
47 
48 #endif
49 #endif
const char * TestMode(int64_t)
Convert Rose::BinaryAnalysis::ModelChecker::TestMode enum constant to a string.
Base class for machine instructions.
const char * IoMode(int64_t)
Convert Rose::BinaryAnalysis::FeasiblePath::IoMode enum constant to a string.
Main namespace for the ROSE library.
void print(const StackVariables &, const Partitioner2::PartitionerConstPtr &, std::ostream &out, const std::string &prefix="")
Print info about multiple local variables.
Sawyer::SharedPointer< SValue > SValuePtr
Shared-ownership pointer to a semantic value in any domain.
Sawyer::SharedPointer< Node > Ptr
Reference counting pointer.