44 if(
i_it->is_function_call())
66 if(
nr <
as_const(*i_it).call_arguments().size())
77 std::size_t count=
tmp.instructions.size();
80 for(; count!=0; count--)
i_it++;
const T & as_const(T &value)
Return a reference to the same object but ensures the type is const.
ait supplies three of the four components needed: an abstract interpreter (in this case handling func...
A goto_instruction_codet representing an assignment in the program.
dstringt has one field, an unsigned integer no which is an index into a static table of strings.
Base class for all expressions.
typet & type()
Return the type of the expression.
A collection of goto functions.
function_mapt function_map
symbol_tablet symbol_table
Symbol table.
goto_functionst goto_functions
GOTO functions.
A generic container class for the GOTO intermediate representation of one function.
void insert_before_swap(targett target)
Insertion that preserves jumps to "target".
static instructiont make_assignment(const code_assignt &_code, const source_locationt &l=source_locationt::nil())
Create an assignment instruction.
A namespacet is essentially one or two symbol tables bound together, to allow for symbol lookups in t...
bool lookup(const irep_idt &name, const symbolt *&symbol) const override
See documentation for namespace_baset::lookup().
void do_function_calls(goto_programt &goto_program)
turns x=f(...) into f(...); lhs=f::return_value;
parameter_assignmentst(symbol_table_baset &_symbol_table)
void operator()(goto_functionst &goto_functions)
symbol_table_baset & symbol_table
Expression to hold a symbol (variable)
The symbol table base class interface.
static exprt conditional_cast(const exprt &expr, const typet &type)
#define Forall_goto_program_instructions(it, program)
void parameter_assignments(symbol_table_baset &symbol_table, goto_functionst &goto_functions)
removes returns
Add parameter assignments.
#define PRECONDITION(CONDITION)
API to expression classes.
const symbol_exprt & to_symbol_expr(const exprt &expr)
Cast an exprt to a symbol_exprt.
const code_typet & to_code_type(const typet &type)
Cast a typet to a code_typet.