12 #ifndef CPROVER_LINKING_LINKING_DIAGNOSTICS_H
13 #define CPROVER_LINKING_LINKING_DIAGNOSTICS_H
32 const std::string &msg);
37 const std::string &msg);
76 exprt &conflict_path);
Base class for all expressions.
linking_diagnosticst(message_handlert &message_handler, namespacet &ns)
std::string type_to_string_verbose(const symbolt &symbol) const
message_handlert & message_handler
std::string type_to_string_verbose(const symbolt &symbol, const typet &type) const
void warning(const symbolt &old_symbol, const symbolt &new_symbol, const std::string &msg)
bool detailed_conflict_report_rec(const symbolt &old_symbol, const symbolt &new_symbol, const typet &type1, const typet &type2, unsigned depth, exprt &conflict_path)
Returns true iff the conflict report on a particular branch of the tree of types was a definitive res...
void detailed_conflict_report(const symbolt &old_symbol, const symbolt &new_symbol, const typet &type1, const typet &type2)
void error(const symbolt &old_symbol, const symbolt &new_symbol, const std::string &msg)
A namespacet is essentially one or two symbol tables bound together, to allow for symbol lookups in t...
Expression to hold a symbol (variable)
static symbol_exprt typeless(const irep_idt &id)
Generate a symbol_exprt without a proper type.
typet type
Type of symbol.
The type of an expression, extends irept.
API to expression classes.