27 target_mapt target_map;
34 function_entry.
type=goto_function.
type;
43 target_map[i_it]=
end();
53 throw "no entry point";
60 const goto_programt::instructiont &i=*
loc_vector[l].target;
65 else if(i.targets.size()==1)
67 const target_mapt::const_iterator m_it=target_map.find(i.get_target());
69 if(m_it==target_map.end())
70 throw "locst::build: jump target not found";
75 throw "locst::build: illegal jump target";
80 throw "locst does not support more than one branch target";
91 if(
function!=
loc.function)
93 function=
loc.function;
94 out <<
"*** " <<
function <<
"\n";
97 out <<
" L" << l <<
": " 102 if(!
loc.branch_target.is_nil())
103 out <<
" T: " <<
loc.branch_target <<
"\n";
107 out <<
"The entry location is L" <<
entry_loc <<
".\n";
bool body_available() const
void output(std::ostream &out) const
const char * as_string(coverage_criteriont c)
locst(const namespacet &_ns)
instructionst::const_iterator const_targett
static irep_idt entry_point()
function_mapt function_map
CFG made of Program Locations, built from goto_functionst.
#define forall_goto_functions(it, functions)
#define forall_goto_program_instructions(it, program)
void build(const goto_functionst &goto_functions)