remove_function_pointerst::remove_function_pointerst( symbol_tablet &_symbol_table, bool _add_safety_assertion, const goto_functionst &goto_functions): ns(_symbol_table), symbol_table(_symbol_table), add_safety_assertion(_add_safety_assertion) { compute_address_taken_in_symbols(address_taken); compute_address_taken_functions(goto_functions, address_taken); // build type map forall_goto_functions(f_it, goto_functions) type_map[f_it->first]=f_it->second.type; }
remove_function_pointerst::remove_function_pointerst( message_handlert &_message_handler, symbol_tablet &_symbol_table, bool _add_safety_assertion, bool only_resolve_const_fps, const goto_functionst &goto_functions): messaget(_message_handler), ns(_symbol_table), symbol_table(_symbol_table), add_safety_assertion(_add_safety_assertion), only_resolve_const_fps(only_resolve_const_fps) { compute_address_taken_in_symbols(address_taken); compute_address_taken_functions(goto_functions, address_taken); // build type map forall_goto_functions(f_it, goto_functions) type_map[f_it->first]=f_it->second.type; }
remove_function_pointerst::remove_function_pointerst( symbol_tablet &_symbol_table, bool _add_safety_assertion, const goto_functionst &goto_functions): ns(_symbol_table), symbol_table(_symbol_table), add_safety_assertion(_add_safety_assertion) { compute_address_taken_in_symbols(address_taken); compute_address_taken_functions(goto_functions, address_taken); // build type map for(goto_functionst::function_mapt::const_iterator f_it= goto_functions.function_map.begin(); f_it!=goto_functions.function_map.end(); f_it++) type_map[f_it->first]=f_it->second.type; }