1#ifndef CPROVER_GOTO_SYMEX_SYMEX_TARGET_H
2#define CPROVER_GOTO_SYMEX_SYMEX_TARGET_H
56 std::vector<stack_framet> stack_trace,
58 unsigned loop_number) = 0;
64 const std::string &
fmt,
65 const std::list<expr2tc> &args) = 0;
72 unsigned loop_number) = 0;
78 unsigned loop_number) = 0;
88 const std::string &msg,
89 std::vector<stack_framet> stack_trace,
91 unsigned loop_number) = 0;
114 bool keep_local_variables)
const = 0;
118 virtual std::shared_ptr<symex_targett>
clone()
const = 0;
149 if (
src ==
nullptr || ref.
src ==
nullptr)
152 return src->pc->location_number == ref.
src->
pc->location_number;
A generic container class for a control flow graph for one function, in the form of a goto-program.
Definition goto_program.h:63
instructionst::const_iterator const_targett
Definition goto_program.h:591
Definition symex_target.h:125
irep_idt function
Definition symex_target.h:155
stack_framet(const stack_framet &ref)
Definition symex_target.h:136
bool _cmp(const stack_framet &ref) const
Definition symex_target.h:143
const symex_targett::sourcet * src
Definition symex_target.h:157
symex_targett::sourcet _src
Definition symex_target.h:156
stack_framet & operator=(const stack_framet &)=default
stack_framet(const irep_idt &func)
Definition symex_target.h:131
stack_framet(const irep_idt &func, const symex_targett::sourcet &__src)
Definition symex_target.h:127
Definition symex_target.h:14
virtual std::shared_ptr< symex_targett > clone() const =0
virtual void renumber(const expr2tc &guard, const expr2tc &symbol, const expr2tc &size, const sourcet &source)=0
virtual void assertion(const expr2tc &guard, const expr2tc &cond, const expr2tc &cond_neg, const std::string &msg, std::vector< stack_framet > stack_trace, const sourcet &source, unsigned loop_number)=0
cond_neg is cond with the claim negated under the same guards, so a probe can ask whether the claim h...
step_typet
Definition symex_target.h:20
@ OUTPUT
Definition symex_target.h:24
@ RENUMBER
Definition symex_target.h:26
@ ASSERT
Definition symex_target.h:23
@ SKIP
Definition symex_target.h:25
@ BREANCHING
Definition symex_target.h:27
@ ASSIGNMENT
Definition symex_target.h:21
@ ASSUME
Definition symex_target.h:22
virtual void output(const expr2tc &guard, const sourcet &source, const std::string &fmt, const std::list< expr2tc > &args)=0
virtual void branching(const expr2tc &guard, const expr2tc &cond, const sourcet &source, const bool hidden, unsigned loop_number)=0
virtual void assumption(const expr2tc &guard, const expr2tc &cond, const sourcet &source, unsigned loop_number)=0
virtual void assignment(const expr2tc &guard, const expr2tc &lhs, const expr2tc &original_lhs, const expr2tc &rhs, const expr2tc &original_rhs, const sourcet &source, std::vector< stack_framet > stack_trace, const bool hidden, unsigned loop_number)=0
virtual void reconstruct_symbolic_expression(expr2tc &expr, bool keep_local_variables) const =0
Replaces trace symbols from expression with their values.
virtual ~symex_targett()=default
virtual void push_ctx()=0
pthread_cond_t cond
Definition cuda.h:50
Classes and definitions for non-stringy internal representation.
irep_container< expr2t > expr2tc
Definition irep2.h:431
#define true
Definition stdbool.h:11
#define false
Definition stdbool.h:10
Definition symex_target.h:31
unsigned thread_nr
Definition symex_target.h:32
sourcet(goto_programt::const_targett _pc, const goto_programt *_prog)
Definition symex_target.h:41
const goto_programt * prog
Definition symex_target.h:34
sourcet()
Definition symex_target.h:37
bool is_set
Definition symex_target.h:35
goto_programt::const_targett pc
Definition symex_target.h:33
bool operator==(const stack_framet &a, const stack_framet &b)
Definition symex_target.h:165
bool operator<(const symex_targett::sourcet &a, const symex_targett::sourcet &b)
Definition symex_target.cpp:3