45 if(i_it->is_function_call())
51 assert(function_call.
function().
id()==ID_symbol);
63 for(std::size_t nr=0; nr<code_type.
parameters().size(); nr++)
67 if(p_identifier.
empty())
74 t->source_location=i_it->source_location;
81 t->function=i_it->function;
88 for(; count!=0; count--) i_it++;
virtual bool lookup(const irep_idt &name, const symbolt *&symbol) const
targett add_instruction()
Adds an instruction at the end.
void parameter_assignments(symbol_tablet &symbol_table, goto_functionst &goto_functions)
removes returns
void operator()(goto_functionst &goto_functions)
instructionst instructions
The list of instructions in the goto program.
symbol_tablet symbol_table
Symbol table entry.This is a symbol in the symbol table, stored in an object of type symbol_tablet...
void do_function_calls(goto_functionst &goto_functions, goto_programt &goto_program)
turns x=f(...) into f(...); lhs=f::return_value;
const irep_idt & id() const
class symbol_exprt symbol_expr() const
produces a symbol_exprt for a symbol
API to expression classes.
A specialization of goto_program_templatet over goto programs in which instructions have codet type...
typet type
Type of symbol.
Base class for all expressions.
const parameterst & parameters() const
const symbol_exprt & to_symbol_expr(const exprt &expr)
Cast a generic exprt to a symbol_exprt.
symbol_tablet & symbol_table
#define Forall_goto_functions(it, functions)
void insert_before_swap(targett target)
Insertion that preserves jumps to "target".
const code_typet & to_code_type(const typet &type)
Cast a generic typet to a code_typet.
#define Forall_goto_program_instructions(it, program)
Expression to hold a symbol (variable)
parameter_assignmentst(symbol_tablet &_symbol_table)
Add parameter assignments.
void make_typecast(const typet &_type)
goto_functionst goto_functions
const code_function_callt & to_code_function_call(const codet &code)
instructionst::iterator targett