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.instructions.size() !=
73 f_it->second.body.instructions.size())
79 goto_programt::instructionst::const_iterator
80 i_it1=it->second.body.instructions.begin();
81 for(goto_programt::instructionst::const_iterator
82 i_it2=f_it->second.body.instructions.begin();
83 i_it1!=it->second.body.instructions.end() &&
84 i_it2!=f_it->second.body.instructions.end();
87 long jump_difference1 = 0;
88 if(!i_it1->targets.empty())
91 i_it1->get_target()->location_number - i_it1->location_number;
93 long jump_difference2 = 0;
94 if(!i_it2->targets.empty())
97 i_it2->get_target()->location_number - i_it2->location_number;
100 i_it1->code != i_it2->code || i_it1->function != i_it2->function ||
101 i_it1->type != i_it2->type || i_it1->guard != i_it2->guard ||
102 jump_difference1 != jump_difference2)
111 if(!it->second.body_available())
116 goto_functionst::function_mapt::const_iterator f_it=
119 !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 generic typet to a class_typet.
symbol_tablet symbol_table
Symbol table.
Symbol table entry.This is a symbol in the symbol table, stored in an object of type symbol_tablet...
#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