|
CBMC
|
A goto_instruction_codet representing the declaration that an output of a particular description has a value which corresponds to the value of a given expression (or expressions).
More...
#include <goto_instruction_code.h>
Inheritance diagram for code_outputt:
Collaboration diagram for code_outputt:Public Member Functions | |
| code_outputt (std::vector< exprt > arguments, optionalt< source_locationt > location={}) | |
This constructor is for support of calls to __CPROVER_output in user code. More... | |
| code_outputt (const irep_idt &description, exprt expression, optionalt< source_locationt > location={}) | |
| This constructor is intended for generating output instructions as part of synthetic entry point code, rather than as part of user code. More... | |
Public Member Functions inherited from codet | |
| codet (const irep_idt &statement) | |
| codet (const irep_idt &statement, source_locationt loc) | |
| codet (const irep_idt &statement, operandst _op) | |
| codet (const irep_idt &statement, operandst op, source_locationt loc) | |
| void | set_statement (const irep_idt &statement) |
| const irep_idt & | get_statement () const |
| codet & | first_statement () |
In the case of a codet type that represents multiple statements, return the first of them. More... | |
| const codet & | first_statement () const |
| codet & | last_statement () |
In the case of a codet type that represents multiple statements, return the last of them. More... | |
| const codet & | last_statement () const |
| exprt & | op0 () |
| const exprt & | op0 () const |
| exprt & | op1 () |
| const exprt & | op1 () const |
| exprt & | op2 () |
| const exprt & | op2 () const |
| exprt & | op3 () |
| const exprt & | op3 () const |
Public Member Functions inherited from exprt | |
| exprt () | |
| exprt (const irep_idt &_id) | |
| exprt (irep_idt _id, typet _type) | |
| exprt (irep_idt _id, typet _type, operandst &&_operands) | |
| exprt (const irep_idt &id, typet type, source_locationt loc) | |
| typet & | type () |
| Return the type of the expression. More... | |
| const typet & | type () const |
| bool | has_operands () const |
| Return true if there is at least one operand. More... | |
| operandst & | operands () |
| const operandst & | operands () const |
| template<typename T > | |
| T & | with_source_location (const exprt &other) & |
Add the source location from other, if it has any. More... | |
| template<typename T > | |
| T && | with_source_location (const exprt &other) && |
Add the source location from other, if it has any. More... | |
| void | reserve_operands (operandst::size_type n) |
| void | copy_to_operands (const exprt &expr) |
Copy the given argument to the end of exprt's operands. More... | |
| void | add_to_operands (const exprt &expr) |
Add the given argument to the end of exprt's operands. More... | |
| void | add_to_operands (exprt &&expr) |
Add the given argument to the end of exprt's operands. More... | |
| void | add_to_operands (exprt &&e1, exprt &&e2) |
Add the given arguments to the end of exprt's operands. More... | |
| void | add_to_operands (exprt &&e1, exprt &&e2, exprt &&e3) |
Add the given arguments to the end of exprt's operands. More... | |
| bool | is_constant () const |
| Return whether the expression is a constant. More... | |
| bool | is_true () const |
Return whether the expression is a constant representing true. More... | |
| bool | is_false () const |
Return whether the expression is a constant representing false. More... | |
| bool | is_zero () const |
| Return whether the expression is a constant representing 0. More... | |
| bool | is_one () const |
| Return whether the expression is a constant representing 1. More... | |
| bool | is_boolean () const |
| Return whether the expression represents a Boolean. More... | |
| const source_locationt & | find_source_location () const |
| Get a source_locationt from the expression or from its operands (non-recursively). More... | |
| const source_locationt & | source_location () const |
| source_locationt & | add_source_location () |
| void | drop_source_location () |
| void | visit (class expr_visitort &visitor) |
| These are pre-order traversal visitors, i.e., the visitor is executed on a node before its children have been visited. More... | |
| void | visit (class const_expr_visitort &visitor) const |
| void | visit_pre (std::function< void(exprt &)>) |
| void | visit_pre (std::function< void(const exprt &)>) const |
| void | visit_post (std::function< void(exprt &)>) |
| These are post-order traversal visitors, i.e., the visitor is executed on a node after its children have been visited. More... | |
| void | visit_post (std::function< void(const exprt &)>) const |
| depth_iteratort | depth_begin () |
| depth_iteratort | depth_end () |
| const_depth_iteratort | depth_begin () const |
| const_depth_iteratort | depth_end () const |
| const_depth_iteratort | depth_cbegin () const |
| const_depth_iteratort | depth_cend () const |
| depth_iteratort | depth_begin (std::function< exprt &()> mutate_root) const |
| const_unique_depth_iteratort | unique_depth_begin () const |
| const_unique_depth_iteratort | unique_depth_end () const |
| const_unique_depth_iteratort | unique_depth_cbegin () const |
| const_unique_depth_iteratort | unique_depth_cend () const |
Public Member Functions inherited from irept | |
| bool | is_nil () const |
| bool | is_not_nil () const |
| irept (const irep_idt &_id) | |
| irept (const irep_idt &_id, const named_subt &_named_sub, const subt &_sub) | |
| irept ()=default | |
| const irep_idt & | id () const |
| const std::string & | id_string () const |
| void | id (const irep_idt &_data) |
| const irept & | find (const irep_idt &name) const |
| irept & | add (const irep_idt &name) |
| irept & | add (const irep_idt &name, irept irep) |
| const std::string & | get_string (const irep_idt &name) const |
| const irep_idt & | get (const irep_idt &name) const |
| bool | get_bool (const irep_idt &name) const |
| signed int | get_int (const irep_idt &name) const |
| std::size_t | get_size_t (const irep_idt &name) const |
| long long | get_long_long (const irep_idt &name) const |
| void | set (const irep_idt &name, const irep_idt &value) |
| void | set (const irep_idt &name, irept irep) |
| void | set (const irep_idt &name, const long long value) |
| void | set_size_t (const irep_idt &name, const std::size_t value) |
| void | remove (const irep_idt &name) |
| void | move_to_sub (irept &irep) |
| void | move_to_named_sub (const irep_idt &name, irept &irep) |
| bool | operator== (const irept &other) const |
| bool | operator!= (const irept &other) const |
| void | swap (irept &irep) |
| bool | operator< (const irept &other) const |
| defines ordering on the internal representation More... | |
| bool | ordering (const irept &other) const |
| defines ordering on the internal representation More... | |
| int | compare (const irept &i) const |
| defines ordering on the internal representation comments are ignored More... | |
| void | clear () |
| void | make_nil () |
| subt & | get_sub () |
| const subt & | get_sub () const |
| named_subt & | get_named_sub () |
| const named_subt & | get_named_sub () const |
| std::size_t | hash () const |
| std::size_t | full_hash () const |
| bool | full_eq (const irept &other) const |
| std::string | pretty (unsigned indent=0, unsigned max_indent=0) const |
Public Member Functions inherited from sharing_treet< irept, forward_list_as_mapt< irep_idt, irept > > | |
| sharing_treet (irep_idt _id) | |
| sharing_treet (irep_idt _id, named_subt _named_sub, subt _sub) | |
| sharing_treet () | |
| sharing_treet (const sharing_treet &irep) | |
| sharing_treet (sharing_treet &&irep) | |
| sharing_treet & | operator= (const sharing_treet &irep) |
| sharing_treet & | operator= (sharing_treet &&irep) |
| ~sharing_treet () | |
| const dt & | read () const |
| dt & | write () |
Static Public Member Functions | |
| static void | check (const goto_instruction_codet &code, const validation_modet vm=validation_modet::INVARIANT) |
Static Public Member Functions inherited from exprt | |
| static void | check (const exprt &, const validation_modet) |
| Check that the expression is well-formed (shallow checks only, i.e., subexpressions and its type are not checked). More... | |
| static void | validate (const exprt &expr, const namespacet &, const validation_modet vm=validation_modet::INVARIANT) |
| Check that the expression is well-formed, assuming that its subexpressions and type have all ready been checked for well-formedness. More... | |
| static void | validate_full (const exprt &expr, const namespacet &ns, const validation_modet vm=validation_modet::INVARIANT) |
| Check that the expression is well-formed (full check, including checks of all subexpressions and the type) More... | |
Static Public Member Functions inherited from irept | |
| static bool | is_comment (const irep_idt &name) |
| static std::size_t | number_of_non_comments (const named_subt &) |
| count the number of named_sub elements that are not comments More... | |
Additional Inherited Members | |
Public Types inherited from exprt | |
| typedef std::vector< exprt > | operandst |
Public Types inherited from irept | |
| using | baset = tree_implementationt |
Public Types inherited from sharing_treet< irept, forward_list_as_mapt< irep_idt, irept > > | |
| using | dt = tree_nodet< irept, forward_list_as_mapt< irep_idt, irept >, true > |
| using | subt = typename dt::subt |
| using | named_subt = typename dt::named_subt |
| using | tree_implementationt = sharing_treet |
| Used to refer to this class from derived classes. More... | |
Protected Member Functions inherited from exprt | |
| exprt & | op0 () |
| exprt & | op1 () |
| exprt & | op2 () |
| exprt & | op3 () |
| const exprt & | op0 () const |
| const exprt & | op1 () const |
| const exprt & | op2 () const |
| const exprt & | op3 () const |
| exprt & | add_expr (const irep_idt &name) |
| const exprt & | find_expr (const irep_idt &name) const |
Protected Member Functions inherited from sharing_treet< irept, forward_list_as_mapt< irep_idt, irept > > | |
| void | detach () |
Static Protected Member Functions inherited from sharing_treet< irept, forward_list_as_mapt< irep_idt, irept > > | |
| static void | remove_ref (dt *old_data) |
| static void | nonrecursive_destructor (dt *old_data) |
| Does the same as remove_ref, but using an explicit stack instead of recursion. More... | |
Protected Attributes inherited from sharing_treet< irept, forward_list_as_mapt< irep_idt, irept > > | |
| dt * | data |
Static Protected Attributes inherited from sharing_treet< irept, forward_list_as_mapt< irep_idt, irept > > | |
| static dt | empty_d |
A goto_instruction_codet representing the declaration that an output of a particular description has a value which corresponds to the value of a given expression (or expressions).
When working with the C front end, calls to the __CPROVER_output intrinsic can be added to the input code in order add instructions of this type to the goto program. The first argument is expected to be a C string denoting the output identifier. The second argument is the expression for the output value.
Definition at line 454 of file goto_instruction_code.h.
|
explicit |
This constructor is for support of calls to __CPROVER_output in user code.
Where the first first argument is a description which may be any const char * and one or more corresponding expression arguments follow.
Definition at line 49 of file goto_instruction_code.cpp.
| code_outputt::code_outputt | ( | const irep_idt & | description, |
| exprt | expression, | ||
| optionalt< source_locationt > | location = {} |
||
| ) |
This constructor is intended for generating output instructions as part of synthetic entry point code, rather than as part of user code.
| description | This is used to construct an expression for a pointer to a string constant containing the description text. |
| expression | This expression corresponds to a value which should be recorded as an output. |
| location | A location to associate with this instruction. |
Definition at line 59 of file goto_instruction_code.cpp.
|
static |
Definition at line 71 of file goto_instruction_code.cpp.