Go to the documentation of this file.
12 #ifndef CPROVER_GOTO_SYMEX_SYMEX_TARGET_H
13 #define CPROVER_GOTO_SYMEX_SYMEX_TARGET_H
54 pc(_goto_program.instructions.begin())
90 unsigned atomic_section_id,
91 const sourcet &source) = 0;
103 unsigned atomic_section_id,
104 const sourcet &source) = 0;
120 const exprt &ssa_full_lhs,
121 const exprt &original_full_lhs,
122 const exprt &ssa_rhs,
123 const sourcet &source,
137 const exprt &initializer,
138 const sourcet &source,
149 const sourcet &source)=0;
162 const sourcet &source,
174 const sourcet &source,
183 const sourcet &source)=0;
193 const sourcet &source,
206 const sourcet &source,
209 const std::list<exprt> &args)=0;
219 const sourcet &source,
221 const std::list<exprt> &args)=0;
231 const sourcet &source)=0;
242 const std::string &msg,
243 const sourcet &source)=0;
253 const sourcet &source) = 0;
262 const std::string &msg,
263 const sourcet &source)=0;
271 const sourcet &source)=0;
279 const sourcet &source)=0;
288 unsigned atomic_section_id,
289 const sourcet &source)=0;
298 unsigned atomic_section_id,
299 const sourcet &source)=0;
311 #endif // CPROVER_GOTO_SYMEX_SYMEX_TARGET_H
virtual void atomic_end(const exprt &guard, unsigned atomic_section_id, const sourcet &source)=0
Record ending an atomic section.
dstringt has one field, an unsigned integer no which is an index into a static table of strings.
virtual void constraint(const exprt &cond, const std::string &msg, const sourcet &source)=0
Record a global constraint: there is no guard limiting its scope.
sourcet(const irep_idt &_function_id, const goto_programt &_goto_program)
goto_programt::const_targett pc
virtual void assertion(const exprt &guard, const exprt &cond, const std::string &msg, const sourcet &source)=0
Record an assertion.
virtual void dead(const exprt &guard, const ssa_exprt &ssa_lhs, const sourcet &source)=0
Remove a variable from the scope.
virtual void function_return(const exprt &guard, const irep_idt &function_id, const sourcet &source, bool hidden)=0
Record return from a function.
Base class for all expressions.
virtual void shared_write(const exprt &guard, const ssa_exprt &ssa_object, unsigned atomic_section_id, const sourcet &source)=0
Write to a shared variable ssa_object: we effectively assign a value from this thread to be visible b...
@ VISIBLE_ACTUAL_PARAMETER
virtual void decl(const exprt &guard, const ssa_exprt &ssa_lhs, const exprt &initializer, const sourcet &source, assignment_typet assignment_type)=0
Declare a fresh variable.
Expression providing an SSA-renamed symbol of expressions.
virtual void assignment(const exprt &guard, const ssa_exprt &ssa_lhs, const exprt &ssa_full_lhs, const exprt &original_full_lhs, const exprt &ssa_rhs, const sourcet &source, assignment_typet assignment_type)=0
Write to a local variable.
@ HIDDEN_ACTUAL_PARAMETER
bool operator<(const symex_targett::sourcet &a, const symex_targett::sourcet &b)
Base class comparison operator for symbolic execution targets.
sourcet & operator=(const sourcet &other)=default
virtual void function_call(const exprt &guard, const irep_idt &function_id, const std::vector< renamedt< exprt, L2 >> &ssa_function_arguments, const sourcet &source, bool hidden)=0
Record a function call.
virtual void shared_read(const exprt &guard, const ssa_exprt &ssa_object, unsigned atomic_section_id, const sourcet &source)=0
Read from a shared variable ssa_object (which is both the left- and the right–hand side of assignment...
virtual void assumption(const exprt &guard, const exprt &cond, const sourcet &source)=0
Record an assumption.
virtual void input(const exprt &guard, const sourcet &source, const irep_idt &input_id, const std::list< exprt > &args)=0
Record an input.
virtual void output_fmt(const exprt &guard, const sourcet &source, const irep_idt &output_id, const irep_idt &fmt, const std::list< exprt > &args)=0
Record formatted output.
virtual void goto_instruction(const exprt &guard, const renamedt< exprt, L2 > &cond, const sourcet &source)=0
Record a goto instruction.
virtual void output(const exprt &guard, const sourcet &source, const irep_idt &output_id, const std::list< renamedt< exprt, L2 >> &args)=0
Record an output.
virtual void spawn(const exprt &guard, const sourcet &source)=0
Record spawning a new thread.
sourcet(const irep_idt &_function_id, goto_programt::const_targett _pc)
A generic container class for the GOTO intermediate representation of one function.
instructionst::const_iterator const_targett
Identifies source in the context of symbolic execution.
virtual void atomic_begin(const exprt &guard, unsigned atomic_section_id, const sourcet &source)=0
Record a beginning of an atomic section.
sourcet(sourcet &&other) noexcept
virtual void location(const exprt &guard, const sourcet &source)=0
Record a location.
The interface of the target container for symbolic execution to record its symbolic steps into.
Wrapper for expressions or types which have been renamed up to a given level.
virtual void memory_barrier(const exprt &guard, const sourcet &source)=0
Record creating a memory barrier.