20 if(!it->second.body_available())
23 goto_functionst::function_mapt::const_iterator f_it =
27 !f_it->second.body_available())
39 bool function_access_changed =
41 bool class_access_changed =
false;
42 bool field_access_changed =
false;
43 if(!class_name.
empty())
49 class_access_changed =
53 for(
const auto &field1 : class_type1.
components())
55 for(
const auto &field2 : class_type2.
components())
57 if(field1.get_name() == field2.get_name())
59 field_access_changed = field1.get_access() != field2.get_access();
63 if(field_access_changed)
67 if(function_access_changed || class_access_changed || field_access_changed)
74 it->second.body.instructions.size() !=
75 f_it->second.body.instructions.size())
81 goto_programt::instructionst::const_iterator i_it1 =
82 it->second.body.instructions.begin();
83 for(goto_programt::instructionst::const_iterator
84 i_it2 = f_it->second.body.instructions.begin();
85 i_it1 != it->second.body.instructions.end() &&
86 i_it2 != f_it->second.body.instructions.end();
89 long jump_difference1 = 0;
90 if(!i_it1->targets.empty())
93 i_it1->get_target()->location_number - i_it1->location_number;
95 long jump_difference2 = 0;
96 if(!i_it2->targets.empty())
99 i_it2->get_target()->location_number - i_it2->location_number;
102 i_it1->code != i_it2->code || i_it1->function != i_it2->function ||
103 i_it1->type != i_it2->type || i_it1->guard != i_it2->guard ||
104 jump_difference1 != jump_difference2)
113 if(!it->second.body_available())
118 goto_functionst::function_mapt::const_iterator f_it =
122 !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)
Syntactic GOTO-DIFF for Java.
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