1#ifndef ROSE_BinaryAnalysis_ModelChecker_NullDereferenceTag_H
2#define ROSE_BinaryAnalysis_ModelChecker_NullDereferenceTag_H
3#include <featureTests.h>
4#ifdef ROSE_ENABLE_MODEL_CHECKER
6#include <Rose/BinaryAnalysis/ModelChecker/Tag.h>
7#include <Rose/BinaryAnalysis/InstructionSemantics/BaseSemantics/BasicTypes.h>
12namespace BinaryAnalysis {
13namespace ModelChecker {
16class NullDereferenceTag:
public Tag {
18 using Ptr = NullDereferenceTagPtr;
24 const InstructionSemantics::BaseSemantics::SValuePtr addr_;
27 NullDereferenceTag() =
delete;
29 const InstructionSemantics::BaseSemantics::SValuePtr &addr);
31 ~NullDereferenceTag();
37 const InstructionSemantics::BaseSemantics::SValuePtr &addr);
40 virtual std::string name()
const override;
41 virtual std::string printableName()
const override;
42 virtual void print(std::ostream&,
const std::string &prefix)
const override;
43 virtual void toYaml(std::ostream&,
const std::string &prefix)
const override;
44 virtual Sarif::ResultPtr toSarif(
const Sarif::AnalysisPtr&)
const override;
Base class for machine instructions.
Sawyer::SharedPointer< Node > Ptr
Reference counting pointer.
void print(const StackVariables &, const Partitioner2::PartitionerConstPtr &, std::ostream &out, const std::string &prefix="")
Print info about multiple local variables.
const char * IoMode(int64_t)
Convert Rose::BinaryAnalysis::FeasiblePath::IoMode enum constant to a string.
const char * TestMode(int64_t)
Convert Rose::BinaryAnalysis::ModelChecker::TestMode enum constant to a string.