26 if(!ns.
lookup(it->first).is_macro &&
27 !it->second.body_available())
28 os << it->first <<
'\n';
36 goto_programt::instructiont &ins=*iit;
38 if(!ins.is_function_call())
49 goto_functionst::function_mapt::const_iterator entry=
53 if(entry->second.body_available())
57 ins.source_location.set_comment(
58 "`"+
id2string(
function)+
"' is undefined");
virtual bool lookup(const irep_idt &name, const symbolt *&symbol) const
const std::string & id2string(const irep_idt &d)
Goto Programs with Functions.
void undefined_function_abort_path(goto_functionst &goto_functions)
void list_undefined_functions(const goto_functionst &goto_functions, const namespacet &ns, std::ostream &os)
const irep_idt & id() const
function_mapt function_map
The boolean constant false.
const symbol_exprt & to_symbol_expr(const exprt &expr)
Cast a generic exprt to a symbol_exprt.
#define Forall_goto_functions(it, functions)
Handling of functions without body.
#define Forall_goto_program_instructions(it, program)
#define forall_goto_functions(it, functions)
const code_function_callt & to_code_function_call(const codet &code)