|
ESBMC
Efficient SMT-based Context-Bounded Model Checker
|
Container for an instruction of the goto-program. More...
#include <goto_program.h>
Classes | |
| struct | loop_contract_datat |
Public Types | |
| typedef std::list< classinstructiont >::iterator | targett |
| the targets for gotos and catch | |
| typedef std::list< classinstructiont >::const_iterator | const_targett |
| typedef std::list< targett > | targetst |
| typedef std::list< const_targett > | const_targetst |
| typedef std::list< irep_idt > | labelst |
| goto target labels | |
Public Member Functions | |
| loop_contract_datat & | loop_contract_payload () |
| targett | get_target () const |
| Returns the first (and only) successor for the usual case of a single target. | |
| void | set_target (targett t) |
| Sets the first (and only) successor for the usual case of a single target. | |
| bool | has_target () const |
| bool | is_target () const |
| is this node a branch target? | |
| void | clear (goto_program_instruction_typet _type) |
| clear the node | |
| void | make_goto () |
| void | make_location (const locationt &l) |
| void | make_return () |
| void | make_function_call (const expr2tc &_code) |
| void | make_skip () |
| void | make_throw () |
| void | make_catch () |
| void | make_assertion (const expr2tc &g) |
| void | make_assumption (const expr2tc &g) |
| void | make_assignment () |
| void | make_other () |
| void | make_decl () |
| void | make_dead () |
| void | make_atomic_begin () |
| void | make_atomic_end () |
| void | make_goto (targett _target) |
| void | make_goto (targett _target, const expr2tc &g) |
| bool | is_goto () const |
| bool | is_return () const |
| bool | is_assign () const |
| bool | is_function_call () const |
| bool | is_throw () const |
| bool | is_catch () const |
| bool | is_skip () const |
| bool | is_location () const |
| bool | is_other () const |
| bool | is_decl () const |
| bool | is_assume () const |
| bool | is_assert () const |
| bool | is_loop_invariant () const |
| bool | is_atomic_begin () const |
| bool | is_atomic_end () const |
| bool | is_end_function () const |
| instructiont () | |
| instructiont (goto_program_instruction_typet _type) | |
| instructiont (const instructiont &other) | |
| instructiont & | operator= (const instructiont &other) |
| instructiont (instructiont &&other) | |
| instructiont & | operator= (instructiont &&other) |
| void | swap (instructiont &instruction) |
| swap two instructions | |
| void | add_loop_invariant (const expr2tc &invariant) |
| std::list< expr2tc > | get_loop_invariants () const |
| void | add_loop_assigns_target (const expr2tc &target) |
| std::list< expr2tc > | get_loop_assigns_targets () const |
| bool | is_backwards_goto () const |
| Returns true if the instruction is a backwards branch. | |
| bool | operator< (const class instructiont i1) const |
| void | dump () const |
| void | output_instruction (const class namespacet &ns, const irep_idt &identifier, std::ostream &out, bool show_location=true) const |
Public Attributes | |
| expr2tc | code |
| irep_idt | function |
| function this belongs to | |
| locationt | location |
| the location of the instruction in the source file | |
| goto_program_instruction_typet | type |
| what kind of instruction? | |
| expr2tc | guard |
| guard for gotos, assume, assert | |
| std::unique_ptr< loop_contract_datat > | loop_contract_data |
| targetst | targets |
| labelst | labels |
| bool | inductive_step_instruction |
| bool | inductive_assertion |
| bool | flipped_guard |
| bool | loop_invariant_havoc |
| std::vector< std::string > | switch_case_ids |
| unsigned | location_number |
| unsigned | loop_number |
| Number unique per function to identify loops. | |
| unsigned | pragma_unroll_count |
| Pragma-specified unroll count (0 = not specified, UINT_MAX = unlimited). | |
| unsigned | target_number |
| unsigned int | scope_id = 0 |
| unsigned int | parent_scope_id = 0 |
| Id of the parent scope for the current "scope_id". | |
Container for an instruction of the goto-program.
| typedef std::list<const_targett> goto_programt::instructiont::const_targetst |
| typedef std::list<classinstructiont>::const_iterator goto_programt::instructiont::const_targett |
| typedef std::list<irep_idt> goto_programt::instructiont::labelst |
goto target labels
| typedef std::list<targett> goto_programt::instructiont::targetst |
| typedef std::list<classinstructiont>::iterator goto_programt::instructiont::targett |
the targets for gotos and catch
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
clear the node
| void goto_programt::instructiont::dump | ( | ) | const |
|
inline |
|
inline |
|
inline |
Returns the first (and only) successor for the usual case of a single target.
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
Returns true if the instruction is a backwards branch.
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
is this node a branch target?
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
| void goto_programt::instructiont::output_instruction | ( | const class namespacet & | ns, |
| const irep_idt & | identifier, | ||
| std::ostream & | out, | ||
| bool | show_location = true ) const |
|
inline |
Sets the first (and only) successor for the usual case of a single target.
|
inline |
swap two instructions
| expr2tc goto_programt::instructiont::code |
| bool goto_programt::instructiont::flipped_guard |
| irep_idt goto_programt::instructiont::function |
function this belongs to
| expr2tc goto_programt::instructiont::guard |
guard for gotos, assume, assert
| bool goto_programt::instructiont::inductive_assertion |
| bool goto_programt::instructiont::inductive_step_instruction |
| labelst goto_programt::instructiont::labels |
| locationt goto_programt::instructiont::location |
the location of the instruction in the source file
| unsigned goto_programt::instructiont::location_number |
A globally unique number to identify a program location. It's guaranteed to be ordered in program order within one goto_program.
| std::unique_ptr<loop_contract_datat> goto_programt::instructiont::loop_contract_data |
| bool goto_programt::instructiont::loop_invariant_havoc |
| unsigned goto_programt::instructiont::loop_number |
Number unique per function to identify loops.
| unsigned int goto_programt::instructiont::parent_scope_id = 0 |
Id of the parent scope for the current "scope_id".
| unsigned goto_programt::instructiont::pragma_unroll_count |
Pragma-specified unroll count (0 = not specified, UINT_MAX = unlimited).
| unsigned int goto_programt::instructiont::scope_id = 0 |
Id of the scope within which a variable is declared (i.e., DECL). It does not have a lot of meaning for other types of instructions.
| std::vector<std::string> goto_programt::instructiont::switch_case_ids |
| unsigned goto_programt::instructiont::target_number |
A number to identify branch targets. This is -1 if it's not a target.
| targetst goto_programt::instructiont::targets |
| goto_program_instruction_typet goto_programt::instructiont::type |
what kind of instruction?