28 const std::string &callercallee,
29 std::vector<std::string> &result)
32 return result.size() != 2;
37 const std::string &callercallee,
43 std::vector<std::string> caller_callee;
46 message.
error() <<
"Expecting two function names separated by a comma"
50 goto_functionst::function_mapt::iterator caller_fun=
52 goto_functionst::function_mapt::const_iterator callee_fun=
59 if(!caller_fun->second.body_available())
70 caller_fun->second.body.instructions.begin();
72 ns.
lookup(callee_fun->first).symbol_expr());
73 caller_fun->second.body.insert_before(
goto_instruction_codet representation of a function call statement.
A collection of goto functions.
function_mapt function_map
instructionst::const_iterator const_targett
static instructiont make_function_call(const code_function_callt &_code, const source_locationt &l=source_locationt::nil())
Create a function call instruction.
Class that provides messages with a built-in verbosity 'level'.
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().
The symbol table base class interface.
Goto Programs with Functions.
static bool parse_caller_callee(const std::string &callercallee, std::vector< std::string > &result)
bool splice_call(goto_functionst &goto_functions, const std::string &callercallee, const symbol_table_baset &symbol_table, message_handlert &message_handler)
Harnessing for goto functions.
void split_string(const std::string &s, char delim, std::vector< std::string > &result, bool strip, bool remove_empty)