12 #ifndef CPROVER_LINKING_LINKING_CLASS_H 13 #define CPROVER_LINKING_LINKING_CLASS_H 31 ns(_main_symbol_table)
41 typedef std::unordered_set<irep_idt, irep_id_hash>
id_sett;
88 old_symbol(_old_symbol),
89 new_symbol(_new_symbol),
113 const exprt &expr)
const;
118 const typet &type)
const;
123 const typet &type)
const;
138 exprt &conflict_path);
159 const std::string &msg);
164 const std::string &msg);
176 typedef std::unordered_map<irep_idt, id_sett, irep_id_hash>
used_byt;
184 #endif // CPROVER_LINKING_LINKING_CLASS_H The type of an expression.
std::unordered_map< irep_idt, id_sett, irep_id_hash > used_byt
void link_error(const symbolt &old_symbol, const symbolt &new_symbol, const std::string &msg)
void detailed_conflict_report(const symbolt &old_symbol, const symbolt &new_symbol, const typet &type1, const typet &type2)
void do_type_dependencies(id_sett &)
symbol_tablet & main_symbol_table
void link_warning(const symbolt &old_symbol, const symbolt &new_symbol, const std::string &msg)
Symbol table entry.This is a symbol in the symbol table, stored in an object of type symbol_tablet...
std::string expr_to_string(const namespacet &ns, const irep_idt &identifier, const exprt &expr) const
void detailed_conflict_report_rec(const symbolt &old_symbol, const symbolt &new_symbol, const typet &type1, const typet &type2, unsigned depth, exprt &conflict_path)
bool needs_renaming_non_type(const symbolt &old_symbol, const symbolt &new_symbol)
const symbolt & new_symbol
bool needs_renaming(const symbolt &old_symbol, const symbolt &new_symbol)
void rename_symbols(const id_sett &needs_to_be_renamed)
void show_struct_diff(const struct_typet &old_type, const struct_typet &new_type)
API to expression classes.
const symbolt & old_symbol
adjust_type_infot(const symbolt &_old_symbol, const symbolt &_new_symbol)
bool needs_renaming_type(const symbolt &old_symbol, const symbolt &new_symbol)
irep_idt rename(irep_idt)
std::string type_to_string(const namespacet &ns, const irep_idt &identifier, const typet &type) const
replace_symbolt object_type_updates
void duplicate_code_symbol(symbolt &old_symbol, symbolt &new_symbol)
bool adjust_object_type_rec(const typet &type1, const typet &type2, adjust_type_infot &info)
typet type
Type of symbol.
symbol_tablet & src_symbol_table
Base class for all expressions.
void duplicate_non_type_symbol(symbolt &old_symbol, symbolt &new_symbol)
std::string type_to_string_verbose(const namespacet &ns, const symbolt &symbol) const
rename_symbolt rename_symbol
void duplicate_object_symbol(symbolt &old_symbol, symbolt &new_symbol)
linkingt(symbol_tablet &_main_symbol_table, symbol_tablet &_src_symbol_table, message_handlert &_message_handler)
std::string type_to_string_verbose(const namespacet &ns, const symbolt &symbol, const typet &type) const
bool adjust_object_type(const symbolt &old_symbol, const symbolt &new_symbol, bool &set_to_new)
Expression to hold a symbol (variable)
void duplicate_type_symbol(symbolt &old_symbol, symbolt &new_symbol)
std::unordered_set< irep_idt, irep_id_hash > id_sett