1#ifndef ROSE_BinaryAnalysis_ModelChecker_ErrorTag_H 
    2#define ROSE_BinaryAnalysis_ModelChecker_ErrorTag_H 
    3#include <featureTests.h> 
    4#ifdef ROSE_ENABLE_MODEL_CHECKER 
    5#include <Rose/BinaryAnalysis/ModelChecker/Tag.h> 
    7#include <Rose/BinaryAnalysis/InstructionSemantics/BaseSemantics/BasicTypes.h> 
    8#include <Rose/BinaryAnalysis/SymbolicExpression.h> 
   11namespace BinaryAnalysis {
 
   12namespace ModelChecker {
 
   19class ErrorTag: 
public NameTag {
 
   21    using Ptr = ErrorTagPtr;
 
   24    const std::string mesg_;                                       
 
   27    const SymbolicExpression::Ptr symbolic_;                       
 
   28    const InstructionSemantics::BaseSemantics::SValuePtr svalue_;  
 
   33    ErrorTag(
size_t nodeStep, 
const std::string &name, 
const std::string &mesg, 
SgAsmInstruction*,
 
   35    ErrorTag(
size_t nodeStep, 
const std::string &name, 
const std::string &mesg, 
SgAsmInstruction*,
 
   36             const SymbolicExpression::Ptr&);
 
   37    ErrorTag(
size_t nodeStep, 
const std::string &name, 
const std::string &mesg, 
SgAsmInstruction*,
 
   38             const InstructionSemantics::BaseSemantics::SValuePtr&);
 
   48    static Ptr instance(
size_t nodeStep, 
const std::string &name, 
const std::string &mesg, 
SgAsmInstruction*);
 
   49    static Ptr instance(
size_t nodeStep, 
const std::string &name, 
const std::string &mesg, 
SgAsmInstruction*,
 
   51    static Ptr instance(
size_t nodeStep, 
const std::string &name, 
const std::string &mesg, 
SgAsmInstruction*,
 
   52                        const SymbolicExpression::Ptr&);
 
   53    static Ptr instance(
size_t nodeStep, 
const std::string &name, 
const std::string &mesg, 
SgAsmInstruction*,
 
   54                        const InstructionSemantics::BaseSemantics::SValuePtr&);
 
   74    void print(std::ostream &out, 
const std::string &prefix) 
const override;
 
   75    void toYaml(std::ostream &out, 
const std::string &prefix) 
const override;
 
   76    Sarif::ResultPtr toSarif(
const Sarif::AnalysisPtr&) 
const override;
 
Holds a value or nothing.
 
Base class for machine instructions.
 
Sawyer::SharedPointer< Node > Ptr
Reference counting pointer.
 
void print(const GlobalVariables &, const Partitioner2::PartitionerConstPtr &, std::ostream &out, const std::string &prefix="")
Print info about multiple global variables.
 
void message(Sawyer::Message::Importance, const Ast::FilePtr &, const Token &, const std::string &mesg)
Print a diagnostic message to standard error.
 
Importance
Level of importance for a message.
 
@ ERROR
Error messages that indicate an abnormal situation from which the program was able to at least partia...