20 if(!it->second.body_available())
23 goto_functionst::function_mapt::const_iterator f_it=
26 !f_it->second.body_available())
38 bool function_access_changed =
40 bool class_access_changed =
false;
41 bool field_access_changed =
false;
42 if(!class_name.
empty())
48 class_access_changed =
52 for(
const auto &field1 : class_type1.
components())
54 for(
const auto &field2 : class_type2.
components())
56 if(field1.get_name() == field2.get_name())
58 field_access_changed = field1.get_access() != field2.get_access();
62 if(field_access_changed)
66 if(function_access_changed || class_access_changed || field_access_changed)
72 if(!it->second.body.equals(f_it->second.body))
78 goto_programt::instructionst::const_iterator
79 i_it1=it->second.body.instructions.begin();
80 for(goto_programt::instructionst::const_iterator
81 i_it2=f_it->second.body.instructions.begin();
82 i_it1!=it->second.body.instructions.end() &&
83 i_it2!=f_it->second.body.instructions.end();
86 if(i_it1->function != i_it2->function)
95 if(!it->second.body_available())
100 goto_functionst::function_mapt::const_iterator f_it=
103 !f_it->second.body_available())
const goto_modelt & goto_model1
virtual bool operator()()
const goto_modelt & goto_model2
const componentst & components() const
function_mapt function_map
const class_typet & to_class_type(const typet &type)
Cast a typet to a class_typet.
symbol_tablet symbol_table
Symbol table.
#define CHECK_RETURN(CONDITION)
unsigned total_functions_count
const irep_idt & get(const irep_namet &name) const
dstringt has one field, an unsigned integer no which is an index into a static table of strings...
std::set< irep_idt > modified_functions
typet type
Type of symbol.
#define forall_goto_functions(it, functions)
const symbolt * lookup(const irep_idt &name) const
Find a symbol in the symbol table for read-only access.
goto_functionst goto_functions
GOTO functions.
std::set< irep_idt > deleted_functions
std::set< irep_idt > new_functions