1#ifndef ROSE_BinaryAnalysis_ModelChecker_FailureUnit_H
2#define ROSE_BinaryAnalysis_ModelChecker_FailureUnit_H
3#include <featureTests.h>
4#ifdef ROSE_ENABLE_MODEL_CHECKER
6#include <Rose/BinaryAnalysis/ModelChecker/ExecutionUnit.h>
9namespace BinaryAnalysis {
10namespace ModelChecker {
15class FailureUnit:
public ExecutionUnit {
17 using Ptr = FailureUnitPtr;
21 const std::string description_;
25 FailureUnit() =
delete;
53 const std::string& description()
const;
56 virtual std::string printableName()
const override;
57 virtual void printSteps(
const SettingsPtr&, std::ostream&,
const std::string &prefix,
58 size_t stepOrigin,
size_t maxSteps)
const override;
59 virtual void toYamlHeader(
const SettingsPtr&, std::ostream&,
const std::string &prefix)
const override;
60 virtual void toYamlSteps(
const SettingsPtr&, std::ostream&,
const std::string &prefix,
61 size_t stepOrigin,
size_t maxSteps)
const override;
62 virtual std::vector<Sarif::LocationPtr> toSarif(
size_t maxSteps)
const override;
63 virtual size_t nSteps()
const override;
66 virtual std::vector<TagPtr>
67 execute(
const SettingsPtr&,
const SemanticCallbacksPtr&,
const InstructionSemantics::BaseSemantics::RiscOperatorsPtr&)
override;
Holds a value or nothing.
Sawyer::SharedPointer< Node > Ptr
Reference counting pointer.